| Station | Platform | Arrival | Departure |
|---|---|---|---|
| CDF Cardiff Central | 7 | 05:26 ✔ On Time | |
| CDQ Cardiff Queen Street | 5 | 05:30 ✔ 1m early | 05:30 ✔ 1m early |
| CYS Cathays | 2 | 05:32 ✔ On Time | 05:33 ✔ On Time |
| LLN Llandaf | 2 | 05:37 ✔ 1m early | 05:37 ✔ On Time |
| RDR Radyr | 3 | 05:40 ✔ 1m early | 05:40 ✔ On Time |
| TAF Taffs Well | 2 | 05:44 ✔ 1m early | 05:44 ✔ On Time |
| TRE Trefforest Estate | 1 | 05:48 ✔ On Time | 05:48 ⚠ 1m late |
| TRF Trefforest | 2 | 05:52 ✔ On Time | 05:53 ⚠ 1m late |
| PPD Pontypridd | 3 | 05:57 ✔ 1m early | 05:59 ⚠ 2m late |
| ACY Abercynon | 2 | 06:06 ⚠ 2m late | 06:06 ⚠ 3m late |
| MEV Merthyr Vale | 2 | 06:17 ✔ 1m early | 06:17 ✔ On Time |
| TRD Troed-y-rhiw | ??? | 06:20 ✔ On Time | 06:21 ✔ On Time |
| PTB Pentre-Bach | ??? | 06:24 ✔ 1m early | 06:24 ✔ On Time |
| MER Merthyr Tydfil | ??? | 06:31 ✔ 2m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| MER Merthyr Tydfil | ??? | 06:38 ✔ On Time | |
| PTB Pentre-Bach | ??? | 06:41 ✔ On Time | 06:42 ✔ On Time |
| TRD Troed-y-rhiw | ??? | 06:44 ✔ On Time | 06:45 ✔ On Time |
| MEV Merthyr Vale | 1 | 06:49 ✔ 1m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| MEV Merthyr Vale | ??? | 07:00 | |
| QYD Quakers Yard | ??? | 07:05 | 07:05 |
| ACY Abercynon | ??? | 07:15 |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| ACY Abercynon | 2 | 07:49 ⚠ 3m late | |
| PER Penrhiwceiber | ??? | 07:54 ⚠ 3m late | 07:55 ⚠ 3m late |
| MTA Mountain Ash | 1 | 08:00 ✔ On Time | 08:03 ⚠ 1m late |
| FER Fernhill | ??? | 08:05 ⚠ 1m late | 08:06 ⚠ 1m late |
| CMH Cwmbach | ??? | 08:09 ✔ On Time | 08:10 ✔ On Time |
| ABA Aberdare | 1 | 08:16 ✔ 2m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| ABA Aberdare | 1 | 08:21 ✔ 1m early | |
| CMH Cwmbach | ??? | 08:24 ⚠ 1m late | 08:24 ⚠ 3m late |
| FER Fernhill | ??? | 08:28 ⚠ 1m late | 08:28 ⚠ 2m late |
| MTA Mountain Ash | 2 | 08:32 ✔ On Time | 08:34 ✔ On Time |
| PER Penrhiwceiber | ??? | 08:37 ✔ On Time | 08:38 ✔ On Time |
| ACY Abercynon | 1 | 08:44 ✔ 1m early | 08:45 ✔ 1m early |
| PPD Pontypridd | 2 | 08:54 ✔ 4m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| PPD Pontypridd | ??? | 09:16 | |
| TRH Trehafod | ??? | 09:21 | 09:21 |
| POR Porth | ??? | 09:28 | 09:28 |
| DMG Dinas (Rhondda) | ??? | 09:30 | 09:30 |
| TNP Tonypandy | ??? | 09:31 | 09:31 |
| LLY Llwynypia | ??? | 09:35 | 09:35 |
| YSR Ystrad Rhondda | ??? | 09:39 | 09:39 |
| TPN Ton Pentre | ??? | 09:44 | 09:44 |
| TRY Treorchy | ??? | 09:49 | 09:49 |
| YNW Ynyswen | ??? | 09:54 | 09:54 |
| TRB Treherbert | ??? | 10:00 |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| TRB Treherbert | ??? | 10:25 | |
| YNW Ynyswen | ??? | 10:28 | 10:28 |
| TRY Treorchy | ??? | 10:30 | 10:30 |
| TPN Ton Pentre | ??? | 10:34 | 10:34 |
| YSR Ystrad Rhondda | ??? | 10:37 | 10:37 |
| LLY Llwynypia | ??? | 10:41 | 10:41 |
| TNP Tonypandy | ??? | 10:45 | 10:45 |
| DMG Dinas (Rhondda) | ??? | 10:46 | 10:46 |
| POR Porth | ??? | 10:53 | 10:53 |
| TRH Trehafod | ??? | 10:55 | 10:55 |
| PPD Pontypridd | ??? | 11:09 |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| PPD Pontypridd | 2 | 11:24 ✔ 1m early | |
| TRF Trefforest | 1 | 11:26 ✔ 1m early | 11:27 ✔ On Time |
| TAF Taffs Well | 1 | 11:34 ✔ 1m early | 11:34 ✔ On Time |
| RDR Radyr | 1 | 11:38 ✔ 1m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| RDR Radyr | 3 | 12:02 ✔ On Time | |
| DCT Danescourt | 2 | 12:06 ✔ 1m early | 12:06 ✔ 1m early |
| FRW Fairwater | 2 | 12:08 ✔ 1m early | 12:08 ✔ 1m early |
| WNG Waun-Gron Park | 2 | 12:10 ✔ 1m early | 12:10 ✔ 1m early |
| NNP Ninian Park | 1 | 12:13 ✔ 1m early | 12:13 ✔ On Time |
| CDF Cardiff Central | 6 | 12:20 ✔ 3m early | 12:21 ⚠ 8m late |
| CDQ Cardiff Queen Street | 4 | 12:25 ⚠ 6m late | 12:26 ⚠ 6m late |
| HLL Heath Low Level | ??? | 12:31 ⚠ 6m late | 12:31 ⚠ 6m late |
| TGS Ty Glas | ??? | 12:33 ⚠ 6m late | 12:33 ⚠ 7m late |
| BCG Birchgrove | ??? | 12:35 ⚠ 6m late | 12:35 ⚠ 6m late |
| RHI Rhiwbina | ??? | 12:37 ⚠ 6m late | 12:37 ⚠ 6m late |
| WHT Whitchurch (Cardiff) | ??? | 12:38 ⚠ 6m late | 12:38 ⚠ 7m late |
| COY Coryton | ??? | 12:43 ⚠ 4m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| COY Coryton | ??? | 12:45 ✔ On Time | |
| WHT Whitchurch (Cardiff) | ??? | 12:46 ✔ On Time | 12:46 ✔ On Time |
| RHI Rhiwbina | ??? | 12:48 ✔ 1m early | 12:48 ✔ On Time |
| BCG Birchgrove | ??? | 12:50 ✔ 1m early | 12:50 ✔ On Time |
| TGS Ty Glas | ??? | 12:51 ✔ On Time | 12:51 ✔ On Time |
| HLL Heath Low Level | ??? | 12:54 ✔ 1m early | 12:54 ✔ On Time |
| CDQ Cardiff Queen Street | 3 | 13:01 ✔ On Time |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| CDQ Cardiff Queen Street | 1 | 13:12 ✔ 1m early | |
| CDB Cardiff Bay | 1 | 13:16 ✔ 2m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| CDB Cardiff Bay | 1 | 13:18 ✔ 1m early | |
| CDQ Cardiff Queen Street | 1 | 13:22 ✔ 2m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| CDQ Cardiff Queen Street | 3 | 13:36 ✔ On Time | |
| CDF Cardiff Central | 8 | 13:40 ✔ 2m early | 13:41 ✔ On Time |
| GTN Grangetown (Cardiff) | 2 | 13:45 ✔ 1m early | 13:45 ✔ On Time |
| CGN Cogan | 2 | 13:48 ✔ On Time | 13:48 ⚠ 1m late |
| EBK Eastbrook | 2 | 13:51 ✔ On Time | 13:51 ⚠ 1m late |
| DNS Dinas Powys | 2 | 13:53 ⚠ 1m late | 13:53 ⚠ 1m late |
| CAD Cadoxton | 2 | 13:57 ✔ On Time | 13:57 ⚠ 1m late |
| BYD Barry Docks | 2 | 14:00 ✔ On Time | 14:00 ⚠ 3m late |
| BRY Barry | 2 | 14:05 ⚠ 1m late | 14:05 ⚠ 2m late |
| RIA Rhoose Cardiff International Airport | 2 | 14:11 ⚠ 1m late | 14:12 ⚠ 1m late |
| LWM Llantwit Major | 2 | 14:21 ⚠ 2m late | 14:22 ⚠ 2m late |
| BGN Bridgend | 1A 1 | 14:36 ⚠ 1m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| BGN Bridgend | 1 | 14:44 ⚠ 7m late | |
| WMI Wildmill | ??? | 14:46 ⚠ 6m late | 14:46 ⚠ 6m late |
| SRR Sarn | ??? | 14:49 ⚠ 6m late | 14:49 ⚠ 6m late |
| TDU Tondu | ??? | 14:52 ⚠ 26m late | 14:53 ⚠ 30m late |
| GMG Garth (Mid Glamorgan) | ??? | 15:00 ⚠ 30m late | 15:00 ⚠ 30m late |
| MEW Maesteg (Ewenny Road) | ??? | 15:03 ⚠ 30m late | 15:03 ⚠ 30m late |
| MST Maesteg | ??? | 15:07 ⚠ 29m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| MST Maesteg | ??? | 15:15 ⚠ 24m late | |
| MEW Maesteg (Ewenny Road) | ??? | 15:17 ⚠ 24m late | 15:17 ⚠ 24m late |
| GMG Garth (Mid Glamorgan) | ??? | 15:20 ⚠ 23m late | 15:20 ⚠ 24m late |
| TDU Tondu | 1 | 15:28 ⚠ 26m late | 15:28 ⚠ 27m late |
| SRR Sarn | 1 | 15:31 ⚠ 26m late | 15:31 ⚠ 27m late |
| WMI Wildmill | 1 | 15:34 ⚠ 26m late | 15:34 ⚠ 28m late |
| BGN Bridgend | 2 | 15:38 ⚠ 27m late | 15:38 ⚠ 28m late |
| PCD Pencoed | 2 | 15:43 ⚠ 27m late | 15:43 ⚠ 28m late |
| LLR Llanharan | 1 | 15:47 ⚠ 28m late | 15:47 ⚠ 29m late |
| PYC Pontyclun | 2 | 15:51 ⚠ 29m late | 15:51 ⚠ 30m late |
| CDF Cardiff Central | 2 1 | 16:05 ⚠ 28m late | 16:08 ⚠ 28m late |
| NWP Newport (South Wales) | 3 | 16:22 ⚠ 25m late | 16:23 ⚠ 25m late |
| STJ Severn Tunnel Junction | 2 | 16:33 ⚠ 24m late | 16:33 ⚠ 25m late |
| CDT Caldicot | 2 | 16:35 ⚠ 25m late | 16:36 ⚠ 24m late |
| CPW Chepstow | 2 | 16:44 ⚠ 24m late | 16:44 ⚠ 25m late |
| LYD Lydney | 1 | 16:52 ⚠ 24m late | 16:53 ⚠ 24m late |
| GCR Gloucester | 4 3 | 17:14 ⚠ 25m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| GCR Gloucester | 2 1 | 17:40 ✔ On Time | |
| CDU Cam & Dursley | 2 | 17:53 ⚠ 1m late | 17:53 ⚠ 2m late |
| YAE Yate | 2 | 18:06 ⚠ 3m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| YAE Yate | 1 | 18:31 ⚠ 2m late | |
| GCR Gloucester | 2 | 19:03 ✔ 8m early |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| GCR Gloucester | 1 2 | 19:17 ⚠ 6m late | |
| SHU Stonehouse | 1 | 19:27 ⚠ 10m late | 19:28 ⚠ 10m late |
| STD Stroud (Gloucs) | 1 | 19:32 ⚠ 9m late | 19:33 ⚠ 10m late |
| KEM Kemble | 1 | 19:48 ⚠ 8m late | 19:49 ⚠ 9m late |
| SWI Swindon (Wilts) | 1 | 20:02 ⚠ 8m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| SWI Swindon (Wilts) | 2 | 20:13 ⚠ 8m late | |
| CPM Chippenham | 1 | 20:28 ⚠ 32m late | 20:29 ⚠ 32m late |
| MKM Melksham | 1 | 20:38 ⚠ 32m late | 20:39 ⚠ 31m late |
| TRO Trowbridge | 2 | 20:48 ⚠ 31m late | 20:49 ⚠ 31m late |
| WSB Westbury (Wilts) | 2 | 20:58 ⚠ 28m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| WSB Westbury (Wilts) | 3 | 21:45 ⚠ 3m late | |
| TRO Trowbridge | ??? | 21:51 ✔ 1m early | 21:52 ✔ On Time |
| BOA Bradford-on-Avon | ??? | 21:57 ⚠ 6m late | 21:58 ⚠ 7m late |
| AVF Avoncliff | 1 | 22:01 ⚠ 6m late | 22:01 ⚠ 7m late |
| FFD Freshford | 1 | 22:03 ⚠ 7m late | 22:04 ⚠ 7m late |
| BTH Bath Spa | 1 | 22:14 ⚠ 5m late |
| Station | Platform | Arrival | Departure |
|---|---|---|---|
| BTH Bath Spa | 2 | 22:53 ✔ 1m early | |
| CPM Chippenham | 2 | 23:05 ✔ 2m early | 23:06 ✔ 1m early |
| SWI Swindon (Wilts) | 3 | 23:19 ✔ On Time | 23:20 ✔ On Time |
| DID Didcot Parkway | 2 | 23:36 ✔ 1m early | 23:37 ✔ 1m early |
| RDG Reading | 14 | 23:52 ✔ 1429m early |