Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2026 - 06/2028 | ![]() | Swansea City | Defence | 23 | |
| 02/2026 - 06/2026 | ![]() | Motherwell FC | Defence | 57 | |
| 01/2026 - 02/2026 | ![]() | Celtic FC | Defence | 57 | |
| 09/2025 - 01/2026 | ![]() | Motherwell FC | Defence | 57 | |
| 07/2025 - 08/2025 | ![]() | Celtic FC | Defence | 57 | |
| 01/2025 - 06/2025 | ![]() | KV Mechelen | Defence | 21 | |
| 01/2020 - 01/2025 | ![]() | Celtic FC | Defence | 57 | |
| 01/2020 - 06/2023 | ![]() | Celtic FC (R) | Defence | ||
| 08/2019 - 01/2020 | ![]() | Greenock Morton FC | Defence | 3 | |
| 05/2019 - 08/2019 | ![]() | Celtic FC | Defence | 57 | |
| 12/2016 - 06/2018 | ![]() | Celtic FC U19 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Champions League | 2 | 2 | - | 1 | 165 | - | - | - | - | - | - | » All matches |
![]() | Champions League Qual. | 2 | 2 | - | - | 210 | - | - | - | 1 | - | - | » All matches |
![]() | Europa League | 6 | 4 | 2 | 2 | 328 | 1 | - | - | 1 | - | - | » All matches |
![]() | Europa League Qual. | 3 | 3 | - | - | 270 | - | - | - | - | - | - | » All matches |
![]() | Conference League | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
| Pro League | 17 | 15 | 2 | 4 | 1.306 | 1 | - | - | 3 | - | - | » All matches | |
| Championship | 14 | 13 | 1 | 5 | 1.056 | - | - | 1 | 1 | - | - | » All matches | |
| Premiership | 70 | 62 | 8 | 14 | 5.487 | 3 | - | 2 | 8 | - | - | » All matches | |
| Championship | 15 | 15 | - | 2 | 1.302 | - | - | - | 3 | - | - | » All matches | |
| FA Cup | 10 | 8 | 2 | 2 | 716 | - | - | - | - | - | - | » All matches | |
| League Cup | 6 | 5 | 1 | 4 | 443 | 1 | - | - | 1 | - | - | » All matches | |
| Total | 146 | 130 | 16 | 34 | 11.373 | 6 | - | - | 18 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 Youth League | 6 | 6 | - | - | 540 | - | - | - | - | - | - | » All matches |
| Total | 6 | 6 | - | - | 540 | - | - | - | - | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Nations League B | 4 | 3 | 1 | 1 | 324 | - | - | - | 1 | - | - | » All matches |
| Total | 4 | 3 | 1 | 1 | 324 | - | - | - | 1 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U21 Friendlies | 2 | 2 | - | 1 | 90 | - | - | - | - | - | - | » All matches |
![]() | U21 EURO Qualifiers | 8 | 8 | - | 3 | 671 | - | - | - | 1 | - | - | » All matches |
| Total | 10 | 10 | - | 4 | 761 | - | - | - | 1 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 Friendlies | 4 | 3 | 1 | - | 277 | - | - | - | - | - | - | » All matches |
![]() | U19 EURO Qualifiers | 6 | 5 | 1 | 1 | 450 | - | - | - | - | - | 1 | » All matches |
| Total | 10 | 8 | 2 | 1 | 727 | - | - | - | - | - | 1 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U17 EURO | 3 | 3 | - | - | 270 | - | - | - | 1 | - | - | » All matches |
![]() | U17 EURO Qualifiers | 6 | 6 | - | - | 540 | - | - | - | - | - | - | » All matches |
| Total | 9 | 9 | - | - | 810 | - | - | - | 1 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U16 Friendlies | 2 | 2 | - | - | 180 | - | - | - | - | - | - | » All matches |
| Total | 2 | 2 | - | - | 180 | - | - | - | - | - | - |









