Transport for Wales
89% of Transport for Wales's 77,135 recorded arrivals from 6 Aug 2026 to 7 Nov 2026 were within five minutes, putting it 2.0 points clear of the network average for the same dates.
Over 94 archived days that is 1,230 services a day, 5.0% of the national timetable. Of 77,135 recorded arrivals, 68,753 were within five minutes and 773 were more than half an hour down.
Its week is strongly peaked: 1,586 services on Friday, 7 August 2026 against 737 on Sunday, 25 October 2026, a swing of 2.2 times.
The average delay at destination was 0.8 minutes. The worst single arrival recorded was 3h 08m behind schedule, Wrexham Central to Bidston on Thursday, 17 September 2026.
The day-to-day spread is wide — 22 points between its best day, Sunday, 18 October 2026 at 95%, and its worst, Saturday, 24 October 2026 at 74%.
3,483 services were cancelled, 3.0% of everything booked — above the 2.3% the network cancelled over the same dates. The worst single day was Saturday, 24 October 2026, at 12% of that day's timetable.
Counting those cancellations as failures, the way the industry's own measure does, takes the on-time share from 89% of recorded arrivals to 85% of everything booked whose outcome is known — 3.9 points.
Ranked on on-time share of recorded arrivals against the 34 operators with enough of them to compare, Transport for Wales comes 12th.
Transport for Wales in numbers
| Archived days covered | 94 | 6 Aug 2026 to 7 Nov 2026 |
|---|---|---|
| Passenger trains recorded | 115,642 | |
| Share of the national timetable | 5.0% | of 2,333,642 over the same dates |
| Cancelled | 3,483 | 3.0% · network 2.3% |
| Arrival time recorded | 77,135 | 68.8% of those that ran |
| …arrived within 5 minutes | 68,753 | 89.1% |
| …arrived 5 to 30 minutes late | 7,609 | 9.9% |
| …arrived more than 30 minutes late | 773 | 1.0% |
| Average delay at destination | 0.8 min | |
| On time, counting cancellations | 85.3% | of the 80,618 booked services whose outcome is known · network 84% |
| Network, same dates | 87% | on time, against this operator's 89% |
Every percentage among the bands is of the 77,135 services whose arrival reached the archive, not of all 115,642, and the bands are exclusive. 35,024 ran without an arrival being recorded, and nothing is claimed about those. The row counting cancellations is those same 68,753 on-time arrivals over a denominator that also holds the 3,483 trains that did not run at all. Delay is judged at the destination, a stricter test than the industry's own measure and not comparable with it. The on-time share and the average delay answer different questions.
Day by day
94 archived days, 6 Aug 2026 to 7 Nov 2026, widest bar the busiest, filled to the share that arrived within five minutes. The same days across every operator.
| Date | Runs | Cancelled | Arrivals | Recorded | On time | Incl. cancelled | Avg delay |
|---|---|---|---|---|---|---|---|
| Saturday, 7 November 2026 | 1,260 | 2% | 906 | 73% | 84% | 82% | 1.9 min |
| Friday, 6 November 2026 | 1,243 | 4% | 1,006 | 84% | 85% | 81% | 2.9 min |
| Thursday, 5 November 2026 | 1,292 | 3% | 964 | 77% | 88% | 84% | 1.3 min |
| Wednesday, 4 November 2026 | 1,258 | 2% | 1,027 | 84% | 89% | 86% | 0.9 min |
| Tuesday, 3 November 2026 | 1,254 | 1% | 1,043 | 84% | 86% | 85% | 1.1 min |
| Monday, 2 November 2026 | 1,246 | 2% | 1,029 | 84% | 88% | 85% | 0.9 min |
| Sunday, 1 November 2026 | 927 | 1% | 545 | 59% | 90% | 89% | 0.2 min |
| Saturday, 31 October 2026 | 1,434 | 5% | 918 | 67% | 84% | 78% | 2.2 min |
| Friday, 30 October 2026 | 1,348 | 2% | 853 | 64% | 85% | 82% | 1.6 min |
| Thursday, 29 October 2026 | 1,333 | 4% | 790 | 62% | 86% | 81% | 0.9 min |
| Wednesday, 28 October 2026 | 1,348 | 4% | 825 | 64% | 83% | 78% | 2.4 min |
| Tuesday, 27 October 2026 | 1,343 | 2% | 800 | 61% | 76% | 74% | 4.3 min |
| Monday, 26 October 2026 | 1,344 | 5% | 762 | 60% | 78% | 71% | 4.7 min |
| Sunday, 25 October 2026 | 737 | 6% | 439 | 63% | 73% | 66% | 5.2 min |
| Saturday, 24 October 2026 | 1,111 | 12% | 730 | 75% | 74% | 62% | 5.2 min |
| Friday, 23 October 2026 | 1,269 | 11% | 901 | 80% | 78% | 67% | 4.2 min |
| Thursday, 22 October 2026 | 1,251 | 3% | 902 | 74% | 89% | 86% | 0.4 min |
| Wednesday, 21 October 2026 | 1,192 | 2% | 966 | 83% | 84% | 82% | 3.4 min |
| Tuesday, 20 October 2026 | 1,207 | 3% | 978 | 83% | 85% | 82% | 2.3 min |
| Monday, 19 October 2026 | 1,232 | 2% | 1,029 | 85% | 94% | 92% | 0.5 min early |
| Sunday, 18 October 2026 | 837 | 1% | 660 | 80% | 95% | 94% | 0.9 min early |
| Saturday, 17 October 2026 | 1,401 | 5% | 880 | 66% | 88% | 82% | 0.9 min |
| Friday, 16 October 2026 | 1,233 | 1% | 1,041 | 85% | 93% | 92% | 0.2 min early |
| Thursday, 15 October 2026 | 1,244 | 3% | 913 | 76% | 91% | 88% | 0.1 min |
| Wednesday, 14 October 2026 | 1,250 | 4% | 872 | 73% | 90% | 84% | 0.5 min |
| Tuesday, 13 October 2026 | 1,237 | 1% | 1,026 | 84% | 94% | 92% | 0.2 min early |
| Monday, 12 October 2026 | 1,238 | 2% | 1,030 | 85% | 91% | 89% | 0.3 min |
| Sunday, 11 October 2026 | 863 | 1% | 661 | 77% | 89% | 89% | 0.5 min |
| Saturday, 10 October 2026 | 1,427 | 1% | 1,076 | 76% | 91% | 90% | 0.2 min |
| Friday, 9 October 2026 | 1,221 | 3% | 999 | 85% | 89% | 85% | 1.3 min |
| Thursday, 8 October 2026 | 1,241 | 1% | 1,043 | 85% | 94% | 93% | 0.4 min early |
| Wednesday, 7 October 2026 | 1,251 | 2% | 1,043 | 85% | 89% | 87% | 0.6 min |
| Tuesday, 6 October 2026 | 1,243 | 2% | 1,039 | 85% | 94% | 92% | 0.5 min early |
| Monday, 5 October 2026 | 1,279 | 6% | 969 | 81% | 93% | 86% | 0.5 min |
| Sunday, 4 October 2026 | 878 | 1% | 704 | 81% | 88% | 87% | 0.8 min |
| Saturday, 3 October 2026 | 1,285 | 2% | 891 | 71% | 90% | 88% | 0.4 min |
| Friday, 2 October 2026 | 1,278 | 3% | 1,015 | 82% | 91% | 87% | 0.6 min |
| Thursday, 1 October 2026 | 1,290 | 4% | 1,021 | 82% | 89% | 85% | 0.9 min |
| Wednesday, 30 September 2026 | 1,282 | 2% | 1,003 | 80% | 91% | 88% | 0.5 min |
| Tuesday, 29 September 2026 | 1,276 | 0% | 1,049 | 83% | 91% | 91% | 2.4 min |
| Monday, 28 September 2026 | 1,261 | 1% | 1,037 | 83% | 92% | 91% | 0.3 min early |
| Sunday, 27 September 2026 | 842 | 1% | 559 | 67% | 91% | 90% | 0.3 min early |
| Saturday, 26 September 2026 | 1,343 | 4% | 1,035 | 80% | 89% | 84% | 0.5 min |
| Friday, 25 September 2026 | 1,288 | 7% | 983 | 82% | 93% | 86% | 0.4 min early |
| Thursday, 24 September 2026 | 1,296 | 5% | 983 | 80% | 92% | 86% | 0.2 min |
| Wednesday, 23 September 2026 | 1,262 | 8% | 803 | 69% | 92% | 81% | 0.1 min early |
| Tuesday, 22 September 2026 | 1,215 | 4% | 971 | 84% | 90% | 85% | 0.4 min |
| Monday, 21 September 2026 | 1,233 | 7% | 945 | 83% | 90% | 82% | 0.2 min |
| Sunday, 20 September 2026 | 818 | 3% | 647 | 81% | 90% | 87% | 0.5 min |
| Saturday, 19 September 2026 | 1,357 | 7% | 834 | 66% | 82% | 74% | 1.8 min |
| Friday, 18 September 2026 | 1,249 | 3% | 1,006 | 83% | 92% | 88% | 0 min |
| Thursday, 17 September 2026 | 1,235 | 3% | 714 | 59% | 94% | 90% | 0.2 min early |
| Wednesday, 16 September 2026 | 1,250 | 2% | 847 | 69% | 93% | 89% | 0.1 min early |
| Tuesday, 15 September 2026 | 1,202 | 4% | 897 | 78% | 92% | 88% | 0.2 min early |
| Monday, 14 September 2026 | 1,173 | 6% | 908 | 82% | 92% | 86% | 0.1 min early |
| Sunday, 13 September 2026 | 806 | 2% | 590 | 75% | 92% | 90% | 0.2 min early |
| Saturday, 12 September 2026 | 1,261 | 2% | 832 | 67% | 89% | 86% | 0.4 min |
| Friday, 11 September 2026 | 1,213 | 2% | 993 | 83% | 92% | 90% | 0.5 min |
| Thursday, 10 September 2026 | 1,222 | 3% | 958 | 81% | 95% | 91% | 0.8 min early |
| Wednesday, 9 September 2026 | 1,275 | 1% | 957 | 76% | 94% | 93% | 0.4 min early |
| Tuesday, 8 September 2026 | 1,230 | 3% | 972 | 82% | 92% | 89% | 0.1 min |
| Monday, 7 September 2026 | 1,212 | 1% | 970 | 81% | 94% | 93% | 0.3 min early |
| Sunday, 6 September 2026 | 802 | 0% | 643 | 81% | 92% | 92% | 0.3 min early |
| Saturday, 5 September 2026 | 1,294 | 2% | 979 | 77% | 88% | 86% | 1 min |
| Friday, 4 September 2026 | 1,254 | 2% | 1,047 | 85% | 91% | 90% | 0.5 min |
| Thursday, 3 September 2026 | 1,242 | 3% | 914 | 76% | 94% | 91% | 0.2 min early |
| Wednesday, 2 September 2026 | 1,241 | 2% | 952 | 79% | 94% | 91% | 0.3 min early |
| Tuesday, 1 September 2026 | 1,302 | 5% | 996 | 80% | 90% | 85% | 0.5 min |
| Monday, 31 August 2026 | 1,201 | 5% | 929 | 82% | 86% | 81% | 1.3 min |
| Sunday, 30 August 2026 | 843 | 1% | 651 | 78% | 89% | 88% | 0.8 min |
| Saturday, 29 August 2026 | 1,298 | 3% | 983 | 78% | 92% | 89% | 0.1 min early |
| Friday, 28 August 2026 | 1,303 | 3% | 972 | 77% | 87% | 84% | 1.5 min |
| Thursday, 27 August 2026 | 1,303 | 1% | 1,012 | 79% | 88% | 86% | 1.4 min |
| Wednesday, 26 August 2026 | 1,307 | 3% | 955 | 76% | 87% | 83% | 1.3 min |
| Tuesday, 25 August 2026 | 1,308 | 2% | 969 | 76% | 89% | 86% | 0.8 min |
| Monday, 24 August 2026 | 1,303 | 3% | 959 | 76% | 87% | 84% | 1.2 min |
| Sunday, 23 August 2026 | 821 | 1% | 650 | 80% | 86% | 85% | 1.7 min |
| Saturday, 22 August 2026 | 1,266 | 2% | 913 | 74% | 86% | 83% | 0.8 min |
| Friday, 21 August 2026 | 1,253 | 4% | 906 | 75% | 89% | 85% | 0.4 min |
| Thursday, 20 August 2026 | 1,236 | 3% | 857 | 71% | 91% | 88% | 0.2 min |
| Wednesday, 19 August 2026 | 1,267 | 2% | 947 | 76% | 91% | 89% | 0.2 min |
| Tuesday, 18 August 2026 | 1,256 | 1% | 878 | 71% | 94% | 92% | 0.2 min early |
| Monday, 17 August 2026 | 1,304 | 2% | 861 | 67% | 90% | 87% | 0.2 min |
| Sunday, 16 August 2026 | 786 | 2% | 577 | 75% | 87% | 84% | 0.8 min |
| Saturday, 15 August 2026 | 1,485 | 1% | 682 | 46% | 85% | 84% | 1.3 min |
| Friday, 14 August 2026 | 1,532 | 0% | 134 | 9% | 84% | 84% | 3.4 min |
| Thursday, 13 August 2026 | 1,505 | 4% | 36 | 3% | 69% | 24% | 6.4 min |
| Wednesday, 12 August 2026 | 1,553 | 5% | 12 | 1% | 75% | 9% | 2.8 min |
| Tuesday, 11 August 2026 | 1,442 | 3% | 128 | 9% | 86% | 66% | 1.6 min |
| Monday, 10 August 2026 | 1,383 | 0% | 186 | 13% | 91% | 89% | 0 min |
| Sunday, 9 August 2026 | 932 | 0% | 59 | 6% | 88% | 88% | 2.9 min |
| Saturday, 8 August 2026 | 1,531 | 0% | 512 | 34% | 79% | 78% | 5 min |
| Friday, 7 August 2026 | 1,586 | 5% | 42 | 3% | 76% | 25% | 1.3 min |
| Thursday, 6 August 2026 | 1,377 | 6% | 5 | 0% | 60% | 3% | 6 min |
In the daily longest-delay league
Transport for Wales appears 59 times across 94 archived days, on 8 separate dates in the ten shown. These are appearances in the daily league, not this operator's own worst delays.
| Date | Service | Late by |
|---|---|---|
| 17 Sept 2026 | Wrexham Central to Bidston 09:16 · 2F56 | 3h 08m |
| 24 Oct 2026 | Ebbw Vale Town to Maesteg 19:08 · 2O42 | 2h 42m |
| 21 Oct 2026 | Ebbw Vale Town to Newport (South Wales) 13:39 · 2O15 | 2h 31m |
| 30 Aug 2026 | Milford Haven to Manchester Piccadilly 13:41 · 1W61 | 2h 30m |
| 21 Oct 2026 | Ebbw Vale Town to Maesteg 14:07 · 2L32 | 2h 19m |
| 5 Oct 2026 | Cardiff Central to Manchester Piccadilly 08:55 · 1W55 | 2h 17m |
| 3 Nov 2026 | Birmingham International to Chester 21:09 · 1R98 | 2h 13m |
| 24 Sept 2026 | Cheltenham Spa to Cardiff Central 10:40 · 2G53 | 2h 13m |
| 5 Oct 2026 | Cardiff Central to Holyhead 09:23 · 1W93 | 2h 09m |
| 13 Oct 2026 | Shrewsbury to Aberystwyth 10:27 · 1J09 | 2h 05m |
Recorded live from the Darwin and TRUST feeds on each of the 94 days above,
and aggregated here. AW is this operator's ATOC code. How these figures are measured · All operators · Sources and licences