Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Doncaster | 2025/26 – 2026/27 | 60 | 6 | 2 |
| Wycombe | 2021/22 – 2024/25 | 117 | 17 | 10 |
| Stevenage | 2024/25 | 16 | 2 | 0 |
| Bristol Rovers | 2020/21 – 2021/22 | 49 | 9 | 2 |
| Gillingham | 2018/19 – 2019/20 | 84 | 16 | 2 |
| Bromley | 2016/17 – 2017/18 | 30 | 9 | — |
| Charlton | 2016/17 – 2017/18 | 15 | 0 | — |
| Colchester | 2017/18 | 20 | 2 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 30 Aug 2021 | Bristol Rovers | Wycombe | — |
| 9 Sept 2020 | Gillingham | Bristol Rovers | Free |
| 1 Jul 2018 | Charlton | Gillingham | Free |
| 2 Feb 2018 | Charlton | Bromley | Loan |
| 14 Jan 2018 | Colchester | Charlton | — |
| 31 Aug 2017 | Charlton | Colchester | Loan |
| 10 Mar 2017 | Bromley | Charlton | — |
| 20 Jan 2017 | Charlton | Bromley | Loan |
| 31 Jan 2025 | Wycombe | Stevenage | Loan |
| 30 May 2025 | Stevenage | Wycombe | Return from loan |
| 1 Jul 2025 | Wycombe | Doncaster | Free Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Doncaster | 2 | 0 | 51 | 0 | 0 | 0 | 0 | 6.50 |
| 2026/27 | EFL Trophy | Doncaster | 2 | 2 | 154 | 0 | 0 | 0 | 0 | 6.42 |
| 2026/27 | League One | Doncaster | 10 | 6 | 574 | 0 | 1 | 0 | 0 | 6.49 |
| 2025/26 | League Cup | Doncaster | 2 | 1 | 96 | 0 | 0 | 0 | 0 | 6.60 |
| 2025/26 | EFL Trophy | Doncaster | 6 | 3 | 238 | 1 | 0 | 0 | 0 | 6.74 |
| 2025/26 | FA Cup | Doncaster | 2 | 1 | 77 | 0 | 0 | 0 | 0 | 6.50 |
| 2025/26 | League One | Doncaster | 36 | 20 | 1975 | 5 | 1 | 4 | 0 | 6.47 |
| 2024/25 | League One | Stevenage | 16 | 12 | 1040 | 2 | 0 | 0 | 0 | 6.49 |
| 2024/25 | League One | Wycombe | 16 | 14 | 974 | 2 | 0 | 0 | 0 | 6.49 |
| 2024/25 | FA Cup | Wycombe | 1 | 1 | 67 | — | 0 | 0 | 0 | 6.00 |
| 2024/25 | EFL Trophy | Wycombe | 2 | 2 | 140 | 1 | 0 | 0 | 0 | 7.00 |
| 2023/24 | League One | Wycombe | 16 | 14 | 910 | 2 | 2 | 1 | 0 | 6.81 |
| 2023/24 | FA Cup | Wycombe | 1 | 0 | 44 | 0 | — | 1 | 0 | — |
| 2023/24 | League Cup | Wycombe | 1 | 0 | 24 | 1 | 1 | 0 | 0 | 8.30 |
| 2023/24 | EFL Trophy | Wycombe | 1 | 0 | 16 | 0 | — | 0 | 0 | 6.30 |
| 2022/23 | League One | Wycombe | 34 | 27 | 1826 | 3 | 1 | 1 | 0 | 6.54 |
| 2022/23 | EFL Trophy | Wycombe | 1 | 1 | 68 | 0 | — | 0 | 0 | — |
| 2022/23 | FA Cup | Wycombe | 1 | 1 | 64 | 0 | — | 0 | 0 | — |
| 2021/22 | League One | Wycombe | 37 | 25 | 2407 | 6 | 6 | 3 | 0 | 6.60 |
| 2021/22 | League Two | Bristol Rovers | 1 | 0 | 44 | 0 | — | 0 | 0 | 6.90 |
| 2021/22 | FA Cup | Wycombe | 2 | 1 | 96 | 0 | — | 0 | 0 | — |
| 2021/22 | EFL Trophy | Wycombe | 3 | 3 | 182 | 1 | — | 0 | 0 | 6.70 |
| 2021/22 | League Cup | Wycombe | 1 | 1 | 90 | 1 | — | 0 | 0 | 7.20 |
| 2020/21 | League One | Bristol Rovers | 44 | 40 | 3444 | 7 | 2 | 3 | 0 | 6.64 |
| 2020/21 | FA Cup | Bristol Rovers | 2 | 2 | 180 | 1 | — | 0 | 0 | 6.20 |
| 2020/21 | EFL Trophy | Bristol Rovers | 2 | 2 | 164 | 1 | — | 0 | 0 | 6.80 |
| 2019/20 | League One | Gillingham | 35 | 31 | 2803 | 4 | 2 | 2 | 0 | 6.53 |
| 2019/20 | FA Cup | Gillingham | 4 | 4 | 390 | 2 | — | 1 | 0 | 5.90 |
| 2019/20 | League Cup | Gillingham | 1 | 1 | 85 | 1 | — | 0 | 0 | 6.20 |
| 2018/19 | League One | Gillingham | 39 | 35 | 2937 | 9 | — | 3 | 0 | — |
| 2018/19 | League Cup | Gillingham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | EFL Trophy | Gillingham | 1 | 0 | 24 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Gillingham | 3 | 2 | 139 | 0 | — | 0 | 0 | — |
| 2017/18 | National League | Bromley | 15 | 11 | 1142 | 3 | — | 0 | 0 | — |
| 2017/18 | League Two | Colchester | 18 | 10 | 900 | 2 | — | 0 | 0 | — |
| 2017/18 | FA Trophy | Bromley | 7 | 6 | 566 | 2 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Colchester | 1 | 0 | 9 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Colchester | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | National League | Bromley | 8 | 8 | 697 | 4 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Charlton | 3 | 2 | 189 | 0 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Charlton | 2 | 1 | 73 | 0 | — | 0 | 0 | — |
| 2016/17 | League Cup | Charlton | 1 | 1 | 80 | 0 | — | 0 | 0 | — |
| 2016/17 | League One | Charlton | 9 | 0 | 113 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| FA Trophy (England) | 2017/2018 | 2nd Place |
| EFL Trophy (England) | 2023/2024 | 2nd Place |
