Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Rotherham | 2024/25 – 2026/27 | 85 | 0 | 0 |
| Bradford | 2026/27 | 2 | 0 | 0 |
| Sheffield Wed | 2013/14 – 2024/25 | 126 | 0 | 1 |
| Exeter | 2021/22 | 50 | 0 | — |
| Chesterfield | 2017/18 | 2 | 0 | — |
| Wycombe | 2016/17 | 2 | 0 | — |
| England U19 | 2013 – 2014 | 2 | 0 | — |
| Alfreton Town | 2014/15 | 17 | 0 | — |
| Plymouth | 2013/14 | 0 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2024 | Sheffield Wednesday | Rotherham | Free |
| 1 Jul 2022 | Exeter City | Sheffield Wednesday | — |
| 29 Jul 2021 | Sheffield Wednesday | Exeter City | Loan |
| 22 Dec 2017 | Chesterfield | Sheffield Wednesday | — |
| 6 Dec 2017 | Sheffield Wednesday | Chesterfield | Loan |
| 17 Aug 2016 | Wycombe | Sheffield Wednesday | — |
| 9 Aug 2016 | Sheffield Wednesday | Wycombe | Loan |
| 20 Nov 2014 | Alfreton Town | Sheffield Wednesday | — |
| 8 Feb 2014 | Sheffield Wednesday | Plymouth | Loan |
| 12 Aug 2026 | Rotherham | Bradford | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | EFL Trophy | Bradford | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.32 |
| 2026/27 | League One | Bradford | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 2.00 |
| 2026/27 | EFL Trophy | Rotherham | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.79 |
| 2025/26 | League Cup | Rotherham | 2 | 2 | 180 | 0 | 0 | 1 | 0 | 8.05 |
| 2025/26 | EFL Trophy | Rotherham | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.70 |
| 2025/26 | League One | Rotherham | 31 | 31 | 2790 | 0 | 0 | 3 | 0 | 6.90 |
| 2024/25 | League One | Rotherham | 43 | 27 | 1252 | — | 0 | 1 | 0 | 7.06 |
| 2024/25 | FA Cup | Rotherham | 1 | 1 | 90 | — | 0 | 1 | 0 | 6.90 |
| 2024/25 | League Cup | Rotherham | 2 | 2 | 180 | — | 0 | 0 | 0 | 7.00 |
| 2024/25 | EFL Trophy | Rotherham | 4 | 4 | 360 | 0 | 0 | 0 | 0 | 7.38 |
| 2023/24 | Championship | Sheffield Wed | 18 | 18 | 1620 | 0 | — | 3 | 0 | 6.76 |
| 2023/24 | League Cup | Sheffield Wed | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.20 |
| 2023/24 | FA Cup | Sheffield Wed | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2022/23 | League One | Sheffield Wed | 25 | 25 | 2310 | 0 | — | 1 | 0 | 6.92 |
| 2022/23 | League Cup | Sheffield Wed | 2 | 2 | 180 | 0 | — | 0 | 0 | 7.05 |
| 2022/23 | EFL Trophy | Sheffield Wed | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2022/23 | FA Cup | Sheffield Wed | 3 | 3 | 270 | 0 | — | 0 | 0 | 6.75 |
| 2021/22 | League Two | Exeter | 45 | 45 | 4050 | 0 | — | 0 | 0 | 6.82 |
| 2021/22 | EFL Trophy | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | 5.90 |
| 2021/22 | League Cup | Exeter | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.90 |
| 2021/22 | FA Cup | Exeter | 3 | 3 | 270 | 0 | — | 1 | 0 | — |
| 2020/21 | Championship | Sheffield Wed | 8 | 8 | 720 | 0 | — | 0 | 0 | 6.60 |
| 2020/21 | League Cup | Sheffield Wed | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.70 |
| 2019/20 | Championship | Sheffield Wed | 24 | 23 | 2078 | 0 | — | 0 | 0 | 6.58 |
| 2019/20 | League Cup | Sheffield Wed | 2 | 2 | 180 | 0 | — | 0 | 0 | 6.80 |
| 2019/20 | FA Cup | Sheffield Wed | 2 | 2 | 180 | 0 | — | 0 | 0 | 7.20 |
| 2018/19 | Championship | Sheffield Wed | 26 | 26 | 2340 | 0 | 1 | 2 | 0 | 6.68 |
| 2018/19 | FA Cup | Sheffield Wed | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2017/18 | League Two | Chesterfield | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Sheffield Wed | 4 | 4 | 360 | 0 | — | 0 | 0 | 6.80 |
| 2016/17 | Championship | Sheffield Wed | 4 | 2 | 281 | 0 | — | 0 | 0 | 6.88 |
| 2016/17 | League Two | Wycombe | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | League Cup | Wycombe | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | National League | Alfreton Town | 17 | 17 | 1530 | 0 | — | 1 | 0 | — |
| 2013 | UEFA U19 Championship | England U19 | 2 | 1 | 172 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Knee Injury | 21 Jan 2024 | 23 Feb 2024 | 33 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League Two (England) | 2021/2022 | 2nd Place |
