Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Reading | 2026/27 | 12 | 1 | 1 |
| Burton | 2022/23 – 2025/26 | 134 | 3 | 7 |
| Forest Green | 2018/19 – 2023/24 | 126 | 0 | 5 |
| Swindon | 2023/24 | 44 | 1 | 3 |
| Eastleigh | 2019/20 | 5 | 0 | — |
| Oxford City | 2017/18 – 2018/19 | 38 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 25 Jun 2024 | Swindon Town | Burton Albion | — |
| 3 Aug 2023 | Forest Green | Swindon Town | — |
| 16 Feb 2020 | Eastleigh | Forest Green | — |
| 15 Jan 2020 | Forest Green | Eastleigh | Loan |
| 24 Jan 2019 | Oxford City | Forest Green | — |
| 30 Jun 2026 | Burton Albion | Reading | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Reading | 1 | 1 | 101 | 0 | 0 | 0 | 0 | 3.50 |
| 2026/27 | League One | Reading | 11 | 11 | 990 | 1 | 1 | 0 | 0 | 6.95 |
| 2025/26 | EFL Trophy | Burton | 2 | 1 | 90 | 0 | 0 | 0 | 0 | 6.50 |
| 2025/26 | FA Cup | Burton | 2 | 2 | 120 | 0 | 0 | 0 | 0 | 7.90 |
| 2025/26 | League One | Burton | 38 | 37 | 3240 | 2 | 3 | 7 | 0 | 6.88 |
| 2024/25 | League One | Burton | 42 | 40 | 3496 | 1 | 3 | 4 | 0 | 6.89 |
| 2024/25 | FA Cup | Burton | 24 | 20 | 1573 | — | — | 3 | 0 | 6.58 |
| 2024/25 | EFL Trophy | Burton | 2 | 1 | 76 | 0 | 1 | 0 | 0 | 7.05 |
| 2023/24 | League Two | Swindon | 42 | 41 | 3683 | 1 | 3 | 4 | 0 | 6.91 |
| 2023/24 | League Cup | Swindon | 1 | 1 | 78 | 0 | — | 0 | 0 | 7.30 |
| 2023/24 | FA Cup | Swindon | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2022/23 | League One | Forest Green | 25 | 18 | 1662 | 0 | — | 3 | 0 | 6.58 |
| 2022/23 | League One | Burton | 24 | 20 | 1573 | — | — | 3 | 0 | 6.58 |
| 2021/22 | League Two | Forest Green | 26 | 22 | 2075 | 0 | 2 | 4 | 0 | 6.63 |
| 2021/22 | FA Cup | Forest Green | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | EFL Trophy | Forest Green | 2 | 1 | 107 | 0 | — | 0 | 0 | 6.80 |
| 2021/22 | League Cup | Forest Green | 1 | 1 | 46 | 0 | — | 1 | 0 | 6.20 |
| 2020/21 | League Two | Forest Green | 46 | 45 | 4102 | 0 | — | 4 | 0 | 6.76 |
| 2020/21 | League Cup | Forest Green | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.20 |
| 2020/21 | FA Cup | Forest Green | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | EFL Trophy | Forest Green | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.50 |
| 2019/20 | National League | Eastleigh | 4 | 4 | 251 | 0 | — | 0 | 0 | — |
| 2019/20 | FA Trophy | Eastleigh | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2019/20 | FA Cup | Forest Green | 1 | 0 | 7 | 0 | — | 0 | 0 | — |
| 2019/20 | League Cup | Forest Green | 2 | 2 | 180 | 0 | — | 0 | 0 | 7.10 |
| 2019/20 | EFL Trophy | Forest Green | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2019/20 | League Two | Forest Green | 10 | 9 | 674 | 0 | — | 1 | 0 | 6.65 |
| 2018/19 | League Two | Forest Green | 5 | 3 | 273 | 0 | — | 0 | 0 | — |
| 2018/19 | National League N / S | Oxford City | 24 | 24 | 2045 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Trophy | Oxford City | 2 | 2 | 210 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Oxford City | 4 | 4 | 346 | 0 | — | 0 | 0 | 6.30 |
| 2017/18 | National League N / S | Oxford City | 8 | 4 | 389 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Injury | 21 Apr 2025 | 24 Apr 2025 | 3 |
| Injury | 17 Aug 2021 | 14 Oct 2021 | 58 |
| Injury | 6 Aug 2022 | 15 Dec 2022 | 131 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2021/2022 | Winner |
