Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Plymouth | 2019/20 – 2026/27 | 26 | 3 | 3 |
| Leyton Orient | 2025/26 | 43 | 2 | 2 |
| Wycombe | 2024/25 | 43 | 0 | 0 |
| Sheffield Wed | 2022/23 – 2023/24 | 58 | 2 | 1 |
| Charlton | 2023/24 | 18 | 1 | — |
| Bristol City | 2017/18 – 2021/22 | 54 | 5 | 1 |
| Ipswich | 2021/22 | 17 | 2 | — |
| Newport | 2018/19 | 42 | 1 | — |
| Luton | 2015/16 – 2017/18 | 6 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2024 | Charlton | Wycombe | Free |
| 5 Jan 2024 | Sheffield Wednesday | Charlton | Loan |
| 21 Jul 2022 | Bristol City | Sheffield Wednesday | — |
| 1 Jul 2022 | Ipswich | Bristol City | — |
| 20 Jan 2022 | Bristol City | Ipswich | Loan |
| 27 Jul 2018 | Bristol City | Newport County | Loan |
| 23 Oct 2017 | Luton | Bristol City | — |
| 11 Jul 2025 | Wycombe | Leyton Orient | Transfer |
| 23 Aug 2026 | Leyton Orient | Plymouth | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Plymouth | 1 | 1 | 74 | 0 | 0 | 0 | 0 | 6.50 |
| 2026/27 | EFL Trophy | Plymouth | 2 | 1 | 120 | 1 | 0 | 0 | 0 | 7.55 |
| 2026/27 | League One | Plymouth | 9 | 7 | 602 | 0 | 1 | 0 | 0 | 6.47 |
| 2025/26 | League Cup | Leyton Orient | 1 | 1 | 90 | 0 | 0 | 1 | 0 | 7.30 |
| 2025/26 | EFL Trophy | Leyton Orient | 3 | 2 | 177 | 0 | 0 | 0 | 0 | 6.43 |
| 2025/26 | FA Cup | Leyton Orient | 1 | 0 | 31 | 0 | 0 | 1 | 0 | 6.20 |
| 2025/26 | League One | Leyton Orient | 38 | 28 | 2586 | 2 | 2 | 3 | 0 | 6.84 |
| 2024/25 | League One | Wycombe | 37 | 23 | 913 | — | 0 | 5 | 0 | 6.54 |
| 2024/25 | FA Cup | Wycombe | 1 | 1 | 120 | — | 0 | 1 | 0 | 7.20 |
| 2024/25 | League Cup | Wycombe | 3 | 3 | 238 | — | 0 | 1 | 0 | 6.70 |
| 2024/25 | EFL Trophy | Wycombe | 2 | 2 | 136 | 0 | 0 | 0 | 0 | 7.10 |
| 2023/24 | League One | Charlton | 18 | 14 | 868 | 1 | — | 5 | 0 | 6.75 |
| 2023/24 | Championship | Sheffield Wed | 8 | 3 | 287 | 0 | — | 0 | 0 | 6.43 |
| 2023/24 | League Cup | Sheffield Wed | 2 | 1 | 91 | 1 | — | 1 | 0 | 7.40 |
| 2022/23 | League One | Sheffield Wed | 42 | 27 | 1303 | 1 | 1 | 1 | 0 | 6.74 |
| 2022/23 | League Cup | Sheffield Wed | 2 | 2 | 166 | 0 | — | 1 | 0 | 7.15 |
| 2022/23 | EFL Trophy | Sheffield Wed | 1 | 1 | 82 | 0 | — | 1 | 0 | — |
| 2022/23 | FA Cup | Sheffield Wed | 3 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2021/22 | League One | Ipswich | 17 | 14 | 1292 | 2 | — | 5 | 0 | 7.04 |
| 2021/22 | Championship | Bristol City | 13 | 10 | 855 | 1 | — | 3 | 0 | 6.68 |
| 2021/22 | League Cup | Bristol City | 1 | 0 | 51 | 0 | — | 0 | 0 | 7.00 |
| 2020/21 | Championship | Bristol City | 34 | 20 | 2054 | 4 | 1 | 2 | 0 | 6.62 |
| 2020/21 | League Cup | Bristol City | 3 | 1 | 93 | 0 | — | 0 | 0 | 6.77 |
| 2020/21 | FA Cup | Bristol City | 2 | 2 | 171 | 0 | — | 0 | 0 | 6.95 |
| 2019/20 | League Two | Plymouth | 14 | 12 | 1138 | 2 | 2 | 1 | 0 | 7.02 |
| 2018/19 | League Two | Newport | 31 | 26 | 2325 | 1 | — | 1 | 0 | — |
| 2018/19 | League Cup | Newport | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2018/19 | EFL Trophy | Newport | 2 | 1 | 98 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Newport | 7 | 6 | 512 | 0 | — | 0 | 0 | 6.37 |
| 2017/18 | League Cup | Bristol City | 1 | 0 | 10 | 0 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Luton | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Luton | 4 | 3 | 271 | 0 | — | 0 | 0 | — |
| 2015/16 | League Two | Luton | 1 | 0 | 14 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
