Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Wimbledon | 2018/19 – 2026/27 | 103 | 5 | 11 |
| Motherwell | 2024/25 | 17 | 0 | 0 |
| Oxford | 2021/22 – 2023/24 | 58 | 4 | 5 |
| Burton | 2023/24 | 42 | 3 | 2 |
| Cambridge | 2022/23 | 10 | 0 | — |
| Birmingham | 2017/18 – 2020/21 | 5 | 0 | 3 |
| Portsmouth | 2019/20 | 18 | 1 | 2 |
| Stevenage | 2018/19 | 25 | 3 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 2 Jul 2024 | Burton Albion | Motherwell | — |
| 14 Jul 2023 | Oxford United | Burton Albion | Loan |
| 1 Jul 2023 | Cambridge United | Oxford United | — |
| 6 Jan 2023 | Oxford United | Cambridge United | Loan |
| 22 Jul 2021 | Birmingham | Oxford United | Free |
| 1 Jan 2021 | AFC Wimbledon | Birmingham | — |
| 25 Sept 2020 | Birmingham | AFC Wimbledon | Loan |
| 1 Aug 2020 | Portsmouth | Birmingham | — |
| 1 Jan 2020 | Birmingham | Portsmouth | Loan |
| 1 Jul 2019 | AFC Wimbledon | Birmingham | — |
| 16 Jan 2019 | Birmingham | AFC Wimbledon | Loan |
| 30 Aug 2018 | Birmingham | Stevenage | Loan |
| 1 Jul 2025 | Motherwell | AFC Wimbledon | Free Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Wimbledon | 2 | 2 | 190 | 0 | 0 | 0 | 0 | 6.85 |
| 2026/27 | EFL Trophy | Wimbledon | 2 | 2 | 180 | 0 | 0 | 1 | 0 | 6.62 |
| 2026/27 | League One | Wimbledon | 11 | 11 | 990 | 0 | 0 | 2 | 0 | 6.84 |
| 2025/26 | League Cup | Wimbledon | 2 | 0 | 48 | 0 | 0 | 0 | 0 | 6.70 |
| 2025/26 | EFL Trophy | Wimbledon | 3 | 3 | 360 | 0 | 0 | 0 | 0 | 7.53 |
| 2025/26 | League One | Wimbledon | 46 | 46 | 4107 | 1 | 8 | 7 | 0 | 6.93 |
| 2024/25 | Premiership | Motherwell | 14 | 11 | 909 | 0 | 0 | 2 | 0 | 6.94 |
| 2024/25 | League Cup | Motherwell | 3 | 2 | 136 | 0 | — | 1 | 0 | — |
| 2023/24 | League One | Burton | 36 | 28 | 2674 | 3 | 2 | 5 | 0 | 6.75 |
| 2023/24 | League Cup | Burton | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.30 |
| 2023/24 | EFL Trophy | Burton | 4 | 4 | 360 | 0 | — | 1 | 0 | 7.03 |
| 2023/24 | FA Cup | Burton | 1 | 0 | 24 | 0 | — | 0 | 0 | — |
| 2022/23 | League One | Cambridge | 10 | 3 | 328 | 0 | — | 3 | 0 | 6.53 |
| 2022/23 | League One | Oxford | 13 | 8 | 742 | 1 | — | 5 | 0 | 6.53 |
| 2022/23 | League Cup | Oxford | 2 | 2 | 136 | 0 | — | 0 | 0 | 6.10 |
| 2022/23 | EFL Trophy | Oxford | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.20 |
| 2022/23 | FA Cup | Oxford | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | League One | Oxford | 36 | 35 | 3121 | 2 | 5 | 7 | 0 | 6.90 |
| 2021/22 | EFL Trophy | Oxford | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | League Cup | Oxford | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.90 |
| 2021/22 | FA Cup | Oxford | 2 | 1 | 139 | 1 | — | 0 | 0 | — |
| 2020/21 | League One | Wimbledon | 16 | 15 | 1353 | 1 | 3 | 1 | 0 | 6.84 |
| 2020/21 | FA Cup | Wimbledon | 2 | 1 | 105 | 0 | — | 0 | 0 | 6.70 |
| 2020/21 | EFL Trophy | Wimbledon | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.90 |
| 2019/20 | League One | Portsmouth | 13 | 11 | 996 | 1 | 1 | 2 | 0 | 7.24 |
| 2019/20 | Championship | Birmingham | 4 | 3 | 224 | 0 | 2 | 1 | 0 | 6.77 |
| 2019/20 | EFL Trophy | Portsmouth | 2 | 1 | 117 | 0 | 1 | 0 | 0 | 7.15 |
| 2019/20 | FA Cup | Portsmouth | 3 | 3 | 261 | 0 | — | 0 | 0 | 6.90 |
| 2019/20 | League Cup | Birmingham | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.80 |
| 2018/19 | League One | Wimbledon | 18 | 18 | 1610 | 3 | — | 7 | 0 | — |
| 2018/19 | League Two | Stevenage | 23 | 22 | 1949 | 3 | — | 4 | 0 | — |
| 2018/19 | EFL Trophy | Stevenage | 1 | 1 | 53 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Stevenage | 1 | 1 | 81 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
