Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2021 - 06/2028 | ![]() | Swansea City | Defence | 5 | |
| 08/2019 - 06/2021 | ![]() | Swansea City | Defence | 44 | |
| 01/2019 - 06/2020 | ![]() | Swansea City U21 | Defence | ||
| 07/2018 - 01/2019 | ![]() | The New Saints | Defence | 5 | |
| 04/2017 - 06/2018 | ![]() | Swansea City U21 | Defence | ||
| 10/2015 - 06/2018 | ![]() | Swansea City U18 | Defence | ||
| 07/2015 - 06/2016 | ![]() | Swansea City U17 | Defence | ||
| 07/2014 - 06/2015 | ![]() | Newport County U16 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Champions League Qual. | 2 | 2 | - | - | 180 | 1 | - | - | - | - | - | » All matches |
![]() | Europa League Qual. | 4 | 4 | - | - | 360 | - | - | - | 1 | - | - | » All matches |
| Championship | 269 | 256 | 13 | 12 | 23.161 | 11 | - | 5 | 48 | 1 | - | » All matches | |
| FA Cup | 5 | 5 | - | 1 | 466 | - | - | - | 1 | - | - | » All matches | |
| League Cup | 11 | 9 | 2 | 1 | 887 | 1 | - | - | - | - | - | » All matches | |
| Playoffs | 5 | 4 | 1 | - | 405 | - | - | - | 2 | - | - | » All matches | |
| Premier League | 16 | 16 | - | 2 | 1.355 | - | - | - | 3 | 1 | - | » All matches | |
| Total | 312 | 296 | 16 | 16 | 26.814 | 13 | - | - | 55 | 2 | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
| U21 Premier League 2 | 10 | 9 | 1 | - | 868 | 1 | - | - | 5 | - | - | » All matches | |
| U21 Premier League 2 Div. 2 | 2 | 1 | 1 | 1 | 91 | - | - | - | - | - | - | » All matches | |
| Total | 12 | 10 | 2 | 1 | 959 | 1 | - | - | 5 | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | WC Qualifiers Europe | 2 | 1 | 1 | - | 95 | - | - | - | - | - | - | » All matches |
![]() | Friendlies | 7 | 6 | 1 | 2 | 536 | - | - | - | - | - | - | » All matches |
![]() | EURO Qualifiers | 2 | - | 2 | - | 46 | - | - | - | - | - | - | » All matches |
![]() | Nations League A | 4 | 4 | - | 1 | 341 | - | - | - | 2 | - | - | » All matches |
![]() | Nations League B | 4 | 2 | 2 | - | 196 | - | - | - | - | - | - | » All matches |
| Total | 19 | 13 | 6 | 3 | 1.214 | - | - | - | 2 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U21 Friendlies | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
![]() | U21 EURO Qualifiers | 4 | 4 | - | - | 360 | - | - | - | 1 | - | - | » All matches |
| Total | 5 | 5 | - | - | 450 | - | - | - | 1 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 EURO Qualifiers | 5 | 5 | - | 1 | 428 | 1 | - | - | 4 | - | - | » All matches |
| Total | 5 | 5 | - | 1 | 428 | 1 | - | - | 4 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U17 EURO Qualifiers | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
| Total | 1 | 1 | - | - | 90 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U16 Friendlies | 2 | 1 | 1 | - | 119 | - | - | - | - | - | - | » All matches |
| Total | 2 | 1 | 1 | - | 119 | - | - | - | - | - | - |








