How to use Bahnsparer
Four steps through the app – plus price alerts, journeys and settings.
Step 1
Start a search
Fixed date or date range
With „Fixed date“ Bahnsparer searches the exact date you selected and opens its available connections directly. To compare several days, choose „Date range“ to start with one week, then extend it to as many as two weeks using the date fields. Either search can begin today.
Compare a second destination station
Use the plus beside the destination to add a second destination station. When you open a travel day, the app loads its lowest-priced complete connection too. On a return journey, that direction can start from either destination. Each opened day requires one additional request.
Take a bicycle
In the search, open „Travellers & options“ and turn on „Bicycle“ . The search will then include connections that carry bicycles. The fare covers the travellers, not the bicycle: buy the bicycle ticket separately from the provider and check there whether a reservation is also required.
Find a route again
Recent searches appear below the form. Opening one restores every date that is today or later and moves past dates to today. The star saves a route permanently, but does not create a price alert.

Step 2
Choose a travel day
Fare and journey time in the calendar
Each day shows the lowest complete fare from DB and every active provider, even if only another railway finds a journey. Green marks lower-priced days and a dot marks a direct connection. For converted fares, the app names the original currency and marks the euro amount with „approx.“. For today, „from now“ shows only departures still ahead; future dates cover the whole travel day.
Use the calendar or list icon beside the travellers to switch views and choose weekdays. ‘Sat & Sun’ shows weekends only. The selection applies separately to outbound and return journeys; fares already loaded are kept.
In the list, ‘Load more days’ lets you choose dates through the end of the month or for the next 14 days. Loading starts after you confirm; the comparison covers no more than 31 days. The calendar shows no more than 14 days at once.
Open a day
Select a day to see its connections. An empty day has no saver fare available; hatched days were not requested because of your selection.

Step 3
Choose a train
Every connection shows the provider, class, fare, duration and transfers. For DB connections, Bahnsparer adds occupancy, reliability and historical arrival where data is available. The lowest fare and a strong balance remain comparable across all active providers.
Sort connections
The list starts with „Recommended“. „Sortiert nach (sorted by)“ opens the other orders in three groups: by one criterion (Günstig, Flexpreis, Schnell, Früh, Spät: lowest fare, flexible fare, fastest, earliest, latest), by reliability (Zuverlässig, Pünktlicher Zug, Sicherer Anschluss: most reliable, most punctual train, safest connection) and by comfort (Wenig ausgelastet: least crowded). „Sicherer Anschluss (safest connection)“ uses the measured likelihood of making every transfer and, at an equal chance, the shorter wait. „Flexpreis“ requests the fare ladder once for each visible train that day and shows the flexible fare beside its price; a train with no Flexpreis keeps its saver fare and says so.
The selected order remains active when you open another day or run a new search. In your profile, under „Default sort“ set how each list starts.
Include first class
For a second-class search, the app can also check the lowest-priced complete first-class connection on the opened travel day. Connections to your chosen destination come first, followed by a second destination if supplied, then first class. This keeps the lowest second-class fare prominent.
The class remains visible on every DB connection; the price difference refers to the lowest complete second-class connection. If a figure is only a first-class supplement, the app says so and does not treat it as a complete ticket. It does not know local-network first-class supplements for the Deutschlandticket, which may cost less than DB's fare. Turn the comparison off in search options or set the default in your profile. Choosing the first-class connection keeps the second-class results.
Read reliability and arrival correctly
„Reliability“ shows how likely the whole connection is to work based on past journeys: every transfer succeeds and arrival is less than six minutes late. In the details, „Typisch (typical)“ gives the historically usual arrival as „usually“, „Spätestens (at the latest)“ the time by which nine out of ten measured arrivals occurred, and „Score“ the figure behind the reliability. Values from the most recent 30 days are labelled „last 30 days“.
If data is missing for a segment, the app names the gap. Details warn about trains whose cancellation rate falls in the highest tenth, while the measurement period and number of arrivals remain visible. These values are not a forecast for your travel day. How they are calculated.
Check arrival after a missed connection
If the selected connection has a risky transfer, the summary shows „If the transfer is missed“. Choose „Check next connection“ to search from the transfer station for the next connection to your destination. The result gives the later arrival and time lost. It is information, not a promise of onward transport.
Journey details
Expand a connection to see the itinerary with platforms and transfer times, each train's facts as chips (Sprinter, occupancy, bistro), for a transfer the connection chance and the next train if it is missed, and below it „Reliability“ with punctuality, typical arrival, cancellations, „Spätestens (at the latest)“ and the score.

