R31 291 Oslo S – Hakadal stasjon
Alerts for train 291
Alerts are saved per line, not per trip id, so they keep working when the operator changes the timetable. This train runs on line R31.
It has not run yet today
Last recorded run: Monday 2 November +1 min
Next service: today 15:44 from Oslo S · Tue 3 Nov
Last 30 days
Arrival delay at Hakadal stasjon, in minutes. One bar per run.
- On time (<3 min)
- 3–10 min
- 10–30 min
- 30+ min
- Partial coverage
- No data
Worst days
- Fri 23 Oct Max en route +35 min · last fix heading to Hakadal stasjon +29 min
- Wed 14 Oct Max en route +33 min · last fix heading to Varingskollen stasjon +26 min
- Fri 9 Oct Max en route +27 min · last fix heading to Varingskollen stasjon +21 min
- Mon 28 Sept Max en route +8 min · last fix heading to — +7 min
- Mon 24 Aug Max en route +8 min · last fix heading to — +5 min
Distribution · 90 days
24 runs with a known final delay. On time = under 3 min, the same cut the map uses.
- Early 17% · 4
- On time 58% · 14
- 3–10 min 13% · 3
- 10–30 min 13% · 3
- 30+ min 0% · 0
On-time by weekday
- 71% M n=7
- 100% T n=5
- 67% W n=3
- 100% T n=4
- 40% F n=5
- — S n=0
- — S n=0
Stops and timetable
Timetable of the latest run from the operator’s GTFS (11 stops).
| Stop | Sched. |
|---|---|
| 15:44 | |
| 15:48 / 15:49 | |
| 15:52 / 15:53 | |
| 15:54 / 15:55 | |
| 15:57 / 15:58 | |
| 16:04 / 16:05 | |
| 16:08 / 16:11 | |
| 16:16 / 16:18 | |
| 16:21 / 16:22 | |
| 16:24 / 16:25 | |
| 16:28 |
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 |
|---|---|---|---|
| Mon 2 Nov | Varingskollen stasjon 16:54Partial coverage | +1 min | +8 min |
| Fri 30 Oct | Hakadal stasjon 16:55 | +4 min | +5 min |
| Wed 28 Oct | Varingskollen stasjon 16:50Partial coverage | 0 min | +4 min |
| Tue 27 Oct | Varingskollen stasjon 16:54Partial coverage | +3 min | +5 min |
| Mon 26 Oct | Hakadal stasjon 16:49 | −1 min | +1 min |
| Fri 23 Oct | Hakadal stasjon 17:20 | +29 min | +35 min |
| Thu 22 Oct | Hakadal stasjon 16:50 | −1 min | — |
| Wed 21 Oct | Varingskollen stasjon 16:55Partial coverage | +1 min | +3 min |
| Tue 20 Oct | Varingskollen stasjon 16:51Partial coverage | +1 min | +2 min |
| Mon 19 Oct | Hakadal stasjon 16:50 | −1 min | +2 min |
| Fri 16 Oct | Hakadal stasjon 16:50 | −1 min | +3 min |
| Wed 14 Oct | Varingskollen stasjon 17:15Partial coverage | +26 min | +33 min |
| Tue 13 Oct | Varingskollen stasjon 16:54Partial coverage | +2 min | +2 min |
| Mon 12 Oct | Hakadal stasjon 16:50 | −1 min | +3 min |
| Fri 9 Oct | Varingskollen stasjon 17:10Partial coverage | +21 min | +27 min |
| Thu 8 Oct | Varingskollen stasjon 16:55Partial coverage | +3 min | +7 min |
| Tue 6 Oct | Varingskollen stasjon 16:55Partial coverage | +2 min | +4 min |
| Mon 5 Oct | Hakadal stasjon 16:48 | 0 min | +1 min |
| Thu 1 Oct | — 15:52 | +1 min | +1 min |
| Mon 28 Sept | — 17:00 | +7 min | +8 min |
| Mon 24 Aug | — 16:54 | +5 min | +8 min |
| Fri 21 Aug | — 16:50 | +1 min | +3 min |
| Tue 18 Aug | — 16:55 | +2 min | +2 min |
| Thu 13 Aug | — 16:50 | 0 min | — |