Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Swindon | 2025/26 – 2026/27 | 29 | 2 | 0 |
| Wycombe | 2020/21 – 2024/25 | 128 | 10 | 5 |
| Warriors | 2024/25 | 12 | 1 | — |
| Hull City | 2019/20 | 19 | 3 | — |
| Peterborough | 2016/17 – 2018/19 | 131 | 7 | — |
| Mansfield | 2012/13 – 2015/16 | 118 | 9 | — |
| Salisbury City | 2009/10 – 2010/11 | 9 | 0 | — |
| Southampton | 2010/11 | 0 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 2 Sept 2020 | Hull City | Wycombe | — |
| 18 Jul 2019 | Peterborough | Hull City | Free |
| 1 Jul 2016 | Mansfield Town | Peterborough | Free |
| 15 Aug 2011 | Southampton | Eastleigh | Free |
| 1 Jul 2025 | Dinamo Tirana | Wycombe | Back from Loan |
| 24 Jan 2025 | Wycombe | Dinamo Tirana | Loan |
| 24 Jan 2025 | Wycombe | Warriors | Loan |
| 1 Jul 2025 | Warriors | Wycombe | Back from Loan |
| 28 Aug 2025 | Wycombe | Swindon Town | Transfer |
| 26 Jan 2025 | Wycombe | Warriors | Loan |
| 29 Jun 2025 | Warriors | Wycombe | Return from loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Swindon | 1 | 0 | 45 | 0 | 0 | 0 | 0 | 6.70 |
| 2026/27 | League Two | Swindon | 4 | 3 | 230 | 0 | 0 | 0 | 0 | 6.83 |
| 2025/26 | EFL Trophy | Swindon | 1 | 1 | 45 | 0 | 0 | 0 | 0 | 7.00 |
| 2025/26 | FA Cup | Swindon | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.70 |
| 2025/26 | League Two | Swindon | 22 | 20 | 1644 | 2 | 0 | 3 | 0 | 7.23 |
| 2024/25 | Premier League | Warriors | 11 | 11 | 959 | 1 | — | 5 | 0 | — |
| 2024/25 | League One | Wycombe | 1 | 1 | 57 | 0 | 0 | 1 | 0 | 6.90 |
| 2024/25 | FA Cup | Warriors | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2024/25 | League Cup | Wycombe | 1 | 1 | 86 | 0 | 0 | 0 | 0 | 7.30 |
| 2024/25 | EFL Trophy | Wycombe | 2 | 2 | 151 | 0 | 0 | 0 | 0 | 6.50 |
| 2024/25 | FA Cup | Wycombe | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2023/24 | League One | Wycombe | 32 | 26 | 2309 | 1 | 1 | 4 | 0 | 6.89 |
| 2023/24 | League Cup | Wycombe | 1 | 1 | 77 | 0 | — | 1 | 0 | 6.90 |
| 2023/24 | EFL Trophy | Wycombe | 3 | 3 | 270 | 0 | — | 0 | 0 | 7.05 |
| 2023/24 | FA Cup | Wycombe | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2022/23 | League One | Wycombe | 25 | 23 | 2020 | 2 | — | 3 | 0 | 6.96 |
| 2022/23 | FA Cup | Wycombe | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | League One | Wycombe | 36 | 36 | 3226 | 5 | 1 | 7 | 0 | 7.22 |
| 2021/22 | League Cup | Wycombe | 2 | 2 | 136 | 0 | 1 | 0 | 0 | 6.80 |
| 2020/21 | Championship | Wycombe | 20 | 17 | 1566 | 2 | 2 | 2 | 1 | 6.83 |
| 2020/21 | FA Cup | Wycombe | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.30 |
| 2019/20 | Championship | Hull City | 15 | 7 | 812 | 2 | — | 0 | 0 | 6.79 |
| 2019/20 | League Cup | Hull City | 2 | 2 | 180 | 1 | — | 0 | 0 | 8.00 |
| 2019/20 | FA Cup | Hull City | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.80 |
| 2018/19 | League One | Peterborough | 37 | 35 | 3114 | 1 | — | 4 | 1 | — |
| 2018/19 | League Cup | Peterborough | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | EFL Trophy | Peterborough | 5 | 5 | 450 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Peterborough | 4 | 4 | 390 | 0 | — | 0 | 0 | — |
| 2017/18 | League One | Peterborough | 33 | 32 | 2642 | 1 | — | 8 | 0 | — |
| 2017/18 | League Cup | Peterborough | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Peterborough | 6 | 6 | 540 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Peterborough | 6 | 6 | 527 | 2 | — | 0 | 0 | 6.50 |
| 2016/17 | League One | Peterborough | 31 | 30 | 2583 | 3 | — | 3 | 1 | — |
| 2016/17 | EFL Trophy | Peterborough | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Peterborough | 4 | 4 | 360 | 0 | — | 1 | 0 | 6.70 |
| 2015/16 | League Two | Mansfield | 44 | 44 | 3840 | 5 | — | 7 | 0 | — |
| 2015/16 | League Cup | Mansfield | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2015/16 | FA Cup | Mansfield | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2014/15 | League Two | Mansfield | 36 | 35 | 3060 | 1 | — | 7 | 0 | — |
| 2014/15 | League Cup | Mansfield | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | EFL Trophy | Mansfield | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | FA Cup | Mansfield | 4 | 4 | 360 | 0 | — | 1 | 0 | — |
| 2013/14 | League Two | Mansfield | 24 | 24 | 2086 | 2 | — | 4 | 0 | — |
| 2012/13 | National League | Mansfield | 5 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2010/11 | FA Trophy | Salisbury City | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2009/10 | FA Cup | Salisbury City | 1 | 1 | 73 | 0 | — | 1 | 0 | — |
| 2009/10 | National League | Salisbury City | 5 | 5 | 450 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Achilles Strain | 4 Sept 2025 | 12 Sept 2025 | 8 |
Trophies
| Competition | Season | Place |
|---|---|---|
| National League (England) | 2012/2013 | Winner |
| EFL Trophy (England) | 2023/2024 | 2nd Place |
| Premier League (Hong Kong, China) | 2024/2025 | 2nd Place |
| Senior Shield (Hong Kong, China) | 2024/2025 | 2nd Place |
| Sapling Cup (Hong Kong, China) | 2024/2025 | 2nd Place |
