Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 08/2025 - 06/2027 | ![]() | Salford City | Defence | 15 | |
| 07/2024 - 08/2025 | ![]() | Leyton Orient | Defence | 6 | |
| 01/2024 - 06/2024 | ![]() | Leyton Orient | Defence | 12 | |
| 01/2024 - 01/2024 | ![]() | Swansea City | Defence | ||
| 09/2023 - 01/2024 | ![]() | Leyton Orient | Defence | 12 | |
| 07/2023 - 08/2023 | ![]() | Swansea City | Defence | 16 | |
| 01/2023 - 06/2023 | ![]() | Forest Green Rovers | Defence | 23 | |
| 07/2022 - 01/2023 | ![]() | Swansea City | Defence | 16 | |
| 01/2022 - 06/2022 | ![]() | Swindon Town | Defence | 14 | |
| 07/2021 - 01/2022 | ![]() | Swansea City | Defence | 16 | |
| 01/2021 - 01/2022 | ![]() | Swansea City U21 | Defence | ||
| 02/2021 - 06/2021 | ![]() | Swansea City | Defence | 36 | |
| 09/2020 - 01/2021 | ![]() | Newport County | Defence | 6 | |
| 07/2020 - 09/2020 | ![]() | Swansea City U21 | Defence | ||
| 02/2020 - 07/2020 | ![]() | Yeovil Town | Defence | 6 | |
| 08/2019 - 02/2020 | ![]() | Swansea City | Defence | 36 | |
| 11/2016 - 02/2020 | ![]() | Swansea City U21 | Defence | ||
| 08/2018 - 06/2019 | ![]() | Swansea City | Defence | 55 | |
| 07/2016 - 06/2018 | ![]() | Swansea City U18 | Defence | ||
| 07/2015 - 06/2016 | ![]() | Swansea City U17 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Championship | 5 | 3 | 2 | - | 351 | - | - | - | - | - | - | » All matches | |
| FA Cup | 15 | 12 | 3 | 4 | 1.076 | - | - | - | 4 | - | - | » All matches | |
| League Cup | 10 | 9 | 1 | 1 | 857 | 2 | - | 1 | 1 | - | - | » All matches | |
| League One | 80 | 62 | 18 | 12 | 5.813 | - | - | 2 | 15 | - | 1 | » All matches | |
| League Two | 62 | 54 | 8 | 11 | 4.931 | 1 | - | - | 9 | - | - | » All matches | |
| National League | 3 | 1 | 2 | - | 97 | - | - | - | - | - | - | » All matches | |
| EFL Trophy | 11 | 11 | - | 1 | 988 | - | - | 1 | 2 | - | 1 | » All matches | |
| Playoffs | 5 | 4 | 1 | 2 | 351 | - | - | - | - | - | - | » All matches | |
| Total | 191 | 156 | 35 | 31 | 14.464 | 3 | - | - | 31 | - | 2 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U21 Premier League International Cup | 4 | 4 | - | - | 360 | - | - | - | - | - | - | » All matches |
| U21 Premier League 2 | 28 | 23 | 5 | 1 | 2.164 | 2 | - | - | 4 | - | 1 | » All matches | |
| U21 Premier League 2 Div. 2 | 12 | 12 | - | 1 | 1.052 | 2 | - | - | 2 | - | - | » All matches | |
| Total | 44 | 39 | 5 | 2 | 3.576 | 4 | - | - | 6 | - | 1 |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | U21 EURO Qualifiers | 12 | 12 | - | 2 | 1.046 | - | - | - | 4 | - | - | » All matches |
| Total | 12 | 12 | - | 2 | 1.046 | - | - | - | 4 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 Friendlies | 2 | 1 | 1 | - | 103 | 2 | - | - | - | - | - | » All matches |
![]() | U19 EURO Qualifiers | 8 | 8 | - | 1 | 709 | - | - | - | 2 | - | - | » All matches |
| Total | 10 | 9 | 1 | 1 | 812 | 2 | - | - | 2 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U17 EURO Qualifiers | 7 | 7 | - | - | 630 | 2 | - | - | 1 | - | - | » All matches |
| Total | 7 | 7 | - | - | 630 | 2 | - | - | 1 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U16 Friendlies | 3 | 3 | - | 1 | 242 | 1 | - | - | - | - | - | » All matches |
| Total | 3 | 3 | - | 1 | 242 | 1 | - | - | - | - | - |