Step 4
Book and pay less
Check every way to pay less
Bahnsparer starts its price comparisons automatically when you open the booking summary. On a return journey, each direction runs separately. Results for seat reservations, the same journey in other shops, the Deutschlandticket, split tickets and regional day tickets appear under Savings checks. If one source fails, DB booking and every other result remain available.
If bahn.de shows error code 751 after you choose the booking link and mentions a bot, DB is blocking the browser rather than the connection. Since May 2026, it has blocked certain browsers, systems and networks. The Bahnsparer link is not the cause; its details never reach the server. Reload the page or open the link in another browser. The search remains in the URL.
Compare live seat-reservation prices
Bahnsparer compares reservations for all long-distance trains in your journey against DB's single reservation fee. It checks matching offers from ČD, MÁV and ÖBB and can combine different providers for different trains. Each train's reservation remains continuous. ČD is the Czech railway and reserves seats on many German ICE and IC trains even when the ticket comes from DB. All 158 comparable offers in the test cost less than DB, typically by €2.43 or 44%. If no alternative is available, DB's price remains visible. The app converts foreign currencies using the current ECB reference rate and notes that bank fees are excluded.
If another provider costs less, the booking action starts a fresh official session with route, date, train, class and reservation already selected, checks the price again and then opens the prepared dialog. You do not need to search for the journey again. The shop price is binding, and each provider covers only certain routes, trains and classes. Seat results and technical limitations.
Buy the ticket from another country's railway
For an already selected connection, Bahnsparer automatically checks whether ČD, MÁV, PKP Intercity, European Sleeper or Snälltåget sells the same train for less. A result appears as „Book the same train for less“. The standard DB booking remains visible beside it.
Only a complete price for the same traveller, class and connection can win. Known disadvantages such as no cancellation or rebooking appear before the booking link; the app rejects unclear conditions and partial fares. The link opens the exact fare in the official shop. Each shop can be disabled individually in the profile, which stops only its price check and never removes a DB connection. ÖBB tickets, SBB and Trenitalia are not checked automatically because the benchmark found no robust price advantage there. All providers and results.
All fares
Compare Super Sparpreis, Sparpreis and Flexpreis for the exact connection, including train restrictions, cancellation and City-Ticket.
Deutschlandticket
Under „Travellers & options“ turn on the „Deutschlandticket holder“ switch; in a group, mark the ticket for the relevant travellers. The app then prices only the trains the ticket does not cover, usually the long-distance part, and also looks for a regional-only connection with no additional fare. Under „Recommended“ the long-distance trains lead; the connections your ticket covers follow as their own group „With your Deutschlandticket“. One of them is recommended only if it takes at most one hour longer than the fastest paid train.
The ticket ends at the border. A journey that leaves Germany is therefore never shown as fully covered, even when both sides use regional trains. For such a journey, the booking summary shows DB's fare for the part beyond the border: „Covered to the border with D-Ticket · remaining fare“. The app does not yet compare buying the remaining part from the foreign railway.
Regional day tickets
Under „Savings checks“ Bahnsparer checks regional day tickets for your selected local or regional connection. A confirmed option shows the current group fare, class and validity period. One day ticket can cover both the outward and return trips; its fare is then counted once.
If coverage for a route, travel group or add-on is uncertain, the app makes no confirmed fare recommendation. The normal booking remains available.
„View all regional day tickets“ opens the directory for all 16 German federal states, including tickets valid across several states. Use the official purchase link to choose the date and travellers with the provider. Fares are indicative; purchase takes place with the provider.
Split-Tickets
Split tickets start collapsed even when a lower fare is found. The row shows the number of tickets, total fare and price difference. Tap to open the segments; each fare sits beside its provider's booking button.
Bahnsparer checks selected split points and matching ticket shops such as ČD for each segment. Only fully priced combinations for the same connection count. Each part shows its provider, price and booking action. Each part is a separate ticket; when the split includes a transfer, you carry the connection risk between the two tickets. More about price and risk.
Search other railways
Journey search is independent of shop comparison. FlixTrain, Westbahn, Leo Express, GoVolta, European Sleeper and Snälltåget provide their own trains. MÁV, PKP Intercity and ČD also find complete international connections; PKP searches when one endpoint is in Poland and ČD when one is in Czechia. Suitable results appear alongside DB in the calendar and connection list.
If a provider's station is not the chosen origin or destination, its fare counts as a total only after a fully priced rail connection before or after it is included. Bahnsparer allows at least 30 minutes between separate tickets. If a provider cannot price the complete party, class or extra, the app explains why and excludes it. BahnCard and Deutschlandticket apply only where the provider explicitly supports them. Passenger rights apply per ticket.
Return journeys
Each direction has its own date range. The summary shows the total price; under „Other travel days“ you can compare more pairs of travel days.
Intermediate stop
Under „Travellers & options“ you can use „Via station“ to require an intermediate stop. The railway then prices both segments, which can produce a different fare.
The provider is authoritative
Bahnsparer does not sell tickets. Prices are non-binding, partial fares are deliberately excluded and the purchase is completed with the relevant provider.

