Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Barnet | 2026/27 | 11 | 6 | 3 |
| Walsall | 2024/25 – 2025/26 | 111 | 5 | 6 |
| Burton | 2021/22 – 2023/24 | 50 | 2 | 4 |
| Sutton Utd | 2023/24 | 21 | 8 | — |
| Wimbledon | 2023/24 | 10 | 0 | 2 |
| Doncaster | 2022/23 | 10 | — | 1 |
| Birmingham | 2017/18 – 2021/22 | 17 | 0 | — |
| Ross County | 2020/21 | 24 | 4 | 1 |
| Stevenage | 2019/20 | 25 | 2 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2024 | Burton Albion | Walsall | Free |
| 11 Jan 2024 | Burton Albion | Sutton Utd | Loan |
| 9 Jan 2024 | AFC Wimbledon | Burton Albion | — |
| 1 Sept 2023 | Burton Albion | AFC Wimbledon | Loan |
| 1 Jul 2023 | Doncaster | Burton Albion | — |
| 27 Jan 2023 | Burton Albion | Doncaster | Loan |
| 31 Aug 2021 | Birmingham | Burton Albion | — |
| 1 Jul 2021 | Ross County | Birmingham | — |
| 5 Oct 2020 | Birmingham | Ross County | Loan |
| 1 Aug 2020 | Stevenage | Birmingham | — |
| 22 Aug 2019 | Birmingham | Stevenage | Loan |
| 30 Jun 2026 | Walsall | Barnet | Free agent |
| 29 Jun 2026 | Walsall | Barnet | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Barnet | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.30 |
| 2026/27 | League Two | Barnet | 10 | 10 | 879 | 6 | 3 | 1 | 0 | 7.25 |
| 2025/26 | EFL Trophy | Walsall | 1 | 1 | — | 0 | 0 | 0 | 0 | — |
| 2025/26 | FA Cup | Walsall | 3 | 2 | 197 | 0 | 0 | 0 | 0 | 6.43 |
| 2025/26 | League Two | Walsall | 44 | 34 | 2860 | 1 | 3 | 2 | 0 | 6.60 |
| 2024/25 | League Two | Walsall | 45 | 38 | 2373 | 3 | 1 | 2 | 0 | 6.78 |
| 2024/25 | FA Cup | Walsall | 10 | 8 | 577 | — | 1 | 2 | 0 | 6.66 |
| 2024/25 | League Cup | Walsall | 3 | 2 | 155 | — | 0 | 0 | 0 | 6.77 |
| 2024/25 | EFL Trophy | Walsall | 5 | 5 | 419 | 1 | 1 | 0 | 0 | 7.54 |
| 2023/24 | League Two | Sutton Utd | 21 | 19 | 1754 | 8 | — | 2 | 0 | 6.73 |
| 2023/24 | League Two | Wimbledon | 6 | 2 | 194 | 0 | — | 1 | 0 | 6.73 |
| 2023/24 | EFL Trophy | Wimbledon | 4 | 4 | 360 | 0 | 2 | 0 | 0 | 7.55 |
| 2022/23 | League One | Burton | 16 | 8 | 15 | — | — | 0 | 0 | 6.70 |
| 2022/23 | League Two | Doncaster | 10 | 8 | 577 | — | 1 | 2 | 0 | 6.66 |
| 2022/23 | League Cup | Burton | 1 | 1 | 67 | 0 | — | 0 | 0 | 6.90 |
| 2022/23 | EFL Trophy | Burton | 4 | 3 | 290 | 0 | — | 0 | 0 | 6.90 |
| 2022/23 | FA Cup | Burton | 1 | 1 | 61 | 0 | — | 0 | 0 | — |
| 2021/22 | League One | Burton | 27 | 12 | 1094 | 1 | 2 | 3 | 0 | 6.69 |
| 2021/22 | EFL Trophy | Burton | 1 | 1 | 90 | 1 | — | 0 | 0 | 7.90 |
| 2021/22 | League Cup | Birmingham | 2 | 1 | 119 | 0 | — | 0 | 0 | 6.60 |
| 2020/21 | Premiership | Ross County | 19 | 14 | 1235 | 3 | 1 | 1 | 0 | 6.59 |
| 2020/21 | League Cup | Ross County | 4 | 2 | 147 | 1 | — | 0 | 0 | — |
| 2020/21 | FA Cup | Ross County | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | League Cup | Birmingham | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.30 |
| 2020/21 | Friendlies Clubs | Birmingham | 1 | 1 | 67 | 0 | — | 0 | 0 | — |
| 2019/20 | League Two | Stevenage | 20 | 18 | 1611 | 2 | — | 2 | 0 | 6.73 |
| 2019/20 | EFL Trophy | Stevenage | 3 | 3 | 257 | 0 | — | 1 | 0 | 6.60 |
| 2019/20 | FA Cup | Stevenage | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2019/20 | League Cup | Birmingham | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.70 |
| 2018/19 | Championship | Birmingham | 10 | 5 | 437 | 0 | — | 0 | 0 | 6.46 |
| 2018/19 | League Cup | Birmingham | 1 | 0 | 17 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Birmingham | 1 | 0 | 19 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Thigh Injury | 5 Jan 2019 | 17 Apr 2019 | 102 |
| Injury | 30 Dec 2020 | 31 Dec 2020 | 1 |
| Injury | 29 Nov 2020 | 27 Dec 2020 | 28 |
| Thigh Injury | 6 Oct 2018 | 21 Oct 2018 | 15 |
Trophies
No trophies recorded.
