Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Colchester | 2022/23 – 2026/27 | 17 | 1 | 1 |
| Stevenage | 2025/26 | 35 | 1 | 1 |
| Wycombe | 2023/24 – 2024/25 | 55 | 14 | 3 |
| Burton | 2023/24 | 26 | 6 | 3 |
| Blackpool | 2020/21 – 2022/23 | 22 | 0 | 1 |
| Northampton | 2021/22 | 14 | 0 | 1 |
| Crawley | 2019/20 | 41 | 13 | 3 |
| Birmingham | 2017/18 – 2018/19 | 5 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 30 Jan 2024 | Burton Albion | Wycombe | Free |
| 1 Sept 2023 | Blackpool | Burton Albion | Free |
| 3 Jan 2023 | Colchester | Blackpool | — |
| 30 Aug 2022 | Blackpool | Colchester | Loan |
| 1 Jul 2022 | Northampton | Blackpool | — |
| 31 Jan 2022 | Blackpool | Northampton | Loan |
| 31 Aug 2020 | Crawley Town | Blackpool | — |
| 1 Jul 2019 | Birmingham | Crawley Town | — |
| 11 Jul 2025 | Wycombe | Stevenage | Free Transfer |
| 29 Jun 2026 | Stevenage | Lubala Beryly | Free agent |
| 24 Sept 2026 | Stevenage | Colchester | Free agent |
| 29 Jun 2026 | Stevenage | Colchester | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | EFL Trophy | Colchester | 1 | 1 | 61 | 0 | 0 | 0 | 0 | 6.67 |
| 2026/27 | League Two | Colchester | 3 | 2 | 172 | 0 | 0 | 2 | 0 | 6.30 |
| 2025/26 | EFL Trophy | Stevenage | 2 | 2 | 103 | 1 | 0 | 0 | 0 | 6.45 |
| 2025/26 | League One | Stevenage | 33 | 10 | 1028 | 0 | 1 | 3 | 0 | 6.41 |
| 2024/25 | League One | Wycombe | 30 | 23 | 1186 | 4 | 0 | 4 | 0 | 6.61 |
| 2024/25 | FA Cup | Wycombe | 1 | 1 | 120 | — | 0 | 0 | 0 | 7.30 |
| 2024/25 | League Cup | Wycombe | 1 | 1 | 63 | — | 0 | 0 | 0 | 6.90 |
| 2024/25 | EFL Trophy | Wycombe | 3 | 2 | 148 | 5 | 0 | 0 | 0 | 8.10 |
| 2023/24 | League One | Burton | 20 | 17 | 1527 | 5 | 1 | 4 | 0 | 6.67 |
| 2023/24 | League One | Wycombe | 20 | 17 | 1526 | 5 | 1 | 5 | 1 | 6.67 |
| 2023/24 | FA Cup | Burton | 2 | 2 | 108 | 0 | — | 1 | 0 | — |
| 2023/24 | EFL Trophy | Burton | 4 | 3 | 243 | 1 | 2 | 0 | 0 | 7.00 |
| 2022/23 | League Two | Colchester | 9 | 6 | 392 | 1 | 1 | 2 | 0 | 6.54 |
| 2022/23 | EFL Trophy | Colchester | 3 | 2 | 149 | 0 | — | 2 | 0 | 6.50 |
| 2022/23 | FA Cup | Colchester | 1 | 0 | 23 | 0 | — | 0 | 0 | — |
| 2022/23 | League Cup | Blackpool | 1 | 0 | 58 | 0 | — | 1 | 0 | 6.90 |
| 2021/22 | League Two | Northampton | 14 | 5 | 514 | 0 | 1 | 4 | 0 | 6.43 |
| 2020/21 | League One | Blackpool | 12 | 5 | 415 | 0 | — | 1 | 0 | 6.44 |
| 2020/21 | FA Cup | Blackpool | 4 | 1 | 124 | 0 | — | 0 | 0 | 6.05 |
| 2020/21 | EFL Trophy | Blackpool | 4 | 4 | 331 | 0 | 1 | 0 | 0 | 7.13 |
| 2020/21 | Friendlies Clubs | Blackpool | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2019/20 | League Two | Crawley | 34 | 32 | 2852 | 12 | 3 | 9 | 0 | 6.89 |
| 2019/20 | EFL Trophy | Crawley | 2 | 1 | 103 | 0 | — | 0 | 0 | — |
| 2019/20 | FA Cup | Crawley | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2019/20 | League Cup | Crawley | 3 | 3 | 270 | 1 | — | 0 | 0 | 6.63 |
| 2018/19 | Championship | Birmingham | 3 | 0 | 3 | 0 | — | 0 | 0 | 6.50 |
| 2018/19 | League Cup | Birmingham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | Championship | Birmingham | 1 | 0 | 21 | 0 | — | 0 | 0 | 6.80 |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Suspended | 23 Oct 2019 | 27 Oct 2019 | 4 |
Trophies
| Competition | Season | Place |
|---|---|---|
| EFL Trophy (England) | 2023/2024 | 2nd Place |