Watch prices
Fixed date or date range
After a search, each direction has its own price limit and add button. The default is €1 below that direction's current low, and you can change both limits separately before adding them. A fixed-date alert watches that exact day, a flexible alert watches the searched range and recurring alerts watch selected weekdays.
The calendar and background checks include DB and every journey source enabled in the profile. A price alert can therefore report a lower-priced provider journey or a day for which DB has no complete fare. Disabled providers are not queried.
The app checks an alert for today immediately and then during normal background checks. It ends at midnight or once no bookable departure remains; „Check now“ remains available until then.
Savings prompt without a price forecast
The savings prompt appears only for a fixed travel day: when the fare returns to a previously observed low or a low at least 20% below the current fare remains useful context. A first low, small changes and flexible date ranges do not trigger it. This is not a price forecast.
Under „Prices“ is where you manage alerts and price drops. You can start them there or after a search; for a return journey, only after both directions are chosen. A price drop becomes a saving only after a purchase.

Follow journeys
Save and follow a journey
Every selected journey can be saved from the booking summary with „Track journey“ save it; while the summary stays open, „Undo“ or unticking the switch removes the journey again right away. On the day of travel, there is nothing else to do: „Journeys“ opens that day's journey automatically and shows live times, platforms, tight connections and possible alternatives. Use „Collapse“ to return to the list and „View live“ to open it again. If no matching live train can be found, the journey remains saved with its timetable and clearly states that live data is unavailable.
Shared journeys from DB Navigator and bahn.de links can be imported too. For a live match, „Current DB arrival“ shows DB's forecast. That time may change during the journey.
On the train, a progress strip below the arrival time shows how far you have travelled: completed stops are filled, the current stop is a ring and the destination remains open. Above it are the next stop and platform and, when your DB account is connected, your reserved seat. „Share arrival“ and „Collapse“ sit under the reminder as quiet text actions, before departure and while travelling.
On Android and iOS, the app reminds you automatically five minutes before arrival; choose „Off“ to disable this for the journey. If your connection train follows the delayed train on the same route, the connection card explains that it cannot overtake and is often held. DB decides whether it waits.
Between 15 minutes and six hours before the scheduled arrival, „For planning · 9 out of 10 by“ may appear below it. The time comes from journeys with a similar DB forecast. The large arrival time remains DB's current forecast; alerts, ticket restrictions and alternative searches use only that value.
If no live forecast is available, the label reads „Scheduled arrival“. If the destination stop is cancelled, the app shows „Arrival cancelled“. If carriage-order data is available, the app identifies the unreserved sections in your class. Choose „Follow this one“ to make Bahnsparer follow a replacement connection you use; the originally booked arrival remains the basis for possible compensation.
Journey summary and passenger rights
When you adopt a connection from Bahnsparer search, the app stores its complete displayed fare with the journey. You can change it if you booked a different offer. A DB account import supplies the fare type, class, booking date and reservation, but no fare that can be assigned unambiguously; add it if needed.
Under „Details“ shows the remaining booking details: the ticket's validity, whether it is the outbound or return journey, the coach and seat of your reservation, and the order number. Each row appears only when DB supplies it. Missing information stays absent rather than becoming zero.
If the fare is missing after you choose „Track journey“ in the summary, the app asks once for the fare paid for that journey. The field remains blank until you enter an amount. For a return journey on one ticket, enter half for each direction. Choose „Later“ to skip it.
Bahnsparer shows a measured saving only when a matching alert covers the same travel day, travellers and fare options; otherwise it remains unknown. Completed journeys start collapsed, and journeys more than 30 days old move to the archive.
After the journey, the app compares scheduled and actual arrival. From 60 minutes late, it estimates possible compensation. On mobile, it can notify you that the passenger-rights details are ready. „Share facts“ creates text containing train numbers, the route, and scheduled and actual arrival. Choose „Open DB claim“ to open past journeys at DB directly. „Show claim steps“ explains the process in three steps first. Bahnsparer does not submit a claim. Without a fare, only the estimated amount remains unknown. When you may be entitled to compensation.
For a journey imported from your DB account, DB itself states whether a claim may be possible. This appears in the row „According to DB account“ below the app's estimate; the prominent figure remains the app's estimate. The order number appears beside it and is included with „Share facts“ because the DB form asks for it first. If a claim is already in progress for the journey, the app says so and uses „View claim“ to take you there instead of prompting a second submission.

