Clubs
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 14 Jun 2024 | Exeter City | Wycombe | Free |
| 1 Aug 2020 | Bath City | Exeter City | — |
| 9 Jan 2020 | Exeter City | Bath City | Loan |
| 3 Jan 2020 | Bath City | Exeter City | — |
| 29 Nov 2019 | Exeter City | Bath City | Loan |
| 12 Nov 2019 | Bath City | Exeter City | — |
| 12 Jul 2019 | Exeter City | Bath City | Loan |
| 28 Sept 2018 | Truro City | Exeter City | — |
| 1 Sept 2018 | Exeter City | Truro City | Loan |
| 28 Aug 2018 | Truro City | Exeter City | — |
| 17 Jul 2018 | Exeter City | Truro City | Loan |
| 1 Dec 2017 | Exeter City | Truro City | Loan |
| 28 Nov 2017 | Truro City | Exeter City | — |
| 14 Jul 2017 | Exeter City | Truro City | Loan |
| 10 Mar 2017 | Exeter City | Truro City | Loan |
| 1 Jul 2025 | Exeter City | Wycombe | Back from Loan |
| 30 Jan 2025 | Wycombe | Exeter City | Loan |
| 1 Sept 2025 | Wycombe | Burton Albion | Transfer |
| 30 Jun 2026 | Burton Albion | Plymouth | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Plymouth | 1 | 1 | 90 | 1 | 0 | 0 | 0 | 7.90 |
| 2026/27 | League One | Plymouth | 8 | 6 | 557 | 0 | 1 | 0 | 0 | 6.47 |
| 2025/26 | League Cup | Wycombe | 2 | 2 | 186 | 0 | 0 | 0 | 0 | 7.25 |
| 2025/26 | EFL Trophy | Burton | 2 | 1 | 107 | 0 | 0 | 1 | 0 | 6.60 |
| 2025/26 | FA Cup | Burton | 2 | 2 | 90 | 0 | 0 | 0 | 0 | 6.70 |
| 2025/26 | League One | Burton | 39 | 38 | 3363 | 3 | 1 | 5 | 0 | 7.18 |
| 2024/25 | League One | Exeter | 18 | 18 | 1620 | 1 | 2 | 2 | 0 | 7.11 |
| 2024/25 | League One | Wycombe | 18 | 18 | 1620 | 1 | 2 | 2 | 0 | 7.11 |
| 2024/25 | FA Cup | Wycombe | 42 | 42 | 3529 | — | 1 | 5 | 1 | 6.86 |
| 2024/25 | League Cup | Wycombe | 3 | 3 | 258 | — | 0 | 3 | 1 | 6.60 |
| 2024/25 | EFL Trophy | Wycombe | 3 | 3 | 270 | 0 | 0 | 2 | 0 | 6.87 |
| 2023/24 | League One | Exeter | 28 | 26 | 2256 | 0 | — | 4 | 0 | 6.83 |
| 2023/24 | League One | Burton | 35 | 29 | 2262 | — | — | 4 | 0 | 6.83 |
| 2023/24 | League Cup | Exeter | 4 | 4 | 333 | 1 | — | 0 | 0 | 7.05 |
| 2023/24 | EFL Trophy | Exeter | 2 | 2 | 136 | 0 | — | 0 | 0 | 6.30 |
| 2023/24 | FA Cup | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2022/23 | League One | Exeter | 43 | 42 | 3620 | 0 | 1 | 4 | 0 | 6.86 |
| 2022/23 | League One | Burton | 42 | 42 | 3529 | — | 1 | 5 | 1 | 6.86 |
| 2022/23 | FA Cup | Exeter | 2 | 2 | 173 | 0 | — | 1 | 0 | — |
| 2022/23 | League Cup | Exeter | 2 | 1 | 69 | 0 | 1 | 0 | 0 | 6.70 |
| 2022/23 | EFL Trophy | Exeter | 1 | 1 | 61 | 0 | — | 0 | 0 | 6.70 |
| 2021/22 | League Two | Exeter | 28 | 27 | 2437 | 0 | — | 1 | 0 | 6.91 |
| 2021/22 | FA Cup | Exeter | 3 | 2 | 191 | 0 | — | 0 | 0 | — |
| 2020/21 | League Two | Exeter | 29 | 20 | 1728 | 0 | — | 2 | 1 | 6.63 |
| 2020/21 | EFL Trophy | Exeter | 3 | 3 | 270 | 1 | 1 | 0 | 0 | 7.27 |
| 2020/21 | FA Cup | Exeter | 2 | 2 | 180 | 1 | — | 0 | 0 | — |
| 2019/20 | National League - South | Bath City | 17 | 17 | 1530 | 1 | — | 0 | 0 | — |
| 2019/20 | FA Trophy | Bath City | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2019/20 | EFL Trophy | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.30 |
| 2018/19 | National League N / S | Truro City | 7 | 7 | 630 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Trophy | Truro City | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Exeter | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2017/18 | National League N / S | Truro City | 10 | 9 | 886 | 1 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Truro City | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | National League N / S | Truro City | 9 | 9 | 766 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2021/2022 | 2nd Place |
