Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Bradford | 2024/25 – 2026/27 | 38 | 6 | 4 |
| Rotherham | 2026/27 | 1 | 0 | 0 |
| Gillingham | 2022/23 – 2024/25 | 79 | 8 | 2 |
| Mansfield | 2020/21 – 2022/23 | 92 | 20 | 3 |
| Charlton | 2016/17 – 2020/21 | 54 | 3 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 19 Jan 2021 | Charlton | Mansfield Town | Free |
| 15 Oct 2020 | Charlton | Mansfield Town | Loan |
| 5 Mar 2018 | Chelmsford City | Charlton | — |
| 2 Feb 2018 | Charlton | Chelmsford City | Loan |
| 1 Jan 2025 | Gillingham | Bradford | Free Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Bradford | 2 | 2 | 152 | 0 | 0 | 1 | 0 | 6.32 |
| 2026/27 | EFL Trophy | Bradford | 1 | 1 | 90 | 0 | 0 | 1 | 0 | 6.05 |
| 2026/27 | League One | Bradford | 1 | 0 | 23 | 0 | 0 | 0 | 0 | 3.45 |
| 2026/27 | EFL Trophy | Rotherham | 1 | 1 | 67 | 0 | 0 | 0 | 0 | 6.35 |
| 2025/26 | League Cup | Bradford | 2 | 2 | 136 | 1 | 1 | 1 | 0 | 7.15 |
| 2025/26 | EFL Trophy | Bradford | 4 | 4 | 301 | 1 | 0 | 1 | 0 | 6.60 |
| 2025/26 | League One | Bradford | 14 | 6 | 650 | 0 | 2 | 1 | 0 | 6.65 |
| 2024/25 | League Two | Bradford | 13 | 7 | 571 | 4 | 1 | 2 | 0 | 7.01 |
| 2024/25 | League Two | Gillingham | 15 | 8 | 741 | 2 | 1 | 3 | 0 | 7.01 |
| 2024/25 | FA Cup | Bradford | 1 | 0 | 30 | — | 0 | 0 | 0 | 6.30 |
| 2024/25 | League Cup | Gillingham | 1 | 0 | 30 | 0 | 0 | 0 | 0 | 6.30 |
| 2024/25 | EFL Trophy | Gillingham | 1 | 0 | 30 | 0 | 0 | 0 | 0 | 6.30 |
| 2023/24 | League Two | Gillingham | 36 | 18 | 1612 | 3 | 1 | 6 | 0 | 6.72 |
| 2023/24 | League Cup | Gillingham | 1 | 1 | 71 | 0 | — | 1 | 0 | 6.30 |
| 2023/24 | EFL Trophy | Gillingham | 1 | 1 | 61 | 0 | — | 0 | 0 | 6.70 |
| 2023/24 | FA Cup | Gillingham | 2 | 1 | 89 | 0 | — | 0 | 0 | — |
| 2022/23 | League Two | Gillingham | 22 | 13 | 1211 | 3 | — | 3 | 0 | 6.67 |
| 2022/23 | League Two | Mansfield | 25 | 19 | 1808 | 5 | — | 3 | 0 | 6.67 |
| 2022/23 | League Cup | Mansfield | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.70 |
| 2022/23 | EFL Trophy | Mansfield | 4 | 0 | 110 | 1 | — | 0 | 0 | 6.60 |
| 2022/23 | FA Cup | Mansfield | 2 | 2 | 180 | 1 | — | 0 | 0 | — |
| 2021/22 | League Two | Mansfield | 34 | 21 | 1985 | 4 | 1 | 9 | 1 | 6.77 |
| 2021/22 | League Cup | Mansfield | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.30 |
| 2021/22 | FA Cup | Mansfield | 3 | 2 | 203 | 2 | — | 0 | 0 | — |
| 2021/22 | EFL Trophy | Mansfield | 2 | 1 | 86 | 1 | — | 0 | 0 | — |
| 2020/21 | League One | Charlton | 2 | 1 | 65 | 0 | — | 0 | 0 | 6.25 |
| 2020/21 | FA Cup | Mansfield | 3 | 3 | 330 | 1 | — | 0 | 0 | 6.90 |
| 2020/21 | League Cup | Charlton | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.50 |
| 2020/21 | EFL Trophy | Charlton | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.90 |
| 2020/21 | League Two | Mansfield | 17 | 17 | 1518 | 5 | 2 | 4 | 0 | 7.05 |
| 2019/20 | Championship | Charlton | 10 | 4 | 451 | 1 | — | 3 | 0 | 6.74 |
| 2019/20 | League Cup | Charlton | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.70 |
| 2018/19 | League One | Charlton | 27 | 11 | 1156 | 0 | — | 4 | 0 | — |
| 2018/19 | FA Cup | Charlton | 3 | 3 | 270 | 0 | — | 1 | 0 | 7.00 |
| 2018/19 | EFL Trophy | Charlton | 2 | 2 | 180 | 1 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Charlton | 4 | 0 | 109 | 1 | — | 0 | 0 | — |
| 2017/18 | League One | Charlton | 1 | 0 | 16 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Muscle Injury | 9 Nov 2019 | 6 Feb 2020 | 89 |
| Inactive | 5 Apr 2025 | 15 Apr 2025 | 10 |
| Muscle Injury | 31 Aug 2019 | 3 Oct 2019 | 33 |
Trophies
| Competition | Season | Place |
|---|---|---|
| Nottinghamshire Saturday Senior Cup (England) | 2021/2022 | 2nd Place |
