Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Huddersfield | 2026/27 | 9 | 0 | 3 |
| Peterborough | 2023/24 – 2025/26 | 157 | 8 | 12 |
| Exeter | 2016/17 – 2022/23 | 220 | 14 | 15 |
| Weston-super-Mare | 2017/18 | 7 | 1 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 28 Jun 2023 | Exeter City | Peterborough | — |
| 5 Nov 2017 | Weston-super-Mare | Exeter City | — |
| 6 Aug 2017 | Exeter City | Weston-super-Mare | Loan |
| 29 Jun 2026 | Peterborough | Collins Archie | Free agent |
| 12 Aug 2026 | Peterborough | Huddersfield | Free agent |
| 11 Aug 2026 | Peterborough | Huddersfield | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | EFL Trophy | Huddersfield | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.26 |
| 2026/27 | League One | Huddersfield | 8 | 6 | 589 | 0 | 3 | 1 | 0 | 6.91 |
| 2025/26 | League Cup | Peterborough | 1 | 1 | 90 | 1 | 0 | 0 | 0 | 8.70 |
| 2025/26 | EFL Trophy | Peterborough | 2 | 1 | 104 | 0 | 0 | 0 | 0 | 7.05 |
| 2025/26 | FA Cup | Peterborough | 2 | 2 | 90 | 0 | 0 | 0 | 0 | 6.90 |
| 2025/26 | League One | Peterborough | 45 | 45 | 4004 | 2 | 7 | 8 | 0 | 7.17 |
| 2024/25 | League One | Peterborough | 40 | 40 | 3297 | 1 | 2 | 8 | 0 | 6.88 |
| 2024/25 | FA Cup | Peterborough | 1 | 1 | 90 | — | 0 | 0 | 0 | 6.20 |
| 2024/25 | League Cup | Peterborough | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.90 |
| 2024/25 | EFL Trophy | Peterborough | 8 | 6 | 511 | 0 | 0 | 1 | 0 | 6.73 |
| 2023/24 | League One | Peterborough | 46 | 45 | 4015 | 3 | 3 | 7 | 0 | 7.13 |
| 2023/24 | League Cup | Peterborough | 2 | 2 | 182 | 0 | — | 1 | 0 | 6.60 |
| 2023/24 | EFL Trophy | Peterborough | 5 | 5 | 362 | 0 | — | 2 | 0 | 6.95 |
| 2023/24 | FA Cup | Peterborough | 4 | 4 | 387 | 1 | — | 1 | 0 | — |
| 2022/23 | League One | Exeter | 45 | 44 | 3928 | 4 | 2 | 5 | 0 | 6.99 |
| 2022/23 | FA Cup | Exeter | 2 | 2 | 180 | 1 | — | 0 | 0 | — |
| 2022/23 | League Cup | Exeter | 2 | 1 | 85 | 1 | — | 0 | 0 | 7.35 |
| 2021/22 | League Two | Exeter | 38 | 36 | 3318 | 0 | 8 | 3 | 0 | 7.12 |
| 2021/22 | EFL Trophy | Exeter | 2 | 2 | 139 | 2 | — | 0 | 0 | 7.30 |
| 2021/22 | FA Cup | Exeter | 3 | 2 | 214 | 0 | — | 1 | 0 | — |
| 2020/21 | League Two | Exeter | 46 | 46 | 4084 | 4 | 2 | 4 | 0 | 6.84 |
| 2020/21 | FA Cup | Exeter | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.30 |
| 2020/21 | League Cup | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | 5.90 |
| 2019/20 | League Two | Exeter | 39 | 34 | 3217 | 1 | 3 | 5 | 0 | 6.72 |
| 2019/20 | League Cup | Exeter | 1 | 1 | 88 | 0 | — | 0 | 0 | 7.00 |
| 2019/20 | EFL Trophy | Exeter | 1 | 0 | 11 | 0 | — | 0 | 0 | 6.30 |
| 2019/20 | FA Cup | Exeter | 4 | 4 | 390 | 0 | — | 0 | 0 | — |
| 2018/19 | League Two | Exeter | 26 | 23 | 1942 | 1 | — | 2 | 0 | — |
| 2018/19 | League Cup | Exeter | 2 | 1 | 129 | 0 | — | 1 | 0 | 6.20 |
| 2018/19 | EFL Trophy | Exeter | 4 | 4 | 360 | 0 | — | 1 | 0 | — |
| 2018/19 | FA Cup | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | National League N / S | Weston-super-Mare | 7 | 5 | 443 | 1 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Injury | 31 Jul 2021 | 23 Sept 2021 | 54 |
| Injury | 18 Apr 2025 | Ongoing | 553 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2021/2022 | 2nd Place |
| EFL Trophy (England) | 2024/2025 | Winner |
| EFL Trophy (England) | 2023/2024 | Winner |