Settings and data
Set search defaults
In your profile, set defaults for class, travellers, a bicycle and first-class comparison; each person is one row with type, BahnCard and D-Ticket, and one tap opens those choices. Under „Travellers & options“ change these for one search; if you close the sheet with X after making changes, the app asks whether to apply them. The default filters below affect loaded connections immediately; none is enabled by default, so night trains remain in the list. Under „Default sort“ choose how each connection list starts. Under „Data“, beside „DB account“, enter under „DB voucher“ your personal DB voucher codes, such as “€10 off €29.99”: the connection list and booking summary then show the fare after the largest matching voucher for each DB booking, and ticket shops must beat that amount. Enter the code when paying at bahn.de; only DB knows whether it is still valid. Every change in a sheet applies immediately; „Done“ closes it again.
Under „Provider“ starts with every available source enabled. „Additional trains“ and „International journeys“ control which journeys appear in search, the calendar and price alerts. Under „Automatic price comparisons“ you can disable ticket and seat-reservation shops individually. These switches affect only the price check in the booking summary; DB remains visible as a booking option.
Under ‘Appearance’, ‘Day view’ sets whether new flexible searches start as a calendar or list. Switching views within a search does not change this default. ‘Theme’ offers Light, Dark and System; System follows your device. Theme and language changes apply immediately; ‘Done’ closes the selection.
If no notification arrives
A price alert needs two permissions: the app must be allowed to check the fare in the background and show a notification. The final onboarding step and the profile show the current state under „Notifications“. Choose „Open system settings“ takes you directly to the app page in your device settings.
Android: allow background checks
Open Bahnsparer's system settings. Under „Battery“ or „App battery usage“ enable background use. If your device offers several levels, choose „Unrestricted“. If „Pause app activity“ is offered, turn it off. With background use disabled or set to „Restricted“ , Android can stop price checks completely.
iPhone and iPad: enable Background App Refresh
Open „Settings“, then „General“ and „Background App Refresh“. Both the feature and Bahnsparer must be enabled. Low Power Mode restricts background refresh. Do not close Bahnsparer from the app switcher; iOS may otherwise suspend further checks until the app is opened again.
The device decides when checks run
Android and iOS do not run background checks on a reliable schedule. Usage, battery, network access and device settings can delay them. A price alert therefore cannot promise a fixed check time. The app reads any new results when it next opens.
Local data, iCloud and a DB account
You do not need a Bahnsparer account. Price alerts, journeys, saved routes and search settings live on your device first. On iPhone and iPad, you can use „Data“ to sync them through your private iCloud account. Price histories, notification permissions and sign-in data remain on each device.
In the installed app, you can optionally sign in to DB and import current and past trips into „Journeys“ . Sign-in takes place on DB's page and Bahnsparer never receives your password. Imported journeys remain if you disconnect the DB account later.
From the booking, the app stores only what it needs for the journey: trains, times, stops, fare, class, reservation with coach and seat, validity, direction, order number and DB's passenger-rights information. It does not read your name or form of address, and the ticket itself remains with DB.
Under „Data“ is where you delete your Bahnsparer data. If iCloud sync is on, this also deletes Bahnsparer data stored there; your DB account itself is unchanged.
The app does not ask a Bahnsparer server for permission to start or for a newer version. Your installed version appears in the profile for information only.

Still have a question? Email mail@maxritter.net – Max reads every email himself.

