Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Bristol Rovers | 2015/16 – 2026/27 | 160 | 8 | 5 |
| Wycombe | 2026/27 | 1 | 0 | 0 |
| Mansfield | 2022/23 – 2024/25 | 46 | 4 | 0 |
| Maidenhead | 2018/19 | 19 | 3 | — |
| Hungerford Town | 2017/18 | 9 | 1 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 12 Jan 2023 | Bristol Rovers | Mansfield Town | — |
| 8 Mar 2019 | Maidenhead | Bristol Rovers | — |
| 7 Nov 2018 | Bristol Rovers | Maidenhead | Loan |
| 5 May 2018 | Hungerford Town | Bristol Rovers | — |
| 22 Mar 2018 | Bristol Rovers | Hungerford Town | Loan |
| 1 Jul 2025 | Mansfield Town | Bristol Rovers | Free Transfer |
| 29 Jun 2025 | Mansfield Town | Bristol Rovers | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Two | Bristol Rovers | 3 | 3 | 225 | 0 | 0 | 0 | 0 | 4.82 |
| 2026/27 | EFL Trophy | Wycombe | 1 | 1 | 39 | 0 | 0 | 0 | 0 | 5.76 |
| 2025/26 | League Cup | Bristol Rovers | 1 | 1 | 45 | 0 | 0 | 0 | 0 | 6.30 |
| 2025/26 | EFL Trophy | Bristol Rovers | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.20 |
| 2025/26 | League Two | Bristol Rovers | 36 | 35 | 3058 | 1 | 4 | 8 | 0 | 6.71 |
| 2024/25 | League One | Mansfield | 17 | 7 | 623 | 0 | 0 | 2 | 0 | 6.62 |
| 2024/25 | EFL Trophy | Mansfield | 1 | 1 | 78 | 0 | 0 | 0 | 0 | 7.00 |
| 2024/25 | FA Cup | Mansfield | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2023/24 | League Two | Mansfield | 3 | 3 | 197 | 0 | — | 1 | 0 | 7.30 |
| 2023/24 | League Cup | Mansfield | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.30 |
| 2022/23 | League Two | Mansfield | 21 | 20 | 1804 | 4 | — | 1 | 0 | 7.00 |
| 2022/23 | League One | Bristol Rovers | 8 | 4 | 364 | 0 | — | 0 | 1 | 6.65 |
| 2022/23 | League Cup | Bristol Rovers | 1 | 1 | 89 | 0 | — | 0 | 0 | 7.30 |
| 2022/23 | EFL Trophy | Bristol Rovers | 3 | 2 | 145 | 1 | — | 0 | 1 | 5.75 |
| 2021/22 | League Two | Bristol Rovers | 11 | 10 | 936 | 1 | 1 | 4 | 1 | 6.91 |
| 2021/22 | EFL Trophy | Bristol Rovers | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | League Cup | Bristol Rovers | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.30 |
| 2021/22 | FA Cup | Bristol Rovers | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | League One | Bristol Rovers | 35 | 33 | 2977 | 1 | — | 2 | 0 | 6.84 |
| 2020/21 | League Cup | Bristol Rovers | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.20 |
| 2020/21 | FA Cup | Bristol Rovers | 3 | 2 | 207 | 1 | — | 1 | 0 | 7.10 |
| 2020/21 | EFL Trophy | Bristol Rovers | 5 | 5 | 450 | 0 | — | 1 | 0 | 6.64 |
| 2019/20 | League One | Bristol Rovers | 33 | 33 | 2935 | 2 | — | 5 | 0 | 6.92 |
| 2019/20 | League Cup | Bristol Rovers | 2 | 2 | 180 | 0 | — | 0 | 0 | 7.00 |
| 2019/20 | EFL Trophy | Bristol Rovers | 4 | 4 | 360 | 1 | — | 1 | 0 | 6.30 |
| 2019/20 | FA Cup | Bristol Rovers | 6 | 6 | 540 | 0 | — | 3 | 0 | 7.30 |
| 2018/19 | League One | Bristol Rovers | 4 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | National League - Play-offs | Maidenhead | 17 | 17 | 1505 | 3 | — | 0 | 0 | — |
| 2018/19 | FA Trophy | Maidenhead | 1 | 1 | 120 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Maidenhead | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.20 |
| 2017/18 | National League N / S | Hungerford Town | 9 | 8 | 724 | 1 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
