Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Shrewsbury | 2022/23 – 2026/27 | 176 | 20 | 12 |
| Cheltenham | 2017/18 – 2023/24 | 123 | 9 | 4 |
| Grimsby | 2022/23 | 21 | 5 | 4 |
| Port Vale | 2021/22 | 11 | 2 | — |
| Hereford | 2018/19 | 13 | 3 | — |
| Cheltenham Town U18 | 2017 | 1 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 14 Jun 2024 | Cheltenham | Shrewsbury | Free |
| 1 Jul 2023 | Grimsby | Cheltenham | — |
| 31 Jan 2023 | Cheltenham | Grimsby | Loan |
| 13 Jan 2022 | Port Vale | Cheltenham | — |
| 30 Aug 2021 | Cheltenham | Port Vale | Loan |
| 18 Feb 2019 | Hereford | Cheltenham | — |
| 18 Jan 2019 | Cheltenham | Hereford | Loan |
| 2 Jan 2019 | Hereford | Cheltenham | — |
| 9 Oct 2018 | Cheltenham | Hereford | Loan |
| 15 Aug 2017 | Gloucester City | Cheltenham | — |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Shrewsbury | 2 | 1 | 107 | 0 | 0 | 1 | 0 | 6.40 |
| 2026/27 | EFL Trophy | Shrewsbury | 1 | 1 | 45 | 0 | 0 | 0 | 0 | 6.67 |
| 2026/27 | League Two | Shrewsbury | 12 | 9 | 811 | 4 | 1 | 4 | 0 | 6.88 |
| 2025/26 | League Cup | Shrewsbury | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.00 |
| 2025/26 | EFL Trophy | Shrewsbury | 1 | 0 | 25 | 0 | 0 | 0 | 0 | 6.90 |
| 2025/26 | FA Cup | Shrewsbury | 2 | 1 | 106 | 0 | 0 | 0 | 0 | 6.80 |
| 2025/26 | League Two | Shrewsbury | 43 | 25 | 2430 | 4 | 1 | 3 | 0 | 6.54 |
| 2024/25 | League One | Shrewsbury | 45 | 41 | 3017 | 5 | 3 | 6 | 0 | 6.76 |
| 2024/25 | FA Cup | Shrewsbury | 21 | 20 | 1472 | 5 | 4 | 2 | 0 | 6.97 |
| 2024/25 | League Cup | Shrewsbury | 2 | 0 | 30 | — | 0 | 0 | 0 | 6.70 |
| 2024/25 | EFL Trophy | Shrewsbury | 2 | 2 | 180 | 0 | 0 | 1 | 0 | 7.00 |
| 2023/24 | League One | Cheltenham | 27 | 22 | 1928 | 2 | 3 | 2 | 0 | 6.91 |
| 2023/24 | League One | Shrewsbury | 28 | 24 | 1926 | 2 | 3 | 1 | 0 | 6.91 |
| 2023/24 | EFL Trophy | Cheltenham | 1 | 1 | 77 | 0 | — | 0 | 0 | 6.70 |
| 2023/24 | FA Cup | Cheltenham | 1 | 1 | 46 | 0 | — | 0 | 0 | — |
| 2022/23 | League One | Cheltenham | 13 | 6 | 558 | 0 | — | 1 | 0 | 6.58 |
| 2022/23 | League One | Shrewsbury | 16 | 11 | 571 | — | — | 1 | 0 | 6.58 |
| 2022/23 | League Two | Grimsby | 21 | 20 | 1472 | 5 | 4 | 2 | 0 | 6.97 |
| 2022/23 | League Cup | Cheltenham | 1 | 1 | 64 | 0 | — | 1 | 0 | 7.00 |
| 2022/23 | EFL Trophy | Cheltenham | 3 | 1 | 132 | 0 | — | 0 | 0 | 6.90 |
| 2022/23 | FA Cup | Cheltenham | 1 | 1 | 46 | 0 | — | 0 | 0 | — |
| 2021/22 | League Two | Port Vale | 7 | 1 | 200 | 0 | — | 1 | 0 | 6.63 |
| 2021/22 | EFL Trophy | Port Vale | 3 | 2 | 202 | 1 | — | 0 | 0 | 7.30 |
| 2021/22 | FA Cup | Port Vale | 1 | 0 | 9 | 1 | — | 0 | 0 | — |
| 2021/22 | League Cup | Cheltenham | 2 | 2 | 180 | 0 | 1 | 0 | 0 | 7.10 |
| 2021/22 | League One | Cheltenham | 4 | 0 | 108 | 0 | — | 1 | 0 | 6.56 |
| 2020/21 | League Two | Cheltenham | 32 | 18 | 1558 | 2 | — | 1 | 0 | 6.48 |
| 2020/21 | League Cup | Cheltenham | 1 | 0 | 1 | 0 | — | 0 | 0 | — |
| 2020/21 | FA Cup | Cheltenham | 3 | 3 | 230 | 1 | — | 0 | 0 | — |
| 2020/21 | EFL Trophy | Cheltenham | 4 | 2 | 224 | 1 | — | 0 | 0 | — |
| 2019/20 | League Two | Cheltenham | 13 | 3 | 465 | 0 | — | 0 | 0 | — |
| 2019/20 | EFL Trophy | Cheltenham | 3 | 3 | 265 | 1 | — | 0 | 0 | — |
| 2019/20 | FA Cup | Cheltenham | 1 | 0 | 10 | 0 | — | 1 | 0 | — |
| 2019/20 | League Cup | Cheltenham | 1 | 0 | 25 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Trophy | Hereford | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2018/19 | League Cup | Cheltenham | 2 | 1 | 104 | 0 | — | 0 | 0 | — |
| 2018/19 | League Two | Cheltenham | 2 | 1 | 94 | 0 | — | 0 | 0 | — |
| 2018/19 | National League N / S | Hereford | 12 | 12 | 966 | 2 | — | 0 | 0 | — |
| 2017/18 | League Two | Cheltenham | 7 | 3 | 275 | 2 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017 | FA Youth Cup | Cheltenham Town U18 | 1 | 1 | 79 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Groin Injury | 24 Aug 2025 | 5 Sept 2025 | 12 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2020/2021 | Winner |
