Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Wrexham | 2024/25 – 2025/26 | 11 | 0 | 0 |
| Plymouth | 2021/22 – 2024/25 | 32 | 0 | — |
| Cambridge | 2019/20 – 2020/21 | 50 | 0 | — |
| Chesterfield | 2018/19 | 24 | 0 | — |
| Hull City | 2017/18 | 0 | 0 | — |
| Salford | 2017/18 | 3 | 0 | — |
| Nuneaton Town | 2014/15 – 2016/17 | 9 | 0 | — |
| Shrewsbury | 2014/15 – 2016/17 | 1 | 0 | — |
| AFC Telford United | 2016/17 | 11 | 0 | — |
| Southport | 2014/15 | 4 | 0 | — |
| England U17 | 2013 | 1 | 0 | — |
| Workington | 2013/14 | 1 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 15 Jul 2024 | Plymouth | Wrexham | Free |
| 1 Jul 2021 | Cambridge United | Plymouth | Free |
| 1 Jul 2019 | Hull City | Cambridge United | — |
| 24 Aug 2018 | Hull City | Chesterfield | Loan |
| 9 Mar 2018 | Salford City | Hull City | — |
| 3 Nov 2017 | Hull City | Salford City | Loan |
| 1 Jul 2017 | Shrewsbury | Hull City | — |
| 24 Feb 2017 | Shrewsbury | AFC Telford United | Loan |
| 8 Nov 2016 | Nuneaton Town | Shrewsbury | — |
| 12 Aug 2016 | Shrewsbury | Nuneaton Town | Loan |
| 23 Feb 2015 | Southport | Shrewsbury | — |
| 17 Jan 2015 | Shrewsbury | Southport | Loan |
| 23 Dec 2014 | Shrewsbury | Nuneaton Town | Loan |
| 1 Jul 2014 | Workington | Shrewsbury | — |
| 20 Sept 2013 | Shrewsbury | Workington | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | League Cup | Wrexham | 2 | 2 | 180 | 0 | 0 | 0 | 0 | 7.05 |
| 2024/25 | League One | Wrexham | 4 | 4 | 293 | 0 | 0 | 0 | 0 | 7.35 |
| 2024/25 | FA Cup | Wrexham | 1 | 1 | — | — | — | 0 | 0 | — |
| 2024/25 | League Cup | Wrexham | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 7.20 |
| 2024/25 | EFL Trophy | Wrexham | 3 | 3 | 226 | 0 | 0 | 0 | 0 | 7.00 |
| 2023/24 | League Cup | Plymouth | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.45 |
| 2022/23 | League One | Plymouth | 18 | 17 | 1586 | 0 | — | 1 | 0 | 6.83 |
| 2022/23 | EFL Trophy | Plymouth | 8 | 8 | 780 | 0 | — | 0 | 0 | 7.43 |
| 2021/22 | EFL Trophy | Plymouth | 3 | 3 | 270 | 0 | — | 0 | 0 | 8.30 |
| 2021/22 | League Cup | Plymouth | 1 | 1 | 90 | 0 | — | 0 | 0 | 5.90 |
| 2020/21 | League Two | Cambridge | 27 | 26 | 2414 | 0 | — | 2 | 0 | 6.80 |
| 2020/21 | EFL Trophy | Cambridge | 5 | 5 | 450 | 0 | — | 0 | 0 | 7.06 |
| 2020/21 | League Cup | Cambridge | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.30 |
| 2019/20 | League Two | Cambridge | 10 | 10 | 900 | 0 | — | 0 | 0 | 6.89 |
| 2019/20 | League Cup | Cambridge | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.00 |
| 2019/20 | EFL Trophy | Cambridge | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2019/20 | FA Cup | Cambridge | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2018/19 | National League - Play-offs | Chesterfield | 19 | 19 | 1710 | 0 | — | 1 | 0 | — |
| 2018/19 | FA Trophy | Chesterfield | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Chesterfield | 4 | 4 | 360 | 0 | — | 0 | 0 | 6.70 |
| 2017/18 | National League N / S | Salford | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2016/17 | National League N / S | AFC Telford United | 11 | 11 | 990 | 0 | — | 0 | 0 | — |
| 2016/17 | National League N / S | Nuneaton Town | 6 | 6 | 540 | 0 | — | 0 | 0 | — |
| 2015/16 | League One | Shrewsbury | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | National League | Southport | 4 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2014/15 | National League | Nuneaton Town | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2013 | UEFA U17 Championship | England U17 | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2013/14 | National League N / S | Workington | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2013/14 | UEFA U17 Championship | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
