Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2026 - 06/2027 | ![]() | Airdrieonians FC | Defence | 31 | |
| 07/2025 - 07/2026 | ![]() | Ross County FC | Defence | 31 | |
| 07/2023 - 06/2025 | ![]() | Dundee United | Defence | 31 | |
| 07/2022 - 07/2023 | ![]() | St. Mirren FC | Defence | 31 | |
| 07/2021 - 06/2022 | ![]() | Aberdeen FC | Defence | 5 | |
| 07/2019 - 06/2021 | ![]() | Motherwell FC | Defence | 31 | |
| 07/2016 - 06/2019 | ![]() | Livingston FC | Defence | 31 | |
| 07/2014 - 06/2016 | ![]() | Livingston FC | Defence | 14 | |
| 06/2012 - 07/2014 | ![]() | Dundee FC | Defence | 18 | |
| 07/2011 - 05/2012 | ![]() | Clyde FC | Defence | ||
| 07/2010 - 06/2011 | ![]() | Stranraer FC | Defence | ||
| 07/2009 - 06/2010 | ![]() | Celtic FC U19 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Europa League Qual. | 3 | 3 | - | - | 280 | - | - | - | - | 1 | - | » All matches |
![]() | Conference League Qual. | 5 | 3 | 2 | 1 | 279 | - | - | - | 2 | - | - | » All matches |
| Premiership | 204 | 194 | 10 | 14 | 17.194 | 7 | - | 14 | 43 | 1 | 2 | » All matches | |
| Championship | 138 | 135 | 3 | 11 | 12.003 | 2 | - | 3 | 33 | - | 3 | » All matches | |
| League One | 10 | 10 | - | 1 | 872 | - | - | - | 5 | - | - | » All matches | |
| FA Cup | 16 | 15 | 1 | 1 | 1.428 | - | - | 1 | 4 | - | - | » All matches | |
| League Cup | 36 | 34 | 2 | 1 | 3.317 | 1 | - | 2 | 6 | - | - | » All matches | |
| Challenge Cup | 1 | - | 1 | - | 45 | - | - | - | - | - | - | » All matches | |
| Playoffs | 4 | 4 | - | - | 360 | - | - | - | 1 | - | - | » All matches | |
| Total | 417 | 398 | 19 | 29 | 35.778 | 10 | - | - | 94 | 2 | 5 |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Friendlies | 2 | 1 | 1 | 1 | 76 | - | - | - | - | - | - | » All matches |
![]() | EURO Qualifiers | 4 | 4 | - | - | 420 | - | - | - | 2 | - | - | » All matches |
![]() | Nations League B | 3 | 3 | - | 1 | 253 | - | - | - | - | - | - | » All matches |
| Total | 9 | 8 | 1 | 2 | 749 | - | - | - | 2 | - | - |













