Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Forest Green | 2023/24 – 2025/26 | 86 | 6 | 2 |
| Charlton | 2020/21 – 2022/23 | 73 | 4 | 4 |
| Crystal Palace | 2011/12 – 2020/21 | 2 | 0 | — |
| Newport | 2019/20 | 29 | 1 | 1 |
| Dundee | 2018/19 | 13 | 0 | — |
| Colchester | 2017/18 | 19 | 0 | — |
| Southend | 2016/17 | 12 | 0 | — |
| Port Vale | 2014/15 – 2015/16 | 22 | 0 | — |
| Yeovil Town | 2014/15 | 6 | 0 | — |
| Gillingham | 2013/14 | 3 | 0 | — |
| Luton | 2013/14 | 3 | 1 | — |
| Cheltenham | 2013/14 | 4 | 0 | — |
| England U17 | 2012 | 5 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2023 | Charlton | Forest Green | Free |
| 13 Oct 2020 | Crystal Palace | Charlton | — |
| 1 Jul 2020 | Newport County | Crystal Palace | — |
| 31 Aug 2018 | Crystal Palace | Dundee | Loan |
| 1 Jul 2018 | Colchester | Crystal Palace | — |
| 10 Jan 2014 | Crystal Palace | Luton | Loan |
| 1 Oct 2013 | Cheltenham | Crystal Palace | — |
| 30 Jun 2026 | Forest Green | AFC Hornchurch | Free agent |
| 29 Jun 2026 | Forest Green | AFC Hornchurch | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | FA Cup | Forest Green | 1 | 0 | 31 | 0 | 0 | 0 | 0 | 6.30 |
| 2024/25 | National League | Forest Green | 42 | 40 | 3530 | 6 | — | 4 | 1 | — |
| 2024/25 | FA Trophy | Forest Green | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2024/25 | FA Cup | Forest Green | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2024/25 | National League Cup | Forest Green | 2 | 2 | 136 | 0 | — | 0 | 0 | — |
| 2023/24 | League Two | Forest Green | 36 | 34 | 3111 | 0 | 2 | 10 | 0 | 6.85 |
| 2023/24 | FA Cup | Forest Green | 1 | 1 | 76 | 0 | — | 0 | 0 | — |
| 2023/24 | EFL Trophy | Forest Green | 1 | 1 | 67 | 0 | — | 1 | 0 | 7.00 |
| 2022/23 | League One | Charlton | 37 | 36 | 2973 | 2 | 2 | 9 | 4 | 6.94 |
| 2022/23 | League Cup | Charlton | 4 | 4 | 298 | — | — | 0 | 0 | 6.92 |
| 2022/23 | FA Cup | Charlton | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | League One | Charlton | 15 | 12 | 1020 | 1 | 2 | 5 | 1 | 6.69 |
| 2021/22 | EFL Trophy | Charlton | 1 | 1 | 77 | 0 | — | 0 | 0 | 7.30 |
| 2021/22 | FA Cup | Charlton | 1 | 1 | 70 | 0 | — | 1 | 0 | — |
| 2020/21 | League One | Charlton | 13 | 12 | 1064 | 1 | — | 3 | 0 | 7.22 |
| 2020/21 | FA Cup | Charlton | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | League Cup | Crystal Palace | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.20 |
| 2019/20 | League Two | Newport | 22 | 21 | 1808 | 1 | 1 | 7 | 1 | 6.85 |
| 2019/20 | EFL Trophy | Newport | 4 | 3 | 301 | 0 | — | 0 | 1 | 7.25 |
| 2019/20 | FA Cup | Newport | 3 | 3 | 270 | 0 | — | 0 | 0 | 7.20 |
| 2018/19 | Premiership | Dundee | 11 | 9 | 842 | 0 | — | 3 | 0 | — |
| 2018/19 | Scottish Cup | Dundee | 2 | 2 | 121 | 0 | — | 0 | 0 | — |
| 2018/19 | League Cup | Crystal Palace | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.30 |
| 2017/18 | League Two | Colchester | 18 | 18 | 1524 | 0 | — | 1 | 0 | — |
| 2017/18 | FA Cup | Colchester | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | League One | Southend | 10 | 8 | 604 | 0 | — | 5 | 0 | — |
| 2016/17 | EFL Trophy | Southend | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Southend | 1 | 1 | 81 | 0 | — | 0 | 0 | — |
| 2015/16 | League One | Port Vale | 15 | 12 | 1003 | 0 | — | 3 | 0 | — |
| 2015/16 | League Cup | Port Vale | 2 | 1 | 164 | 0 | — | 0 | 0 | — |
| 2014/15 | League One | Port Vale | 5 | 5 | 396 | 0 | — | 5 | 0 | — |
| 2014/15 | League One | Yeovil Town | 6 | 4 | 350 | 0 | — | 0 | 1 | — |
| 2013/14 | League One | Gillingham | 3 | 3 | 147 | 0 | — | 0 | 0 | — |
| 2013/14 | National League | Luton | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2013/14 | League Two | Cheltenham | 2 | 2 | 122 | 0 | — | 0 | 0 | — |
| 2013/14 | FA Trophy | Luton | 2 | 2 | 180 | 1 | — | 0 | 0 | — |
| 2013/14 | EFL Trophy | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2013/14 | League Cup | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2012 | UEFA U17 Championship | England U17 | 5 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2012/13 | UEFA U17 Championship | 5 | 4 | 360 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
