Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Swindon | 2024/25 – 2026/27 | 76 | 3 | 3 |
| Mansfield | 2023/24 – 2024/25 | 26 | 3 | 5 |
| Gillingham | 2022/23 – 2023/24 | 55 | 9 | 12 |
| Crawley | 2020/21 – 2022/23 | 109 | 29 | 20 |
| Bristol Rovers | 2017/18 – 2019/20 | 117 | 9 | 2 |
| Cheltenham | 2019/20 | 7 | 0 | — |
| Peterborough | 2015/16 – 2017/18 | 58 | 14 | — |
| Exeter | 2010/11 – 2015/16 | 111 | 34 | — |
| Dorchester Town | 2011/12 – 2012/13 | 17 | 9 | — |
| Bath City | 2012/13 | 7 | 1 | — |
| Hereford United | 2012/13 | 9 | 1 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Feb 2024 | Gillingham | Mansfield Town | — |
| 1 Jan 2023 | Crawley Town | Gillingham | — |
| 7 Sept 2020 | Bristol Rovers | Crawley Town | Free |
| 1 Feb 2020 | Bristol Rovers | Cheltenham | Loan |
| 17 Jul 2017 | Peterborough | Bristol Rovers | — |
| 1 Feb 2016 | Exeter City | Peterborough | — |
| 1 Jul 2013 | Dorchester Town | Exeter City | — |
| 18 Mar 2013 | Exeter City | Dorchester Town | Loan |
| 22 Nov 2012 | Exeter City | Bath City | Loan |
| 1 Aug 2012 | Exeter City | Hereford United | Loan |
| 6 Jan 2012 | Exeter City | Dorchester Town | Loan |
| 10 Jan 2025 | Mansfield Town | Swindon Town | Loan |
| 1 Jul 2025 | Mansfield Town | Swindon Town | Free Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Swindon | 1 | 1 | 58 | 0 | 0 | 0 | 0 | 6.50 |
| 2026/27 | EFL Trophy | Swindon | 1 | 1 | 139 | 0 | 0 | 0 | 0 | 6.28 |
| 2026/27 | League Two | Swindon | 8 | 4 | 389 | 0 | 0 | 1 | 0 | 5.81 |
| 2025/26 | EFL Trophy | Swindon | 3 | 0 | 45 | 0 | 0 | 0 | 0 | 6.45 |
| 2025/26 | FA Cup | Swindon | 3 | 3 | 77 | 0 | 0 | 0 | 0 | 6.90 |
| 2025/26 | League Two | Swindon | 40 | 33 | 2685 | 1 | 0 | 9 | 0 | 6.72 |
| 2024/25 | League Two | Swindon | 20 | 16 | 1305 | 2 | 2 | 2 | 0 | 6.87 |
| 2024/25 | League One | Mansfield | 5 | 1 | 80 | 0 | 0 | 1 | 0 | 6.60 |
| 2024/25 | League Cup | Mansfield | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 7.30 |
| 2024/25 | EFL Trophy | Mansfield | 2 | 2 | 180 | 0 | 1 | 0 | 0 | 7.15 |
| 2023/24 | League Two | Mansfield | 18 | 9 | 867 | 3 | 4 | 1 | 0 | 6.72 |
| 2023/24 | League Two | Gillingham | 25 | 14 | 1352 | 1 | 4 | 3 | 0 | 6.72 |
| 2023/24 | FA Cup | Gillingham | 3 | 0 | 61 | 1 | — | 0 | 0 | 6.30 |
| 2023/24 | League Cup | Gillingham | 2 | 0 | 37 | 1 | — | 0 | 0 | 7.30 |
| 2023/24 | EFL Trophy | Gillingham | 2 | 2 | 151 | 0 | 1 | 0 | 0 | 7.35 |
| 2022/23 | League Two | Gillingham | 23 | 21 | 1777 | 6 | 6 | 3 | 0 | 6.93 |
| 2022/23 | League Two | Crawley | 19 | 19 | 1662 | 2 | 6 | 2 | 0 | 6.93 |
| 2022/23 | League Cup | Crawley | 3 | 2 | 187 | 2 | 1 | 0 | 0 | 7.10 |
| 2022/23 | FA Cup | Crawley | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | League Two | Crawley | 39 | 35 | 3159 | 10 | 4 | 6 | 0 | 6.90 |
| 2021/22 | FA Cup | Crawley | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | League Two | Crawley | 43 | 42 | 3744 | 11 | 8 | 5 | 1 | 7.00 |
| 2020/21 | FA Cup | Crawley | 3 | 3 | 300 | 4 | 1 | 2 | 0 | 7.25 |
| 2019/20 | League Two | Cheltenham | 7 | 2 | 217 | 0 | — | 1 | 0 | 6.60 |
| 2019/20 | League One | Bristol Rovers | 19 | 12 | 1004 | 2 | 2 | 1 | 0 | 6.79 |
| 2019/20 | League Cup | Bristol Rovers | 2 | 1 | 98 | 1 | — | 0 | 0 | 7.00 |
| 2019/20 | EFL Trophy | Bristol Rovers | 3 | 2 | 195 | 1 | — | 0 | 0 | — |
| 2019/20 | FA Cup | Bristol Rovers | 4 | 3 | 252 | 0 | — | 1 | 0 | 6.20 |
| 2018/19 | League One | Bristol Rovers | 36 | 26 | 2147 | 1 | — | 5 | 0 | — |
| 2018/19 | FA Cup | Bristol Rovers | 2 | 2 | 180 | 1 | — | 1 | 0 | — |
| 2018/19 | League Cup | Bristol Rovers | 1 | 0 | 23 | 0 | — | 0 | 0 | — |
| 2018/19 | EFL Trophy | Bristol Rovers | 5 | 3 | 265 | 1 | — | 2 | 0 | — |
| 2017/18 | League One | Bristol Rovers | 39 | 18 | 1714 | 1 | — | 1 | 0 | — |
| 2017/18 | League Cup | Bristol Rovers | 3 | 2 | 205 | 0 | — | 0 | 0 | 6.75 |
| 2017/18 | EFL Trophy | Bristol Rovers | 2 | 1 | 99 | 1 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Bristol Rovers | 1 | 1 | 82 | 0 | — | 0 | 0 | — |
| 2016/17 | League One | Peterborough | 43 | 37 | 3035 | 10 | — | 4 | 0 | — |
| 2016/17 | League Cup | Peterborough | 2 | 1 | 124 | 2 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Peterborough | 2 | 1 | 119 | 0 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Peterborough | 4 | 3 | 285 | 1 | — | 0 | 0 | 7.20 |
| 2015/16 | League One | Peterborough | 7 | 5 | 459 | 1 | — | 0 | 0 | — |
| 2015/16 | League Two | Exeter | 23 | 19 | 1603 | 10 | — | 2 | 0 | — |
| 2015/16 | EFL Trophy | Exeter | 1 | 0 | 36 | 0 | — | 0 | 0 | — |
| 2015/16 | FA Cup | Exeter | 4 | 2 | 214 | 2 | — | 1 | 0 | — |
| 2015/16 | League Cup | Exeter | 1 | 1 | 75 | 0 | — | 0 | 0 | — |
| 2014/15 | League Two | Exeter | 36 | 24 | 2224 | 15 | — | 4 | 1 | — |
| 2014/15 | League Cup | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | EFL Trophy | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | FA Cup | Exeter | 1 | 0 | 16 | 0 | — | 0 | 0 | — |
| 2013/14 | League Two | Exeter | 28 | 19 | 1727 | 6 | — | 1 | 0 | — |
| 2013/14 | FA Cup | Exeter | 1 | 0 | 13 | 0 | — | 0 | 0 | — |
| 2012/13 | National League N / S | Dorchester Town | 5 | 5 | 353 | 1 | — | 0 | 0 | — |
| 2012/13 | National League N / S | Bath City | 6 | 6 | 523 | 1 | — | 0 | 0 | — |
| 2012/13 | League Two | Exeter | 3 | 0 | 18 | 0 | — | 0 | 0 | — |
| 2012/13 | National League | Hereford United | 9 | 4 | 446 | 1 | — | 1 | 0 | — |
| 2012/13 | FA Trophy | Bath City | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2011/12 | National League N / S | Dorchester Town | 12 | 11 | 997 | 8 | — | 0 | 0 | — |
| 2011/12 | League Cup | Exeter | 2 | 0 | 27 | 0 | — | 0 | 0 | — |
| 2011/12 | FA Cup | Exeter | 1 | 0 | 20 | 0 | — | 1 | 0 | — |
| 2011/12 | EFL Trophy | Exeter | 2 | 2 | 143 | 0 | — | 0 | 0 | — |
| 2011/12 | League One | Exeter | 5 | 1 | 191 | 1 | — | 0 | 0 | — |
| 2010/11 | League One | Exeter | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Injury | 26 Apr 2025 | 1 May 2025 | 5 |
Trophies
No trophies recorded.
