Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 09/2026 - 06/2028 | ![]() | Bradford City | Defence | 27 | |
| 01/2026 - 08/2026 | ![]() | Barnsley FC | Defence | 7 | |
| 07/2025 - 01/2026 | ![]() | Stockport County | Defence | 2 | |
| 07/2024 - 07/2025 | ![]() | Barnsley FC | Defence | 7 | |
| 07/2023 - 06/2024 | ![]() | Barnsley FC | Defence | 22 | |
| 07/2022 - 07/2023 | ![]() | Forest Green Rovers | Defence | 2 | |
| 01/2022 - 06/2022 | ![]() | Rochdale AFC | Midfield | 2 | |
| 01/2022 - 01/2022 | ![]() | Mansfield Town | Midfield | ||
| 08/2021 - 12/2021 | ![]() | Rochdale AFC | Midfield | 2 | |
| 08/2020 - 08/2021 | ![]() | Mansfield Town | Midfield | 2 | |
| 07/2020 - 08/2020 | ![]() | Birmingham City | Defence | ||
| 08/2019 - 06/2020 | ![]() | Macclesfield FC | Defence | 16 | |
| 02/2019 - 08/2019 | ![]() | Birmingham City | Defence | 30 | |
| 08/2018 - 02/2019 | ![]() | Solihull Moors | Defence | 22 | |
| 12/2016 - 08/2018 | ![]() | Birmingham City | Defence | 30 | |
| 07/2015 - 06/2017 | ![]() | Birmingham City (R) | Defence | ||
| 07/2014 - 06/2015 | ![]() | Birmingham City U19 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Championship | 1 | - | 1 | - | 17 | - | - | - | - | - | - | » All matches | |
| FA Cup | 17 | 12 | 5 | 4 | 1.218 | 1 | - | 4 | 3 | - | - | » All matches | |
| League Cup | 14 | 13 | 1 | 5 | 1.080 | 1 | - | - | 4 | - | - | » All matches | |
| League One | 169 | 130 | 39 | 53 | 11.478 | 3 | - | 25 | 35 | 1 | - | » All matches | |
| League Two | 87 | 74 | 13 | 12 | 6.663 | 2 | - | - | 18 | - | 1 | » All matches | |
| National League | 13 | 8 | 5 | 2 | 813 | - | - | - | 5 | - | - | » All matches | |
| EFL Trophy | 19 | 16 | 3 | 4 | 1.466 | 4 | 1 | 3 | 3 | - | 1 | » All matches | |
| Playoffs | 2 | 2 | - | - | 180 | - | - | - | 1 | - | - | » All matches | |
| Total | 322 | 255 | 67 | 80 | 22.915 | 11 | 1 | - | 69 | 1 | 2 |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | U19 EURO Qualifiers | 5 | 5 | - | - | 450 | - | - | - | 1 | - | - | » All matches |
| Total | 5 | 5 | - | - | 450 | - | - | - | 1 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U18 Friendlies | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
| Total | 1 | 1 | - | - | 90 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U17 EURO | 2 | 2 | - | - | 180 | - | - | - | 1 | - | - | » All matches |
| Total | 2 | 2 | - | - | 180 | - | - | - | 1 | - | - |













