Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2023 - 06/2027 | ![]() | Rangers FC | Defence | 5 | |
| 07/2022 - 06/2023 | ![]() | Rangers FC | Defence | 16 | |
| 07/2017 - 06/2022 | ![]() | Heart of Midlothian | Defence | 4 | |
| 07/2016 - 06/2017 | ![]() | Heart of Midlothian | Defence | 14 | |
| 02/2016 - 06/2016 | ![]() | Heart of Midlothian | Defence | 24 | |
| 07/2015 - 01/2016 | ![]() | Dundee United | Defence | 4 | |
| 07/2013 - 06/2015 | ![]() | Dundee United | Defence | 20 | |
| 12/2012 - 06/2013 | ![]() | Dundee United | Defence | 42 | |
| 07/2012 - 06/2013 | ![]() | Dundee United U18 | Defence | ||
| 07/2011 - 06/2012 | ![]() | Dundee United U17 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Champions League Qual. | 12 | 12 | - | - | 1.080 | - | - | - | 5 | - | - | » All matches |
![]() | Europa League | 19 | 17 | 2 | 1 | 1.578 | - | - | - | 6 | - | - | » All matches |
![]() | Europa League Qual. | 2 | 1 | 1 | - | 107 | - | - | - | - | - | - | » All matches |
| Premiership | 277 | 260 | 17 | 18 | 23.372 | 10 | 1 | 6 | 40 | - | - | » All matches | |
| Championship | 3 | 3 | - | 1 | 264 | - | - | - | - | - | - | » All matches | |
| FA Cup | 27 | 22 | 5 | 1 | 2.151 | 2 | - | 1 | 3 | - | - | » All matches | |
| League Cup | 23 | 22 | 1 | 2 | 2.022 | - | - | 2 | 2 | - | - | » All matches | |
| Total | 363 | 337 | 26 | 23 | 30.574 | 12 | 1 | - | 56 | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | WC Qualifiers Europe | 6 | 5 | 1 | - | 469 | 1 | - | - | 1 | - | - | » All matches |
![]() | Friendlies | 7 | 4 | 3 | 1 | 377 | 1 | - | - | - | - | - | » All matches |
![]() | EURO Qualifiers | 1 | - | 1 | - | 13 | - | - | - | - | - | - | » All matches |
![]() | Nations League A | 4 | 4 | - | - | 360 | - | - | 1 | - | - | - | » All matches |
![]() | Nations League B | 2 | 1 | 1 | - | 107 | - | - | - | - | - | - | » All matches |
![]() | Nations League C | 2 | 2 | - | - | 151 | - | - | - | 1 | 1 | - | » All matches |
![]() | Relegation Nations League | 2 | 2 | - | - | 180 | - | - | - | - | - | - | » All matches |
| Total | 24 | 18 | 6 | 1 | 1.657 | 2 | - | 1 | 2 | 1 | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U21 EURO Qualifiers | 10 | 10 | - | 1 | 879 | - | - | - | 2 | - | 1 | » All matches |
| Total | 10 | 10 | - | 1 | 879 | - | - | - | 2 | - | 1 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 EURO Qualifiers | 10 | 10 | - | - | 900 | 1 | - | - | 2 | - | - | » All matches |
| Total | 10 | 10 | - | - | 900 | 1 | - | - | 2 | - | - |







