Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2026 - 06/2027 | ![]() | Airdrieonians FC | Midfield | 15 | |
| 08/2025 - 06/2026 | ![]() | Airdrieonians FC | Midfield | 24 | |
| 07/2025 - 08/2025 | ![]() | Rangers FC | Midfield | ||
| 01/2025 - 06/2025 | ![]() | Ayr United | Midfield | 36 | |
| 07/2024 - 01/2025 | ![]() | Rangers FC | Midfield | 48 | |
| 07/2023 - 01/2025 | ![]() | Rangers FC (R) | Midfield | 8 | |
| 09/2023 - 06/2024 | ![]() | Rangers FC | Midfield | 93 | |
| 07/2022 - 06/2023 | ![]() | Partick Thistle | Midfield | 15 | |
| 08/2021 - 06/2022 | ![]() | Rangers FC | Midfield | 58 | |
| 08/2021 - 06/2022 | ![]() | Rangers FC (R) | Midfield | ||
| 07/2021 - 06/2022 | ![]() | Rangers FC U19 | Midfield | ||
| 03/2021 - 06/2021 | ![]() | East Fife FC | Midfield | ||
| 07/2019 - 03/2021 | ![]() | Rangers FC U19 | Midfield | ||
| 07/2019 - 03/2021 | ![]() | Rangers FC U18 | Midfield | ||
| 07/2018 - 06/2019 | ![]() | Rangers FC U16 | Midfield |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Europa League | 1 | - | 1 | - | 15 | - | - | - | - | - | - | » All matches |
| Premiership | 2 | - | 2 | - | 47 | 1 | - | - | - | - | - | » All matches | |
| Championship | 67 | 51 | 16 | 25 | 4.366 | 6 | - | 7 | 4 | - | - | » All matches | |
| League One | 5 | 3 | 2 | 1 | 301 | - | - | - | 1 | - | - | » All matches | |
| FA Cup | 8 | 6 | 2 | 4 | 583 | - | - | - | - | - | - | » All matches | |
| League Cup | 5 | 3 | 2 | 1 | 324 | - | - | - | - | - | - | » All matches | |
| Challenge Cup | 5 | 4 | 1 | 1 | 427 | 1 | - | - | 1 | - | - | » All matches | |
| Playoffs | 5 | 2 | 3 | 1 | 168 | - | - | - | - | - | - | » All matches | |
| Total | 98 | 69 | 29 | 33 | 6.231 | 8 | - | - | 6 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 Youth League | 6 | 5 | 1 | - | 452 | 2 | - | 1 | - | - | - | » All matches |
| Total | 6 | 5 | 1 | - | 452 | 2 | - | 1 | - | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | U21 Friendlies | 2 | 1 | 1 | 1 | 57 | - | - | - | - | - | - | » All matches |
![]() | U21 EURO Qualifiers | 1 | - | 1 | - | 16 | - | - | - | - | - | - | » All matches |
| Total | 3 | 1 | 2 | 1 | 73 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 EURO Qualifiers | 5 | 1 | 4 | 1 | 106 | - | - | - | - | - | - | » All matches |
| Total | 5 | 1 | 4 | 1 | 106 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U16 Friendlies | 4 | 3 | 1 | 1 | 271 | - | - | - | - | - | - | » All matches |
| Total | 4 | 3 | 1 | 1 | 271 | - | - | - | - | - | - |











