IR 31390 Olten – Bern
View line IR
Alerts for train 31390
Alerts are saved per line, not per trip id, so they keep working when the operator changes the timetable. This train runs on line IR.
It does not run today
Last recorded run: Saturday 10 October No data
On-time · 30 days
—
Too little data (0/1 runs with data)
RT coverage: 0 full · 0 partial · 1 no data
On-time · 90 days
75%
3/4 runs under 3 min
RT coverage: 4 full · 0 partial · 1 no data
Typical delay
—
Needs at least 5 runs with data (4 so far)
P90
—
Needs at least 5 runs with data (4 so far)
Last 30 days
Arrival delay at Bern, in minutes. One bar per run.
- On time (<3 min)
- 3–10 min
- 10–30 min
- 30+ min
- Partial coverage
- No data
Worst days
- Wed 9 Sept Max en route +3 min · last fix heading to Lugano +3 min
Distribution · 90 days
4 runs with a known final delay. On time = under 3 min, the same cut the map uses.
- Early 0% · 0
- On time 75% · 3
- 3–10 min 25% · 1
- 10–30 min 0% · 0
- 30+ min 0% · 0
On-time by weekday
- 100% M n=2
- 100% T n=1
- 0% W n=1
- — T n=0
- — F n=0
- — S n=0
- — S n=0
Stops and timetable
Timetable of the latest run from the operator’s GTFS (6 stops).
| Stop | Sched. |
|---|---|
| 21:36 | |
| 21:47 / 21:48 | |
| 21:53 / 21:54 | |
| 22:01 / 22:02 | |
| 22:08 / 22:09 | |
| 22:26 |
Each run is closed into train_runs (country, train number, service day) from the live positions. Final delay = last delay seen. Partial coverage: the feed stopped before the final stop (last value used, hatched in the chart). No data: a run without any valid delay; counts as neither on time nor late. Data collected since 11 July 2026.
Recent runs
| Date | Last stop | Final | Max |
|---|---|---|---|
| Sat 10 Oct | Bern 22:27 | No data | — |
| Wed 9 Sept | Lugano 17:50 | +3 min | +3 min |
| Tue 8 Sept | Lugano 17:49 | +1 min | +7 min |
| Mon 7 Sept | Schaffhausen 00:42 | 0 min | +4 min |
| Mon 3 Aug | Schaffhausen 00:42 | +1 min | +1 min |