Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2026 - 06/2027 | ![]() | St. Johnstone FC | Midfield | 8 | |
| 08/2024 - 06/2026 | ![]() | St. Johnstone FC | Midfield | 7 | |
| 08/2020 - 06/2024 | ![]() | Livingston FC | Midfield | 18 | |
| 09/2019 - 06/2020 | ![]() | St. Johnstone FC | Midfield | 19 | |
| 06/2019 - 09/2019 | ![]() | Rangers FC | Midfield | ||
| 07/2018 - 05/2019 | ![]() | Fleetwood Town | Midfield | 4 | |
| 07/2015 - 06/2018 | ![]() | Rangers FC | Midfield | 23 | |
| 01/2015 - 06/2015 | ![]() | Sheffield United | Midfield | 35 | |
| 07/2014 - 01/2015 | ![]() | Heart of Midlothian | Midfield | 10 | |
| 07/2012 - 06/2014 | ![]() | Heart of Midlothian | Midfield | 15 | |
| 01/2012 - 06/2012 | ![]() | Heart of Midlothian | Midfield | 42 | |
| 07/2011 - 12/2011 | ![]() | Raith Rovers | Midfield | ||
| 05/2011 - 06/2011 | ![]() | Heart of Midlothian | Midfield | 51 | |
| 07/2010 - 06/2011 | ![]() | Heart of Midlothian (R) | Midfield |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Europa League Qual. | 1 | 1 | - | 1 | 59 | - | - | - | - | - | - | » All matches |
| FA Cup | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches | |
| League Cup | 1 | - | 1 | - | 74 | 1 | - | - | - | - | - | » All matches | |
| League One | 49 | 40 | 9 | 20 | 3.536 | 6 | - | - | 8 | - | - | » All matches | |
| Playoffs | 1 | 1 | - | 1 | 74 | - | - | - | - | - | - | » All matches | |
| Premiership | 299 | 262 | 37 | 70 | 22.980 | 9 | 2 | 12 | 58 | 1 | 2 | » All matches | |
| Championship | 82 | 71 | 11 | 26 | 6.072 | 14 | - | 2 | 11 | - | - | » All matches | |
| FA Cup | 25 | 22 | 3 | 4 | 2.112 | 1 | - | 1 | 5 | - | - | » All matches | |
| League Cup | 42 | 31 | 11 | 10 | 2.856 | 2 | - | 2 | 4 | - | - | » All matches | |
| Challenge Cup | 2 | 2 | - | 1 | 136 | - | - | - | - | - | - | » All matches | |
| Total | 503 | 431 | 72 | 133 | 37.989 | 33 | 2 | - | 86 | 1 | 2 |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | U21 Friendlies | 2 | 1 | 1 | 1 | 93 | - | - | - | - | - | - | » All matches |
![]() | U21 EURO Qualifiers | 3 | 2 | 1 | 1 | 159 | - | - | - | - | - | - | » All matches |
| Total | 5 | 3 | 2 | 2 | 252 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 EURO Qualifiers | 3 | 3 | - | - | 270 | 1 | - | - | - | - | - | » All matches |
| Total | 3 | 3 | - | - | 270 | 1 | - | - | - | - | - |










