TransPennine Express 161K39
View line TransPennine Express
Alerts for train 161K39
Alerts are saved per line, not per trip id, so they keep working when the operator changes the timetable. This train runs on line TransPennine Express.
The mini-map returns when the train runs
On-time · 30 days
100%
16/16 runs under 3 min
RT coverage: 16 full · 0 partial · 0 no data
On-time · 90 days
92%
48/52 runs under 3 min
RT coverage: 52 full · 0 partial · 0 no data
Typical delay
−1min
Median at arrival, 90 days
30 days: 0 min
P90
+2min
9 in 10 runs arrive with less than this
30 days: +2 min
Last 30 days
Delay at the end of each run, 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 22 Jul Max en route +12 min · last fix heading to 19109 +12 min
- Fri 24 Jul Max en route +8 min · last fix heading to 19109 +8 min
- Tue 21 Jul Max en route +8 min · last fix heading to 19109 +6 min
- Tue 28 Jul Max en route +4 min · last fix heading to 19109 +4 min
Distribution · 90 days
52 runs with a known final delay. On time = under 3 min, the same cut the map uses.
- Early 35% · 18
- On time 58% · 30
- 3–10 min 6% · 3
- 10–30 min 2% · 1
- 30+ min 0% · 0
On-time by weekday
- — M n=0
- 85% T n=13
- 92% W n=13
- 100% T n=13
- 92% F n=12
- — S n=0
- 100% S n=1
Recent runs
| Date | Last stop | Final | Max |
|---|---|---|---|
| Fri 9 Oct | Brough 00:54 | 0 min | +1 min |
| Thu 8 Oct | Brough 00:53 | 0 min | +2 min |
| Wed 7 Oct | Brough 00:55 | +2 min | +3 min |
| Tue 6 Oct | Brough 07:57 | 0 min | +3 min |
| Fri 2 Oct | 19109 00:52 | 0 min | +3 min |
| Thu 1 Oct | 19109 00:52 | 0 min | +2 min |
| Wed 30 Sept | 19109 00:51 | −2 min | +2 min |
| Tue 29 Sept | 19109 00:51 | −3 min | +2 min |
| Fri 25 Sept | 19109 00:53 | 0 min | +3 min |
| Thu 24 Sept | 19109 00:59 | 0 min | +2 min |
| Wed 23 Sept | 19109 00:55 | +1 min | +3 min |
| Tue 22 Sept | 19109 00:55 | 0 min | +2 min |
| Fri 18 Sept | 19109 00:51 | −1 min | +2 min |
| Thu 17 Sept | 19109 00:56 | +2 min | +4 min |
| Wed 16 Sept | 19109 00:56 | +2 min | +4 min |
| Tue 15 Sept | 19109 00:55 | +1 min | +3 min |
| Fri 11 Sept | 19109 00:53 | 0 min | +3 min |
| Thu 10 Sept | 19109 00:55 | +1 min | +4 min |
| Wed 9 Sept | 19109 00:51 | −2 min | +1 min |
| Tue 8 Sept | 19109 00:52 | −1 min | +1 min |
| Fri 4 Sept | 19109 00:50 | −2 min | +1 min |
| Thu 3 Sept | 19109 00:51 | −2 min | +1 min |
| Wed 2 Sept | 19109 00:39 | −1 min | +1 min |
| Tue 1 Sept | 19109 00:51 | −2 min | +2 min |
| Sun 30 Aug | 19109 00:36 | −1 min | +2 min |
| Fri 28 Aug | 19109 00:53 | −1 min | +1 min |
| Thu 27 Aug | 19109 00:58 | −1 min | +1 min |
| Wed 26 Aug | 19109 00:52 | −1 min | +1 min |
| Tue 25 Aug | 19109 00:51 | −1 min | +2 min |
| Fri 21 Aug | 19109 00:54 | 0 min | +1 min |
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.