Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Bradford | 2025/26 – 2026/27 | 60 | 3 | 8 |
| Wimbledon | 2023/24 – 2024/25 | 99 | 7 | 9 |
| Sutton Utd | 2022/23 | 35 | 2 | — |
| Luton | 2017/18 – 2021/22 | 4 | 0 | — |
| Yeovil Town | 2020/21 – 2021/22 | 42 | 6 | — |
| Woking | 2019/20 | 8 | 0 | — |
| Solihull Moors | 2019/20 | 11 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2023 | Luton | AFC Wimbledon | Free |
| 1 Jun 2023 | Sutton Utd | Luton | — |
| 9 Jul 2022 | Luton | Sutton Utd | Loan |
| 1 Jul 2022 | Yeovil Town | Luton | — |
| 18 Mar 2022 | Luton | Yeovil Town | Loan |
| 1 Jul 2021 | Yeovil Town | Luton | — |
| 1 Dec 2020 | Luton | Yeovil Town | Loan |
| 1 Jul 2020 | Woking | Luton | — |
| 17 Jan 2020 | Luton | Woking | Loan |
| 1 Jul 2025 | AFC Wimbledon | Bradford | Free Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Bradford | 2 | 1 | 118 | 0 | 0 | 0 | 0 | 7.60 |
| 2026/27 | League One | Bradford | 7 | 7 | 602 | 0 | 0 | 0 | 0 | 7.19 |
| 2025/26 | League Cup | Bradford | 3 | 1 | 139 | 0 | 0 | 0 | 0 | 6.53 |
| 2025/26 | EFL Trophy | Bradford | 3 | 0 | 110 | 0 | 1 | 1 | 0 | 6.83 |
| 2025/26 | League One | Bradford | 45 | 41 | 3555 | 3 | 7 | 6 | 0 | 6.90 |
| 2024/25 | League Two | Wimbledon | 49 | 49 | 4335 | 5 | 5 | 6 | 0 | 6.92 |
| 2024/25 | League Cup | Wimbledon | 2 | 0 | 32 | 0 | 0 | 0 | 0 | 6.70 |
| 2024/25 | EFL Trophy | Wimbledon | 3 | 0 | 65 | 0 | 0 | 0 | 0 | 6.77 |
| 2024/25 | FA Cup | Wimbledon | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2023/24 | League Two | Wimbledon | 38 | 26 | 2398 | 1 | 3 | 3 | 0 | 6.69 |
| 2023/24 | League Cup | Wimbledon | 2 | 1 | 104 | 0 | — | 0 | 0 | 6.70 |
| 2023/24 | EFL Trophy | Wimbledon | 2 | 1 | 102 | 0 | 1 | 0 | 0 | 6.75 |
| 2023/24 | FA Cup | Wimbledon | 1 | 1 | 90 | 1 | — | 0 | 0 | 8.20 |
| 2022/23 | League Two | Sutton Utd | 30 | 23 | 2103 | 2 | — | 0 | 0 | 6.54 |
| 2022/23 | League Cup | Sutton Utd | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.30 |
| 2022/23 | EFL Trophy | Sutton Utd | 4 | 2 | 217 | 0 | — | 0 | 0 | 6.00 |
| 2021/22 | National League | Yeovil Town | 11 | 6 | 610 | 1 | — | 0 | 0 | — |
| 2020/21 | National League | Yeovil Town | 31 | 27 | 2287 | 5 | — | 7 | 0 | — |
| 2019/20 | National League | Woking | 8 | 3 | 363 | 0 | — | 0 | 0 | — |
| 2019/20 | National League | Solihull Moors | 10 | 0 | 77 | 0 | — | 1 | 0 | — |
| 2019/20 | Challenge Cup | Solihull Moors | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2019/20 | League Cup | Luton | 1 | 0 | 44 | 0 | — | 0 | 0 | 6.30 |
| 2018/19 | EFL Trophy | Luton | 3 | 0 | 7 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2017/2018 | 2nd Place |
| League One (England) | 2018/2019 | Winner |
| Somerset Premier Cup (England) | 2021/2022 | Winner |
