Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Walsall | 2026/27 | 12 | 2 | 0 |
| Wales U21 | 2023 – 2025 | 1 | 0 | — |
| Crewe | 2024/25 – 2025/26 | 72 | 3 | 0 |
| Bristol Rovers | 2021/22 – 2024/25 | 63 | 3 | 1 |
| Morecambe | 2023/24 | 17 | 2 | 1 |
| Blackburn Rovers U18 | 2017 – 2021 | 43 | 4 | — |
| Blackburn Rovers U23 | 2020 | 3 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 2 Aug 2024 | Bristol Rovers | Crewe | — |
| 3 Jan 2024 | Morecambe | Bristol Rovers | — |
| 31 Aug 2023 | Bristol Rovers | Morecambe | Loan |
| 29 Jun 2026 | Crewe | Walsall | Free agent |
| 30 Jun 2026 | Crewe | Walsall | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Walsall | 2 | 1 | 130 | 0 | 0 | 0 | 0 | 7.10 |
| 2026/27 | League Two | Walsall | 10 | 10 | 900 | 2 | 0 | 3 | 0 | 7.24 |
| 2025/26 | League Cup | Crewe | 1 | 1 | 62 | 0 | 0 | 0 | 0 | 6.00 |
| 2025/26 | EFL Trophy | Crewe | 2 | 1 | 77 | 0 | 0 | 0 | 0 | 6.95 |
| 2025/26 | League Two | Crewe | 41 | 34 | 3158 | 3 | 0 | 7 | 0 | 6.89 |
| 2024/25 | League Two | Crewe | 21 | 14 | 1201 | 0 | 0 | 3 | 0 | 6.86 |
| 2024/25 | FA Cup | Crewe | 3 | 3 | 270 | — | 0 | 2 | 0 | 6.43 |
| 2024/25 | League Cup | Crewe | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.20 |
| 2024/25 | EFL Trophy | Crewe | 3 | 3 | 270 | 0 | 0 | 2 | 0 | 6.43 |
| 2023/24 | League Two | Morecambe | 13 | 13 | 1014 | 2 | — | 4 | 1 | 6.61 |
| 2023/24 | EFL Trophy | Morecambe | 3 | 2 | 162 | 0 | 1 | 0 | 0 | 6.60 |
| 2023/24 | FA Cup | Morecambe | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2023/24 | League Cup | Bristol Rovers | 1 | 0 | 29 | 0 | — | 0 | 0 | 6.20 |
| 2023 | UEFA U21 Championship - Qualification | Wales U21 | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2023/24 | League One | Bristol Rovers | 1 | 1 | 61 | 0 | — | 0 | 0 | 6.67 |
| 2022/23 | League One | Bristol Rovers | 30 | 24 | 2146 | 1 | — | 4 | 0 | 6.69 |
| 2022/23 | League Cup | Bristol Rovers | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.70 |
| 2022/23 | EFL Trophy | Bristol Rovers | 3 | 3 | 270 | 1 | — | 0 | 0 | 6.60 |
| 2022/23 | FA Cup | Bristol Rovers | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.90 |
| 2021/22 | League Two | Bristol Rovers | 24 | 24 | 2160 | 1 | — | 3 | 0 | 6.98 |
| 2021/22 | FA Cup | Bristol Rovers | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020 | U18 Premier League - South | Blackburn Rovers U18 | 4 | 3 | 250 | 0 | — | 0 | 0 | — |
| 2020 | Premier League 2 Division One | Blackburn Rovers U23 | 3 | 0 | 42 | 0 | — | 1 | 0 | — |
| 2019 | U18 Premier League | Blackburn Rovers U18 | 8 | 8 | 603 | 0 | — | 4 | 0 | — |
| 2019 | FA Youth Cup | Blackburn Rovers U18 | 1 | 0 | 11 | 0 | — | 1 | 0 | — |
| 2018 | U18 Premier League | Blackburn Rovers U18 | 19 | 15 | 1378 | 4 | — | 5 | 0 | — |
| 2018 | FA Youth Cup | Blackburn Rovers U18 | 1 | 1 | 46 | 0 | — | 0 | 0 | — |
| 2017 | U18 Premier League | Blackburn Rovers U18 | 9 | 8 | 744 | 0 | — | 3 | 0 | — |
| 2017 | FA Youth Cup | Blackburn Rovers U18 | 1 | 0 | 28 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Hamstring Injury | 13 Feb 2025 | 24 Apr 2025 | 70 |
Trophies
No trophies recorded.
