Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Northampton | 2022/23 – 2026/27 | 118 | 10 | 2 |
| Stevenage | 2019/20 – 2024/25 | 200 | 35 | 7 |
| Gillingham | 2015/16 – 2019/20 | 96 | 10 | 1 |
| Braintree | 2015/16 | 2 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 31 Aug 2019 | Gillingham | Stevenage | — |
| 1 Oct 2015 | Gillingham | Braintree | Loan |
| 1 Jul 2025 | Stevenage | Northampton | Free Transfer |
| 29 Jun 2025 | Stevenage | Northampton | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Northampton | 1 | 1 | 64 | 0 | 0 | 0 | 0 | 6.60 |
| 2026/27 | EFL Trophy | Northampton | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 3.24 |
| 2026/27 | League Two | Northampton | 4 | 0 | 77 | 0 | 0 | 1 | 0 | 6.38 |
| 2025/26 | League Cup | Northampton | 1 | 1 | 45 | 0 | 0 | 0 | 0 | 6.20 |
| 2025/26 | EFL Trophy | Northampton | 5 | 4 | 236 | 0 | 0 | 0 | 0 | 6.37 |
| 2025/26 | League One | Northampton | 33 | 12 | 1319 | 2 | 0 | 4 | 0 | 6.56 |
| 2024/25 | League One | Stevenage | 39 | 15 | 1590 | 4 | 1 | 2 | 0 | 6.62 |
| 2024/25 | League One | Northampton | 40 | 30 | 1574 | 4 | 1 | 2 | 0 | 6.62 |
| 2024/25 | FA Cup | Stevenage | 1 | 1 | 39 | — | — | 1 | 0 | 6.20 |
| 2024/25 | EFL Trophy | Stevenage | 3 | 3 | 262 | 0 | 0 | 0 | 0 | 6.30 |
| 2023/24 | League One | Stevenage | 29 | 8 | 870 | 4 | 1 | 3 | 0 | 6.63 |
| 2023/24 | League One | Northampton | 32 | 22 | 892 | 4 | 1 | 3 | 0 | 6.63 |
| 2023/24 | League Cup | Stevenage | 1 | 1 | 76 | 0 | — | 0 | 0 | 6.70 |
| 2023/24 | EFL Trophy | Stevenage | 3 | 3 | 240 | 0 | — | 1 | 0 | 6.37 |
| 2023/24 | FA Cup | Stevenage | 3 | 2 | 134 | 0 | — | 0 | 0 | — |
| 2022/23 | League Two | Stevenage | 1 | 1 | 39 | 0 | — | 1 | 0 | 6.20 |
| 2022/23 | League Two | Northampton | 1 | 1 | 39 | — | — | 1 | 0 | 6.20 |
| 2021/22 | League Two | Stevenage | 37 | 34 | 2794 | 9 | 1 | 0 | 0 | 6.80 |
| 2021/22 | EFL Trophy | Stevenage | 3 | 1 | 85 | 1 | — | 0 | 0 | 6.65 |
| 2021/22 | League Cup | Stevenage | 2 | 2 | 136 | 2 | — | 0 | 0 | 7.20 |
| 2021/22 | FA Cup | Stevenage | 3 | 3 | 300 | 1 | — | 0 | 0 | 6.70 |
| 2020/21 | League Two | Stevenage | 44 | 36 | 3086 | 9 | 3 | 2 | 0 | 6.72 |
| 2020/21 | League Cup | Stevenage | 1 | 1 | 79 | 1 | — | 0 | 0 | 7.00 |
| 2020/21 | FA Cup | Stevenage | 2 | 1 | 168 | 1 | — | 0 | 0 | — |
| 2020/21 | EFL Trophy | Stevenage | 1 | 1 | 70 | 0 | — | 0 | 0 | 6.90 |
| 2019/20 | League Two | Stevenage | 21 | 19 | 1482 | 2 | 1 | 1 | 0 | 6.78 |
| 2019/20 | League One | Gillingham | 4 | 1 | 163 | 0 | 1 | 0 | 0 | 6.72 |
| 2019/20 | FA Cup | Stevenage | 2 | 1 | 164 | 1 | — | 0 | 0 | — |
| 2019/20 | EFL Trophy | Stevenage | 4 | 4 | 276 | 0 | — | 0 | 0 | 6.60 |
| 2018/19 | League One | Gillingham | 37 | 17 | 1877 | 5 | — | 1 | 0 | — |
| 2018/19 | FA Cup | Gillingham | 5 | 3 | 331 | 2 | — | 1 | 0 | 6.50 |
| 2018/19 | EFL Trophy | Gillingham | 3 | 3 | 196 | 1 | — | 0 | 0 | — |
| 2017/18 | League One | Gillingham | 23 | 7 | 754 | 2 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Gillingham | 3 | 2 | 112 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Gillingham | 2 | 1 | 66 | 0 | — | 0 | 0 | — |
| 2016/17 | League One | Gillingham | 15 | 3 | 424 | 0 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Gillingham | 1 | 0 | 34 | 0 | — | 0 | 0 | — |
| 2016/17 | League Cup | Gillingham | 1 | 0 | 54 | 0 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Gillingham | 2 | 2 | 180 | 0 | — | 2 | 0 | — |
| 2015/16 | FA Cup | Braintree | 2 | 0 | 24 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2022/2023 | 2nd Place |
