Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2026 - 06/2027 | ![]() | Arbroath FC | Forward | 17 | |
| 01/2026 - 06/2026 | ![]() | Arbroath FC | Forward | 28 | |
| 02/2025 - 01/2026 | ![]() | Hamilton Academical | Forward | 17 | |
| 07/2023 - 02/2025 | ![]() | Partick Thistle | Forward | 17 | |
| 07/2022 - 06/2023 | ![]() | Kilmarnock FC | Forward | 16 | |
| 07/2021 - 06/2022 | ![]() | Kilmarnock FC | Midfield | 10 | |
| 07/2017 - 06/2021 | ![]() | Livingston FC | Midfield | 17 | |
| 07/2016 - 06/2017 | ![]() | East Fife FC | Midfield | 14 | |
| 04/2016 - 06/2016 | ![]() | Dunfermline Athletic | Midfield | ||
| 07/2015 - 03/2016 | ![]() | Kilmarnock FC | Midfield | 8 | |
| 07/2012 - 06/2015 | ![]() | Heart of Midlothian | Midfield | 8 | |
| 07/2010 - 06/2012 | ![]() | Heart of Midlothian | Midfield | 27 | |
| 04/2008 - 06/2010 | ![]() | Heart of Midlothian | Midfield | 42 | |
| 01/2008 - 06/2008 | ![]() | Heart of Midlothian U18 | Midfield |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Europa League Qual. | 2 | 1 | 1 | 1 | 82 | - | - | - | - | - | - | » All matches |
| Premiership | 189 | 120 | 69 | 70 | 10.864 | 12 | - | 6 | 28 | - | - | » All matches | |
| Championship | 110 | 73 | 37 | 43 | 6.621 | 18 | - | 10 | 17 | - | 1 | » All matches | |
| League One | 17 | 17 | - | 11 | 1.429 | 2 | - | 1 | 4 | - | - | » All matches | |
| FA Cup | 14 | 9 | 5 | 7 | 758 | 1 | - | 1 | 1 | - | - | » All matches | |
| League Cup | 33 | 24 | 9 | 11 | 2.245 | 5 | - | 1 | 5 | - | - | » All matches | |
| Challenge Cup | 5 | 3 | 2 | 1 | 357 | 1 | - | - | 1 | - | - | » All matches | |
| Playoffs | 10 | 8 | 2 | 7 | 708 | 1 | - | 2 | 2 | - | - | » All matches | |
| Total | 380 | 255 | 125 | 151 | 23.064 | 40 | - | - | 58 | - | 1 |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | U17 EURO | 2 | 1 | 1 | 1 | 68 | - | - | - | - | - | - | » All matches |
| Total | 2 | 1 | 1 | 1 | 68 | - | - | - | - | - | - |










