Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2021 - 06/2027 | ![]() | Heart of Midlothian | Defence | 3 | |
| 10/2020 - 06/2021 | ![]() | Heart of Midlothian | Defence | 21 | |
| 07/2018 - 06/2020 | ![]() | Hull City | Defence | 23 | |
| 08/2017 - 06/2018 | ![]() | Hull City | Defence | 28 | |
| 11/2015 - 08/2017 | ![]() | Swansea City | Defence | 35 | |
| 10/2016 - 12/2016 | ![]() | Swansea City U21 | Defence | ||
| 12/2015 - 06/2016 | ![]() | Swansea City U21 | Defence | ||
| 08/2015 - 11/2015 | ![]() | Crewe Alexandra | Defence | 17 | |
| 08/2015 - 08/2015 | ![]() | Swansea City U21 | Defence | ||
| 06/2015 - 08/2015 | ![]() | Swansea City | Defence | 35 | |
| 02/2015 - 05/2015 | ![]() | Yeovil Town | Defence | 35 | |
| 07/2014 - 02/2015 | ![]() | Swansea City | Defence | 35 | |
| 04/2011 - 06/2014 | ![]() | Falkirk FC | Defence | 3 |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Champions League Qual. | 1 | 1 | - | 1 | 45 | - | - | - | - | - | - | » All matches |
![]() | Europa League Qual. | 4 | 4 | - | 1 | 348 | - | - | - | - | - | - | » All matches |
![]() | Conference League | 10 | 8 | 2 | 3 | 716 | - | - | - | 1 | - | - | » All matches |
![]() | Conference League Qual. | 4 | 3 | 1 | 1 | 275 | - | - | - | - | - | - | » All matches |
| Premier League | 17 | 16 | 1 | 2 | 1.393 | - | - | 1 | - | - | - | » All matches | |
| Championship | 45 | 42 | 3 | 9 | 3.610 | - | - | 2 | 5 | - | - | » All matches | |
| FA Cup | 2 | 1 | 1 | 1 | 98 | - | - | - | - | - | - | » All matches | |
| League Cup | 1 | - | 1 | - | 83 | - | - | - | - | - | - | » All matches | |
| League One | 24 | 21 | 3 | 5 | 1.782 | - | - | 1 | 2 | - | - | » All matches | |
| Premiership | 122 | 103 | 19 | 27 | 9.239 | 11 | - | 1 | 10 | - | - | » All matches | |
| Championship | 20 | 20 | - | 2 | 1.772 | 4 | - | 1 | 1 | - | 1 | » All matches | |
| FA Cup | 17 | 15 | 2 | 2 | 1.553 | 2 | - | - | - | - | - | » All matches | |
| League Cup | 18 | 12 | 6 | 1 | 1.184 | 1 | - | 1 | 1 | - | - | » All matches | |
| Total | 285 | 246 | 39 | 55 | 22.098 | 18 | - | - | 20 | - | 1 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
| U21 Premier League 2 Div. 2 | 16 | 16 | - | 2 | 1.383 | - | - | - | 1 | - | - | » All matches | |
| Total | 16 | 16 | - | 2 | 1.383 | - | - | - | 1 | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Friendlies | 1 | - | 1 | - | 25 | - | - | - | - | - | - | » All matches |
![]() | Nations League B | 1 | - | 1 | - | 19 | - | - | - | - | - | - | » All matches |
| Total | 2 | - | 2 | - | 44 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U21 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 | ||
![]() | U19 Friendlies | 2 | 1 | 1 | 1 | 74 | - | - | - | - | - | - | » All matches |
![]() | U19 EURO Qualifiers | 3 | 3 | - | 1 | 255 | - | - | - | - | - | - | » All matches |
| Total | 5 | 4 | 1 | 2 | 329 | - | - | - | - | - | - |









