Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Northampton | 2026/27 | 8 | 0 | 0 |
| Tranmere | 2022/23 – 2025/26 | 107 | 8 | 9 |
| Eastleigh | 2025/26 | 1 | 0 | 0 |
| Bristol Rovers | 2021/22 – 2022/23 | 53 | 5 | 2 |
| Fleetwood | 2019/20 – 2020/21 | 41 | 8 | 1 |
| Hartlepool | 2020/21 | 3 | 0 | — |
| Darlington 1883 | 2016/17 – 2018/19 | 82 | 12 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 27 Jan 2023 | Bristol Rovers | Tranmere | — |
| 1 Jul 2021 | Fleetwood Town | Bristol Rovers | Free |
| 30 Apr 2021 | Fleetwood Town | Hartlepool | Loan |
| 1 Jul 2019 | Darlington 1883 | Fleetwood Town | Free |
| 30 May 2026 | Eastleigh | Tranmere | Return from loan |
| 29 Aug 2025 | Tranmere | Eastleigh | Loan |
| 30 Jun 2026 | Tranmere | Northampton | Free agent |
| 29 Jun 2026 | Tranmere | Northampton | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Northampton | 1 | 1 | 99 | 0 | 0 | 1 | 0 | 6.50 |
| 2026/27 | EFL Trophy | Northampton | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.10 |
| 2026/27 | League Two | Northampton | 6 | 3 | 265 | 0 | 0 | 0 | 0 | 6.47 |
| 2025/26 | League Cup | Tranmere | 1 | 0 | 24 | 0 | 0 | 0 | 0 | 7.50 |
| 2025/26 | FA Cup | Eastleigh | 1 | 1 | 88 | 0 | 0 | 0 | 0 | 6.20 |
| 2024/25 | League Two | Tranmere | 41 | 28 | 1744 | 1 | 2 | 4 | 0 | 6.58 |
| 2024/25 | FA Cup | Tranmere | 1 | 0 | 24 | — | 0 | 0 | 0 | 7.30 |
| 2024/25 | League Cup | Tranmere | 2 | 2 | 123 | 1 | 0 | 0 | 0 | 6.80 |
| 2024/25 | EFL Trophy | Tranmere | 4 | 2 | 173 | 0 | 1 | 0 | 0 | 6.53 |
| 2023/24 | League Two | Tranmere | 38 | 25 | 2166 | 3 | 6 | 4 | 0 | 6.68 |
| 2023/24 | League Cup | Tranmere | 1 | 0 | 33 | 0 | — | 0 | 0 | 7.00 |
| 2023/24 | EFL Trophy | Tranmere | 2 | 1 | 95 | 0 | — | 0 | 0 | 6.45 |
| 2022/23 | League One | Bristol Rovers | 22 | 12 | 383 | — | 1 | 1 | 0 | 6.56 |
| 2022/23 | League Two | Tranmere | 17 | 17 | 1364 | 3 | — | 2 | 0 | 6.80 |
| 2022/23 | EFL Trophy | Bristol Rovers | 5 | 2 | 245 | 2 | — | 2 | 0 | 6.97 |
| 2022/23 | FA Cup | Bristol Rovers | 2 | 0 | 50 | 0 | — | 0 | 0 | 6.90 |
| 2022/23 | League Cup | Bristol Rovers | 1 | 0 | 26 | 0 | — | 0 | 0 | 6.20 |
| 2021/22 | League Two | Bristol Rovers | 21 | 10 | 927 | 2 | 1 | 5 | 0 | 6.59 |
| 2021/22 | EFL Trophy | Bristol Rovers | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2021/22 | League Cup | Bristol Rovers | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.20 |
| 2020/21 | National League | Hartlepool | 3 | 2 | 164 | 0 | — | 0 | 0 | — |
| 2020/21 | League One | Fleetwood | 21 | 6 | 498 | 3 | 1 | 1 | 0 | 6.59 |
| 2020/21 | FA Cup | Fleetwood | 1 | 1 | 46 | 0 | — | 0 | 0 | — |
| 2020/21 | EFL Trophy | Fleetwood | 4 | 3 | 271 | 5 | — | 0 | 0 | 7.35 |
| 2020/21 | League Cup | Fleetwood | 3 | 1 | 96 | 0 | — | 1 | 0 | 6.30 |
| 2019/20 | League One | Fleetwood | 8 | 0 | 52 | 0 | — | 1 | 0 | 6.33 |
| 2019/20 | EFL Trophy | Fleetwood | 3 | 2 | 196 | 0 | — | 0 | 0 | 6.30 |
| 2019/20 | FA Cup | Fleetwood | 1 | 0 | 9 | 0 | — | 0 | 0 | — |
| 2018/19 | National League N / S | Darlington 1883 | 40 | 28 | 2695 | 8 | — | 0 | 0 | — |
| 2017/18 | National League N / S | Darlington 1883 | 32 | 7 | 1119 | 2 | — | 0 | 0 | — |
| 2016/17 | National League N / S | Darlington 1883 | 10 | 0 | 174 | 2 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
