TransPennine Express 129M12
Alerts for train 129M12
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.
Running now · updated 13:23
Running now +7 min
Today it is running worse than usual: typical arrival delay is +6 min; 37% of the last 30 runs arrived on time.
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
- Fri 9 Oct Max en route +51 min · last fix heading to Rainhill +51 min
- Wed 7 Oct Max en route +44 min · last fix heading to Cross Gates +41 min
- Thu 22 Oct Max en route +40 min · last fix heading to Cross Gates +39 min
- Wed 21 Oct Max en route +40 min · last fix heading to Roby +34 min
- Wed 26 Aug Max en route +27 min · last fix heading to 36056 +21 min
Distribution · 90 days
90 runs with a known final delay. On time = under 3 min, the same cut the map uses.
- Early 8% · 7
- On time 41% · 37
- 3–10 min 24% · 22
- 10–30 min 22% · 20
- 30+ min 4% · 4
On-time by weekday
- 62% M n=13
- 46% T n=13
- 38% W n=13
- 38% T n=13
- 23% F n=13
- 50% S n=12
- 85% S n=13
Recent runs
| Date | Last stop | Final | Max |
|---|---|---|---|
| Fri 6 Nov | Thirsk 13:19 | +7 min | +8 min |
| Thu 5 Nov | Rainhill 15:17 | +18 min | +22 min |
| Wed 4 Nov | Rainhill 15:09 | +14 min | +14 min |
| Tue 3 Nov | Huyton 15:03 | +4 min | +9 min |
| Mon 2 Nov | Rainhill 15:03 | +5 min | +6 min |
| Sun 1 Nov | Northallerton 13:05 | 0 min | +7 min |
| Sat 31 Oct | Northallerton 13:22 | +15 min | +15 min |
| Fri 30 Oct | Thirsk 13:11 | +2 min | +2 min |
| Thu 29 Oct | Thirsk 13:15 | +6 min | +7 min |
| Wed 28 Oct | Thirsk 13:16 | +6 min | +7 min |
| Tue 27 Oct | Thirsk 13:20 | +11 min | +11 min |
| Mon 26 Oct | Thirsk 13:14 | +6 min | +6 min |
| Sun 25 Oct | Northallerton 13:08 | +3 min | +7 min |
| Sat 24 Oct | Northallerton 13:07 | 0 min | +2 min |
| Fri 23 Oct | Rainhill 15:19 | +12 min | +12 min |
| Thu 22 Oct | Cross Gates 14:15 | +39 min | +40 min |
| Wed 21 Oct | Roby 15:41 | +34 min | +40 min |
| Tue 20 Oct | St Helens Junction 15:06 | −1 min | +3 min |
| Mon 19 Oct | Rainhill 15:06 | −1 min | +3 min |
| Sun 18 Oct | Thirsk 13:55 | −1 min | +5 min |
| Sat 17 Oct | Roby 15:56 | +16 min | +18 min |
| Fri 16 Oct | Huyton 15:20 | +13 min | +14 min |
| Thu 15 Oct | St Helens Junction 15:10 | +3 min | +4 min |
| Wed 14 Oct | Huyton 15:08 | +1 min | +8 min |
| Tue 13 Oct | Rainhill 15:08 | +1 min | +4 min |
| Mon 12 Oct | Huyton 15:07 | 0 min | +4 min |
| Sun 11 Oct | Thirsk 13:08 | −1 min | +1 min |
| Sat 10 Oct | Thirsk 13:23 | +14 min | +14 min |
| Fri 9 Oct | Rainhill 15:58 | +51 min | +51 min |
| Thu 8 Oct | Rainhill 15:08 | +1 min | +3 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.