BayesianBahn
Empirical arrival-time distributions for Deutsche Bahn trains
Version: 0.1.2
Added: 21-08-2026
Updated: 21-08-2026
Added: 21-08-2026
Updated: 21-08-2026
Early release: predictions are experimental — always cross-check
times and connections with DB's official apps.
BayesianBahn predicts when you will actually arrive — as a full
probability distribution, not a single number.
Enter where you start, where you want to go and when (also future trips):
the app searches direct trains and journeys with one change — routes
needing two or more changes are not covered yet, so it will sometimes
find fewer connections than DB's own apps. For each option it shows:
* the median predicted arrival time at your destination,
* an 80% credible interval,
* the full delay distribution as a chart,
* the probability of catching each connecting train,
* a Deutschland-Ticket filter that keeps you on regional trains.
Transfers are propagated with Bayes' theorem: you board the first
connecting train that has not left yet — so a delayed earlier train
counts as catchable, and a missed connection honestly shifts the whole
distribution. Live station boards and per-train predictions (including
cancellation rates) are also available.
Predictions are empirical: they come from months of real historical runs
of that exact train at that station (collected from Deutsche Bahn's
public IRIS API, CC BY 4.0), reweighted for recency and weekday and
anchored on the train's current live delay. Delay history updates
in-app — a small daily data release keeps predictions fresh to within a
day. Trains without history get an honest Bayesian prior estimate.
The app talks only to the keyless public IRIS timetable endpoint and the
project's own data releases, needs no account, no API key, no Google
services, and collects no data.
times and connections with DB's official apps.
BayesianBahn predicts when you will actually arrive — as a full
probability distribution, not a single number.
Enter where you start, where you want to go and when (also future trips):
the app searches direct trains and journeys with one change — routes
needing two or more changes are not covered yet, so it will sometimes
find fewer connections than DB's own apps. For each option it shows:
* the median predicted arrival time at your destination,
* an 80% credible interval,
* the full delay distribution as a chart,
* the probability of catching each connecting train,
* a Deutschland-Ticket filter that keeps you on regional trains.
Transfers are propagated with Bayes' theorem: you board the first
connecting train that has not left yet — so a delayed earlier train
counts as catchable, and a missed connection honestly shifts the whole
distribution. Live station boards and per-train predictions (including
cancellation rates) are also available.
Predictions are empirical: they come from months of real historical runs
of that exact train at that station (collected from Deutsche Bahn's
public IRIS API, CC BY 4.0), reweighted for recency and weekday and
anchored on the train's current live delay. Delay history updates
in-app — a small daily data release keeps predictions fresh to within a
day. Trains without history get an honest Bayesian prior estimate.
The app talks only to the keyless public IRIS timetable endpoint and the
project's own data releases, needs no account, no API key, no Google
services, and collects no data.