Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Reading | 2025/26 – 2026/27 | 33 | 25 | 3 |
| Wrexham | 2023/24 – 2025/26 | 50 | 7 | 0 |
| Fleetwood | 2022/23 – 2023/24 | 48 | 13 | 2 |
| Peterborough | 2017/18 – 2022/23 | 114 | 49 | 2 |
| Derby | 2018/19 – 2020/21 | 86 | 17 | 6 |
| Sheffield Wed | 2020/21 | 13 | 0 | — |
| Luton | 2015/16 – 2016/17 | 91 | 28 | — |
| Ipswich | 2012/13 – 2014/15 | 2 | 0 | — |
| Woking | 2013/14 – 2014/15 | 33 | 14 | — |
| Colchester | 2014/15 | 5 | 1 | — |
| Carlisle | 2014/15 | 5 | 0 | — |
| Gillingham | 2013/14 | 1 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Feb 2024 | Fleetwood Town | Wrexham | — |
| 30 Jan 2023 | Peterborough | Fleetwood Town | — |
| 2 Jul 2021 | Derby | Peterborough | Free |
| 1 Jul 2021 | Sheffield Wednesday | Derby | — |
| 16 Oct 2020 | Derby | Sheffield Wednesday | Loan |
| 26 Jul 2018 | Peterborough | Derby | € 3.4M |
| 28 Jun 2017 | Luton | Peterborough | — |
| 1 Jul 2015 | Ipswich | Luton | Free |
| 1 Jun 2015 | Colchester | Ipswich | — |
| 20 Jan 2015 | Ipswich | Colchester | Loan |
| 26 Sept 2014 | Ipswich | Woking | Loan |
| 21 Sept 2014 | Carlisle | Ipswich | — |
| 19 Aug 2014 | Ipswich | Carlisle | Loan |
| 17 Apr 2014 | Woking | Ipswich | — |
| 30 Jan 2014 | Ipswich | Woking | Loan |
| 26 Jan 2014 | Gillingham | Ipswich | — |
| 3 Jan 2014 | Ipswich | Gillingham | Loan |
| 8 Nov 2013 | Ipswich | Woking | Loan |
| 26 Aug 2025 | Wrexham | Reading | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Reading | 1 | 0 | 26 | 0 | 0 | 0 | 0 | 5.90 |
| 2026/27 | League One | Reading | 7 | 7 | 516 | 8 | 0 | 0 | 0 | 7.54 |
| 2025/26 | League Cup | Wrexham | 1 | 0 | 22 | 0 | 0 | 0 | 0 | 6.90 |
| 2025/26 | EFL Trophy | Reading | 1 | 1 | 71 | 1 | 0 | 0 | 0 | 7.30 |
| 2025/26 | League One | Reading | 24 | 20 | 1770 | 16 | 3 | 0 | 0 | 7.01 |
| 2024/25 | League One | Wrexham | 26 | 9 | 796 | 6 | 0 | 0 | 0 | 6.66 |
| 2024/25 | FA Cup | Wrexham | 2 | 1 | 74 | — | 0 | 0 | 0 | 6.45 |
| 2024/25 | League Cup | Wrexham | 1 | 0 | 28 | 0 | 0 | 1 | 0 | 6.20 |
| 2024/25 | EFL Trophy | Wrexham | 3 | 2 | 136 | 0 | 0 | 0 | 0 | 6.45 |
| 2023/24 | League Two | Wrexham | 17 | 3 | 329 | 1 | — | 0 | 0 | 6.59 |
| 2023/24 | League One | Fleetwood | 24 | 20 | 1614 | 5 | — | 2 | 0 | 6.74 |
| 2023/24 | League Cup | Fleetwood | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.70 |
| 2023/24 | EFL Trophy | Fleetwood | 2 | 1 | 84 | 0 | — | 1 | 0 | 6.50 |
| 2023/24 | FA Cup | Fleetwood | 2 | 2 | 177 | 0 | — | 0 | 0 | — |
| 2022/23 | League One | Fleetwood | 19 | 16 | 1398 | 8 | 2 | 2 | 0 | 7.15 |
| 2022/23 | League One | Peterborough | 21 | 9 | 831 | 4 | 2 | 1 | 0 | 7.15 |
| 2022/23 | League Cup | Peterborough | 1 | 0 | 34 | 0 | — | 0 | 0 | 6.20 |
| 2022/23 | EFL Trophy | Peterborough | 3 | 1 | 176 | 1 | — | 0 | 0 | 7.00 |
| 2022/23 | FA Cup | Peterborough | 3 | 2 | 219 | 2 | — | 1 | 0 | 8.70 |
| 2021/22 | Championship | Peterborough | 28 | 16 | 1371 | 9 | — | 3 | 0 | 6.73 |
| 2021/22 | FA Cup | Peterborough | 2 | 1 | 84 | 0 | — | 0 | 0 | 6.50 |
| 2020/21 | Championship | Sheffield Wed | 12 | 4 | 387 | 0 | — | 0 | 0 | 6.60 |
| 2020/21 | FA Cup | Sheffield Wed | 1 | 0 | 10 | 0 | — | 0 | 0 | 6.20 |
| 2020/21 | League Cup | Derby | 2 | 1 | 91 | 0 | — | 0 | 0 | 6.90 |
| 2020/21 | Championship | Derby | 4 | 3 | 202 | 1 | — | 0 | 0 | 6.60 |
| 2019/20 | Championship | Derby | 32 | 10 | 1123 | 2 | 2 | 0 | 0 | 6.59 |
| 2019/20 | League Cup | Derby | 2 | 1 | 122 | 0 | — | 0 | 0 | 6.75 |
| 2019/20 | FA Cup | Derby | 3 | 2 | 167 | 1 | — | 0 | 0 | 6.50 |
| 2018/19 | Championship | Derby | 36 | 19 | 1959 | 10 | 4 | 3 | 0 | 6.81 |
| 2018/19 | League Cup | Derby | 4 | 3 | 254 | 2 | — | 0 | 0 | 7.17 |
| 2018/19 | FA Cup | Derby | 3 | 2 | 210 | 1 | — | 1 | 0 | 6.63 |
| 2017/18 | League One | Peterborough | 44 | 44 | 3922 | 27 | — | 1 | 0 | — |
| 2017/18 | League Cup | Peterborough | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Peterborough | 5 | 3 | 305 | 1 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Peterborough | 6 | 6 | 519 | 5 | — | 2 | 0 | 7.05 |
| 2016/17 | League Two | Luton | 40 | 25 | 2173 | 8 | — | 1 | 0 | — |
| 2016/17 | League Cup | Luton | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Luton | 3 | 1 | 87 | 2 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Luton | 2 | 1 | 128 | 2 | — | 0 | 0 | — |
| 2015/16 | League Two | Luton | 40 | 21 | 2049 | 14 | — | 2 | 0 | — |
| 2015/16 | League Cup | Luton | 1 | 1 | 80 | 2 | — | 0 | 0 | — |
| 2015/16 | EFL Trophy | Luton | 2 | 2 | 171 | 0 | — | 0 | 1 | — |
| 2015/16 | FA Cup | Luton | 1 | 1 | 60 | 0 | — | 0 | 0 | — |
| 2014/15 | League One | Colchester | 5 | 0 | 29 | 1 | — | 0 | 0 | — |
| 2014/15 | National League | Woking | 19 | 15 | 1243 | 4 | — | 0 | 0 | — |
| 2014/15 | League Two | Carlisle | 4 | 3 | 213 | 0 | — | 0 | 0 | — |
| 2014/15 | FA Cup | Woking | 2 | 1 | 94 | 0 | — | 0 | 0 | — |
| 2014/15 | FA Trophy | Woking | 3 | 3 | 270 | 1 | — | 0 | 0 | — |
| 2014/15 | EFL Trophy | Carlisle | 1 | 0 | 4 | 0 | — | 0 | 0 | — |
| 2014/15 | League Cup | Ipswich | 1 | 1 | 63 | 0 | — | 0 | 0 | — |
| 2013/14 | League One | Gillingham | 1 | 0 | 11 | 0 | — | 0 | 0 | — |
| 2013/14 | FA Trophy | Woking | 2 | 2 | 180 | 1 | — | 0 | 0 | — |
| 2013/14 | National League | Woking | 7 | 7 | 616 | 8 | — | 1 | 0 | — |
| 2012/13 | Championship | Ipswich | 1 | 0 | 29 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Appendicitis | 18 Jul 2025 | 12 Aug 2025 | 25 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2023/2024 | 2nd Place |
| League One (England) | 2024/2025 | 2nd Place |
