Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Chesterfield | 2019/20 – 2026/27 | 342 | 40 | 19 |
| Morecambe | 2018/19 | 46 | 4 | — |
| Doncaster | 2014/15 – 2017/18 | 64 | 15 | — |
| Colchester | 2017/18 | 7 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2019 | Doncaster | Chesterfield | Free |
| 12 Jul 2018 | Doncaster | Morecambe | Loan |
| 1 Jul 2018 | Colchester | Doncaster | — |
| 31 Jan 2018 | Doncaster | Colchester | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Chesterfield | 1 | 0 | 20 | 0 | 0 | 0 | 0 | 6.60 |
| 2026/27 | EFL Trophy | Chesterfield | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.97 |
| 2026/27 | League Two | Chesterfield | 12 | 4 | 440 | 1 | 0 | 1 | 0 | 6.55 |
| 2025/26 | League Cup | Chesterfield | 1 | 0 | 15 | 0 | 0 | 0 | 0 | 6.60 |
| 2025/26 | EFL Trophy | Chesterfield | 3 | 3 | 234 | 0 | 0 | 0 | 0 | 6.47 |
| 2025/26 | FA Cup | Chesterfield | 2 | 2 | 90 | 0 | 0 | 0 | 0 | 6.90 |
| 2025/26 | League Two | Chesterfield | 48 | 32 | 2688 | 6 | 11 | 3 | 0 | 6.90 |
| 2024/25 | League Two | Chesterfield | 45 | 38 | 3211 | 4 | 7 | 5 | 0 | 7.23 |
| 2024/25 | FA Cup | Chesterfield | 4 | 4 | 275 | — | 0 | 0 | 0 | 7.20 |
| 2024/25 | EFL Trophy | Chesterfield | 4 | 3 | 275 | 0 | 0 | 0 | 0 | 7.20 |
| 2023/24 | National League | Chesterfield | 45 | 38 | 3396 | 8 | — | 3 | 0 | — |
| 2023/24 | FA Cup | Chesterfield | 3 | 3 | 255 | 0 | — | 0 | 0 | — |
| 2022/23 | National League | Chesterfield | 48 | 46 | 4132 | 10 | — | 8 | 0 | — |
| 2022/23 | FA Cup | Chesterfield | 5 | 5 | 435 | 0 | 1 | 0 | 0 | 7.90 |
| 2021/22 | National League | Chesterfield | 45 | 36 | 3287 | 2 | — | 7 | 0 | — |
| 2021/22 | FA Cup | Chesterfield | 4 | 3 | 300 | 2 | — | 0 | 0 | 7.10 |
| 2020/21 | National League | Chesterfield | 35 | 15 | 1661 | 3 | — | 4 | 0 | — |
| 2020/21 | FA Trophy | Chesterfield | 2 | 2 | 128 | 0 | — | 0 | 0 | — |
| 2019/20 | National League | Chesterfield | 31 | 18 | 1818 | 4 | — | 6 | 0 | — |
| 2019/20 | FA Cup | Chesterfield | 2 | 1 | 102 | 0 | — | 0 | 0 | — |
| 2019/20 | FA Trophy | Chesterfield | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | League Two | Morecambe | 42 | 28 | 2559 | 3 | — | 3 | 0 | — |
| 2018/19 | League Cup | Morecambe | 1 | 1 | 65 | 1 | — | 0 | 0 | — |
| 2018/19 | EFL Trophy | Morecambe | 1 | 0 | 66 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Morecambe | 2 | 2 | 145 | 0 | — | 0 | 0 | — |
| 2017/18 | League Two | Colchester | 7 | 1 | 182 | 0 | — | 0 | 0 | — |
| 2017/18 | League One | Doncaster | 17 | 7 | 650 | 1 | — | 0 | 0 | — |
| 2017/18 | League Cup | Doncaster | 1 | 0 | 28 | 0 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Doncaster | 4 | 4 | 360 | 2 | — | 1 | 0 | — |
| 2017/18 | FA Cup | Doncaster | 2 | 0 | 20 | 1 | — | 1 | 0 | — |
| 2016/17 | League Two | Doncaster | 21 | 9 | 984 | 7 | — | 3 | 0 | — |
| 2016/17 | League Cup | Doncaster | 1 | 0 | 27 | 1 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Doncaster | 4 | 3 | 273 | 1 | — | 1 | 0 | — |
| 2016/17 | FA Cup | Doncaster | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2015/16 | League One | Doncaster | 8 | 2 | 247 | 1 | — | 0 | 0 | — |
| 2015/16 | EFL Trophy | Doncaster | 2 | 1 | 97 | 0 | — | 0 | 0 | — |
| 2014/15 | League One | Doncaster | 3 | 0 | 32 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| National League (England) | 2023/2024 | Winner |
