Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Fleetwood | 2014/15 – 2026/27 | 205 | 14 | 15 |
| Stockport | 2025/26 | 7 | 0 | 1 |
| Exeter | 2025/26 | 24 | 0 | 1 |
| Cambridge | 2012/13 – 2024/25 | 93 | 4 | 3 |
| Doncaster | 2017/18 – 2018/19 | 62 | 5 | 1 |
| Grimsby | 2016/17 | 50 | 0 | — |
| Macclesfield | 2013/14 | 52 | 6 | — |
| Cheltenham | 2009/10 – 2012/13 | 70 | 4 | — |
| Gloucester City | 2012/13 | 26 | 4 | — |
| Mansfield | 2011/12 | 6 | 0 | — |
| Peterborough | 2009/10 | 2 | 0 | — |
| Kidderminster Harriers | 2009/10 | 8 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2023 | Fleetwood Town | Cambridge United | Free |
| 1 Jul 2019 | Doncaster | Fleetwood Town | Free |
| 1 Jul 2017 | Grimsby | Doncaster | Free |
| 1 Jul 2016 | Fleetwood Town | Grimsby | Free |
| 1 Jul 2014 | Macclesfield | Fleetwood Town | — |
| 14 Dec 2012 | Cheltenham | Gloucester City | Loan |
| 14 Sept 2012 | Cheltenham | Cambridge United | Loan |
| 9 Mar 2012 | Cheltenham | Mansfield Town | Loan |
| 31 Aug 2025 | Stockport County | Exeter City | Free agent |
| 1 Aug 2025 | Cambridge United | Stockport County | Free agent |
| 29 Jun 2026 | Exeter City | Fleetwood Town | Free agent |
| 30 Jun 2026 | Exeter City | Fleetwood Town | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Fleetwood | 3 | 2 | 173 | 0 | 0 | 0 | 0 | 6.78 |
| 2026/27 | League Two | Fleetwood | 7 | 3 | 302 | 0 | 0 | 0 | 0 | 6.80 |
| 2025/26 | League Cup | Stockport | 2 | 2 | 180 | 0 | 0 | 1 | 0 | 7.05 |
| 2025/26 | EFL Trophy | Exeter | 3 | 1 | 123 | 0 | 0 | 0 | 0 | 6.53 |
| 2025/26 | League One | Stockport | 5 | 1 | 179 | 0 | 1 | 1 | 0 | 6.90 |
| 2025/26 | League One | Exeter | 21 | 17 | 1546 | 0 | 1 | 3 | 0 | 6.87 |
| 2024/25 | League One | Cambridge | 32 | 25 | 2284 | 1 | 2 | 7 | 0 | 6.81 |
| 2024/25 | FA Cup | Cambridge | 2 | 1 | 164 | 0 | — | 1 | 0 | — |
| 2024/25 | League Cup | Cambridge | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 7.30 |
| 2024/25 | EFL Trophy | Cambridge | 3 | 3 | 270 | 0 | 0 | 0 | 0 | 7.30 |
| 2023/24 | League One | Cambridge | 45 | 45 | 3899 | 2 | 1 | 9 | 0 | 6.89 |
| 2023/24 | League Cup | Cambridge | 1 | 0 | 19 | 0 | — | 0 | 0 | 6.90 |
| 2023/24 | FA Cup | Cambridge | 3 | 3 | 228 | 1 | — | 0 | 0 | — |
| 2022/23 | League One | Fleetwood | 30 | 26 | 2324 | 1 | 2 | 6 | 0 | 6.89 |
| 2022/23 | EFL Trophy | Fleetwood | 1 | 0 | 37 | 0 | — | 0 | 0 | — |
| 2022/23 | FA Cup | Fleetwood | 6 | 6 | 495 | 0 | 1 | 1 | 0 | 7.03 |
| 2022/23 | League Cup | Fleetwood | 2 | 2 | 180 | 0 | — | 1 | 0 | 6.80 |
| 2021/22 | League One | Fleetwood | 39 | 39 | 3410 | 6 | 7 | 5 | 0 | 6.99 |
| 2021/22 | EFL Trophy | Fleetwood | 2 | 2 | 171 | 0 | — | 0 | 0 | 5.90 |
| 2021/22 | League Cup | Fleetwood | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.20 |
| 2021/22 | FA Cup | Fleetwood | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | League One | Fleetwood | 45 | 45 | 4027 | 2 | 1 | 10 | 0 | 6.82 |
| 2020/21 | FA Cup | Fleetwood | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | EFL Trophy | Fleetwood | 1 | 1 | 90 | 0 | 2 | 0 | 0 | 8.20 |
| 2020/21 | League Cup | Fleetwood | 3 | 3 | 270 | 0 | 1 | 0 | 0 | 6.77 |
| 2019/20 | League One | Fleetwood | 37 | 36 | 3227 | 3 | 1 | 5 | 0 | 6.83 |
| 2019/20 | League Cup | Fleetwood | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.70 |
| 2019/20 | EFL Trophy | Fleetwood | 4 | 4 | 360 | 2 | — | 0 | 0 | 7.90 |
| 2019/20 | FA Cup | Fleetwood | 3 | 3 | 270 | 0 | — | 1 | 0 | 6.90 |
| 2018/19 | League One | Doncaster | 48 | 48 | 4326 | 4 | — | 5 | 0 | 6.85 |
| 2018/19 | League Cup | Doncaster | 2 | 2 | 180 | 1 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Doncaster | 6 | 6 | 540 | 0 | 1 | 1 | 0 | 6.60 |
| 2017/18 | League One | Doncaster | 4 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2017/18 | League Cup | Doncaster | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2016/17 | League Two | Grimsby | 46 | 46 | 4096 | 0 | — | 4 | 0 | — |
| 2016/17 | League Cup | Grimsby | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Grimsby | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2016/17 | FA Cup | Grimsby | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2015/16 | League One | Fleetwood | 9 | 8 | 752 | 0 | — | 1 | 0 | — |
| 2015/16 | League Cup | Fleetwood | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2014/15 | League One | Fleetwood | 7 | 6 | 489 | 0 | — | 0 | 0 | — |
| 2014/15 | EFL Trophy | Fleetwood | 1 | 0 | 23 | 0 | — | 0 | 0 | — |
| 2013/14 | National League | Macclesfield | 46 | 46 | 4140 | 5 | — | 7 | 0 | — |
| 2013/14 | FA Trophy | Macclesfield | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2013/14 | FA Cup | Macclesfield | 5 | 5 | 450 | 1 | — | 1 | 0 | — |
| 2012/13 | National League N / S | Gloucester City | 26 | 26 | 2340 | 4 | — | 0 | 0 | — |
| 2012/13 | National League | Cambridge | 6 | 6 | 516 | 0 | — | 1 | 0 | — |
| 2011/12 | National League | Mansfield | 6 | 1 | 231 | 0 | — | 3 | 0 | — |
| 2011/12 | League Two | Cheltenham | 10 | 10 | 883 | 0 | — | 3 | 0 | — |
| 2011/12 | League Cup | Cheltenham | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2011/12 | EFL Trophy | Cheltenham | 3 | 2 | 182 | 0 | — | 0 | 0 | — |
| 2010/11 | League Two | Cheltenham | 43 | 43 | 3858 | 4 | — | 6 | 0 | — |
| 2010/11 | League Cup | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2010/11 | FA Cup | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2010/11 | EFL Trophy | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2009/10 | Championship | Peterborough | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2009/10 | National League | Kidderminster Harriers | 8 | 8 | 688 | 0 | — | 0 | 0 | — |
| 2009/10 | League Two | Cheltenham | 10 | 9 | 815 | 0 | — | 1 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
