Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2026 - 06/2027 | ![]() | Aberdeen FC | Defence | 23 | |
| 07/2023 - 06/2026 | ![]() | Kilmarnock FC | Defence | 5 | |
| 07/2023 - 07/2023 | ![]() | Rangers FC | Defence | ||
| 07/2022 - 06/2023 | ![]() | Kilmarnock FC | Defence | 2 | |
| 05/2022 - 06/2022 | ![]() | Rangers FC | Defence | ||
| 07/2021 - 05/2022 | ![]() | Partick Thistle | Defence | 4 | |
| 07/2021 - 07/2021 | ![]() | Rangers FC | Defence | 4 | |
| 09/2020 - 06/2021 | ![]() | Dunfermline Athletic | Defence | 22 | |
| 08/2020 - 09/2020 | ![]() | Rangers FC | Defence | 34 | |
| 05/2020 - 08/2020 | ![]() | Rangers FC | Defence | 51 | |
| 02/2020 - 04/2020 | ![]() | Partick Thistle | Defence | 6 | |
| 07/2019 - 01/2020 | ![]() | Rangers FC | Defence | 51 | |
| 07/2019 - 01/2020 | ![]() | Rangers FC U19 | Defence | ||
| 07/2017 - 01/2020 | ![]() | Rangers FC (R) | Defence | ||
| 07/2016 - 06/2017 | ![]() | Rangers FC U17 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Europa League Qual. | 2 | 2 | - | - | 180 | - | - | - | - | - | - | » All matches |
![]() | Conference League Qual. | 4 | 4 | - | - | 360 | - | - | - | - | - | - | » All matches |
| Premiership | 138 | 131 | 7 | 9 | 11.703 | 2 | - | 2 | 17 | - | 1 | » All matches | |
| Championship | 57 | 52 | 5 | 4 | 4.706 | 1 | - | 1 | 5 | 1 | - | » All matches | |
| FA Cup | 11 | 11 | - | - | 1.020 | - | - | - | - | - | 1 | » All matches | |
| League Cup | 25 | 23 | 2 | 2 | 2.305 | - | - | 1 | 3 | - | - | » All matches | |
| Playoffs | 1 | 1 | - | 1 | 70 | - | - | - | - | - | - | » All matches | |
| Total | 238 | 224 | 14 | 16 | 20.344 | 3 | - | - | 25 | 1 | 2 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 Youth League | 3 | 3 | - | 1 | 191 | - | - | - | - | - | - | » All matches |
| Total | 3 | 3 | - | 1 | 191 | - | - | - | - | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | U21 Friendlies | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
![]() | U21 EURO Qualifiers | 11 | 10 | 1 | - | 905 | - | - | - | 2 | - | - | » All matches |
| Total | 12 | 11 | 1 | - | 995 | - | - | - | 2 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 Friendlies | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
![]() | U19 EURO Qualifiers | 3 | 3 | - | - | 270 | - | - | - | - | - | - | » All matches |
| Total | 4 | 4 | - | - | 360 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U17 EURO | 3 | 3 | - | - | 270 | - | - | - | - | - | - | » All matches |
![]() | U17 EURO Qualifiers | 2 | - | 2 | - | 45 | - | - | - | - | - | - | » All matches |
| Total | 5 | 3 | 2 | - | 315 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U16 Friendlies | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
| Total | 1 | 1 | - | - | 90 | - | - | - | - | - | - |










