Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Newport | 2025/26 – 2026/27 | 35 | 6 | 4 |
| Shrewsbury | 2023/24 – 2025/26 | 15 | 0 | 0 |
| Carlisle | 2024/25 | 17 | 0 | 2 |
| Doncaster | 2022/23 – 2023/24 | 85 | 13 | 7 |
| Fleetwood | 2017/18 – 2021/22 | 101 | 6 | 2 |
| Barrow | 2020/21 | 26 | 2 | 3 |
| Stocksbridge Park Steels | 2015/16 – 2016/17 | 2 | 1 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 30 Aug 2024 | Shrewsbury | Carlisle | Loan |
| 14 Jun 2024 | Doncaster | Shrewsbury | Free |
| 1 Jul 2022 | Fleetwood Town | Doncaster | — |
| 1 Feb 2021 | Barrow | Fleetwood Town | — |
| 28 Aug 2020 | Fleetwood Town | Barrow | Loan |
| 14 Jan 2025 | Carlisle | Shrewsbury | Back from Loan |
| 2 Jan 2026 | Shrewsbury | Newport County | Loan |
| 30 Jun 2026 | Shrewsbury | Newport County | Free agent |
| 30 May 2026 | Newport County | Shrewsbury | Return from loan |
| 29 Jun 2026 | Shrewsbury | Newport County | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Newport | 1 | 1 | 100 | 0 | 0 | 0 | 0 | 6.50 |
| 2026/27 | EFL Trophy | Newport | 1 | 0 | 6 | 0 | 0 | 0 | 0 | 6.00 |
| 2026/27 | League Two | Newport | 12 | 12 | 1078 | 3 | 2 | 3 | 0 | 6.97 |
| 2025/26 | EFL Trophy | Shrewsbury | 2 | 1 | 83 | 0 | 0 | 0 | 0 | 6.50 |
| 2025/26 | FA Cup | Shrewsbury | 1 | 0 | 9 | 0 | 0 | 0 | 0 | 6.70 |
| 2025/26 | League Two | Shrewsbury | 6 | 4 | 327 | 0 | 0 | 0 | 0 | 6.73 |
| 2025/26 | League Two | Newport | 21 | 19 | 1692 | 3 | 2 | 6 | 0 | 6.72 |
| 2024/25 | League Two | Carlisle | 17 | 13 | 1219 | 0 | 2 | 2 | 0 | 6.81 |
| 2024/25 | League Cup | Shrewsbury | 2 | 1 | 124 | 0 | 0 | 0 | 0 | 6.30 |
| 2024/25 | EFL Trophy | Shrewsbury | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 7.20 |
| 2024/25 | League One | Shrewsbury | 3 | 1 | 95 | 0 | 0 | 1 | 0 | 6.55 |
| 2023/24 | League Two | Doncaster | 39 | 26 | 2228 | 6 | 4 | 6 | 0 | 6.78 |
| 2023/24 | EFL Trophy | Doncaster | 3 | 1 | 120 | 1 | 1 | 2 | 0 | 7.07 |
| 2023/24 | FA Cup | Doncaster | 2 | 2 | 156 | 1 | — | 0 | 0 | — |
| 2023/24 | League Cup | Doncaster | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.00 |
| 2022/23 | League Two | Doncaster | 36 | 31 | 2697 | 5 | 2 | 2 | 0 | 6.76 |
| 2022/23 | League Cup | Doncaster | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.20 |
| 2022/23 | EFL Trophy | Doncaster | 2 | 2 | 180 | 0 | — | 1 | 0 | 6.20 |
| 2022/23 | FA Cup | Doncaster | 1 | 1 | 57 | 0 | — | 0 | 0 | — |
| 2021/22 | League One | Fleetwood | 32 | 26 | 2313 | 5 | 2 | 4 | 0 | 6.63 |
| 2021/22 | League Cup | Fleetwood | 1 | 0 | 13 | 0 | — | 0 | 0 | 6.20 |
| 2021/22 | FA Cup | Fleetwood | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | EFL Trophy | Fleetwood | 3 | 2 | 183 | 0 | — | 2 | 0 | 6.25 |
| 2020/21 | League One | Fleetwood | 10 | 4 | 391 | 0 | — | 1 | 0 | 6.59 |
| 2020/21 | League Two | Barrow | 22 | 16 | 1433 | 2 | 3 | 2 | 0 | 6.80 |
| 2020/21 | League Cup | Barrow | 1 | 0 | 13 | 0 | — | 0 | 0 | 6.70 |
| 2020/21 | EFL Trophy | Barrow | 3 | 1 | 118 | 0 | — | 0 | 0 | 6.73 |
| 2019/20 | League One | Fleetwood | 10 | 5 | 339 | 0 | — | 1 | 0 | 6.39 |
| 2019/20 | League Cup | Fleetwood | 1 | 1 | 63 | 0 | — | 0 | 0 | 6.30 |
| 2019/20 | EFL Trophy | Fleetwood | 2 | 2 | 114 | 0 | — | 0 | 1 | 6.20 |
| 2018/19 | League One | Fleetwood | 23 | 8 | 881 | 1 | — | 1 | 0 | — |
| 2018/19 | League Cup | Fleetwood | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.70 |
| 2018/19 | EFL Trophy | Fleetwood | 3 | 3 | 270 | 0 | — | 2 | 0 | — |
| 2018/19 | FA Cup | Fleetwood | 2 | 0 | 33 | 0 | — | 0 | 0 | — |
| 2017/18 | League One | Fleetwood | 7 | 2 | 282 | 0 | — | 1 | 0 | — |
| 2017/18 | EFL Trophy | Fleetwood | 4 | 2 | 256 | 0 | — | 1 | 0 | — |
| 2016/17 | FA Trophy | Stocksbridge Park Steels | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2015/16 | FA Trophy | Stocksbridge Park Steels | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
