Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Exeter | 2026/27 | 14 | 1 | 1 |
| Shrewsbury | 2022/23 – 2025/26 | 221 | 12 | 6 |
| Cheltenham | 2021/22 – 2022/23 | 52 | 3 | 1 |
| Wolves U21 | 2018 – 2020 | 5 | 1 | — |
| Wolves | 2019/20 – 2020/21 | 5 | 0 | 1 |
| Wolves U23 | 2019 | 17 | 2 | — |
| Wolves U18 | 2016 – 2018 | 58 | 7 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jun 2023 | Cheltenham | Wolves U21 | — |
| 6 Aug 2021 | Wolves | Cheltenham | Loan |
| 16 Jul 2026 | Shrewsbury | Exeter City | Free agent |
| 15 Jul 2026 | Shrewsbury | Exeter City | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Exeter | 1 | 1 | 65 | 0 | 0 | 0 | 0 | 6.90 |
| 2026/27 | EFL Trophy | Exeter | 2 | 2 | 241 | 1 | 1 | 0 | 0 | 7.07 |
| 2026/27 | League Two | Exeter | 11 | 6 | 520 | 0 | 0 | 2 | 0 | 6.58 |
| 2025/26 | League Cup | Shrewsbury | 1 | 1 | 85 | 0 | 0 | 0 | 0 | 6.30 |
| 2025/26 | EFL Trophy | Shrewsbury | 3 | 2 | 97 | 0 | 0 | 1 | 0 | 6.30 |
| 2025/26 | FA Cup | Shrewsbury | 3 | 1 | 193 | 0 | 1 | 0 | 0 | 6.53 |
| 2025/26 | League Two | Shrewsbury | 42 | 34 | 3120 | 2 | 1 | 11 | 0 | 6.76 |
| 2024/25 | League One | Shrewsbury | 44 | 36 | 1736 | 3 | 1 | 4 | 0 | 6.68 |
| 2024/25 | FA Cup | Shrewsbury | 39 | 29 | 2230 | 2 | 1 | 4 | 0 | 6.74 |
| 2024/25 | League Cup | Shrewsbury | 2 | 1 | 90 | — | 0 | 0 | 0 | 7.00 |
| 2024/25 | EFL Trophy | Shrewsbury | 2 | 1 | 138 | 0 | 0 | 2 | 0 | 6.60 |
| 2023/24 | League One | Shrewsbury | 41 | 38 | 2807 | 2 | 1 | 5 | 0 | 6.69 |
| 2023/24 | League Cup | Shrewsbury | 1 | 1 | 90 | 1 | — | 0 | 0 | 8.30 |
| 2023/24 | EFL Trophy | Shrewsbury | 2 | 2 | 92 | 0 | — | 0 | 0 | 7.00 |
| 2023/24 | FA Cup | Shrewsbury | 2 | 2 | 177 | 0 | — | 0 | 0 | 6.30 |
| 2022/23 | League One | Cheltenham | 34 | 24 | 2218 | 2 | 1 | 4 | 0 | 6.74 |
| 2022/23 | League One | Shrewsbury | 39 | 29 | 2230 | 2 | 1 | 4 | 0 | 6.74 |
| 2022/23 | EFL Trophy | Cheltenham | 4 | 2 | 261 | 0 | — | 1 | 0 | 6.45 |
| 2021/22 | League One | Cheltenham | 10 | 5 | 476 | 1 | — | 0 | 0 | 6.66 |
| 2021/22 | EFL Trophy | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | League Cup | Cheltenham | 3 | 3 | 246 | 0 | — | 0 | 0 | 6.83 |
| 2020 | EFL Trophy | Wolves U21 | 3 | 3 | 270 | 1 | — | 0 | 0 | 7.30 |
| 2019 | Premier League 2 | Wolves U23 | 15 | 14 | 1233 | 2 | — | 2 | 0 | — |
| 2019/20 | League Cup | Wolves | 2 | 1 | 138 | 0 | 1 | 1 | 0 | 6.75 |
| 2019 | EFL Trophy | Wolves U21 | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2019/20 | UEFA Europa League | Wolves | 1 | 0 | 20 | 0 | — | 0 | 0 | 6.90 |
| 2019 | Premier League International Cup | Wolves U23 | 2 | 1 | 113 | 0 | — | 0 | 0 | — |
| 2019/20 | Premier League Asia Trophy | Wolves | 2 | 0 | 55 | 0 | — | 0 | 0 | — |
| 2018 | U18 Premier League | Wolves U18 | 14 | 14 | 1235 | 2 | — | 2 | 0 | — |
| 2018 | FA Youth Cup | Wolves U18 | 1 | 1 | 37 | 0 | — | 0 | 0 | — |
| 2017 | U18 Premier League | Wolves U18 | 16 | 16 | 1320 | 4 | — | 2 | 0 | — |
| 2017 | FA Youth Cup | Wolves U18 | 1 | 1 | 83 | 0 | — | 0 | 0 | — |
| 2016 | U18 Premier League | Wolves U18 | 26 | 25 | 2228 | 1 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Inactive | 15 Feb 2025 | 27 Feb 2025 | 12 |
Trophies
| Competition | Season | Place |
|---|---|---|
| Premier League Cup (England) | 2021/2022 | 2nd Place |
| Premier League Asia Trophy (World) | 2019 | Winner |
