Right midfielder · age 26 · Scotland · 5 ft 9 in (1.75 m) · left foot · contract to May 2028
Career 39 apps · 1 goals · 4 assists · league games since 2018/19
Attributes appear once he has ten full games over this season and last.
Right midfielder 45% · Right winger 28% · Attacking midfielder 15% · Left midfielder 3% · of his last 60 starts
Rating is Sportmonks’ match rating, averaged. League matches only.
121 minutes · 0 starts · 17 a game
League matches in the competitions we cover, from Sportmonks. Per 90 shown from five full games. Cups, Europe and internationals aren’t included.
| Season | Club | Apps | Minutes | Goals | Assists | Rating |
|---|---|---|---|---|---|---|
| 2026/27 | St. JohnstonePremiership | 7 (0) | 121 | 0 | 1 | 6.57 |
| 2025/26 | Partick ThistlePremiership Play-Offs | 4 (3) | 237 | 1 | 1 | – |
| 2024/25 | Partick ThistlePremiership Play-Offs | 2 (2) | 180 | 0 | 0 | – |
| 2022/23 | Dundee UnitedPremiership | 0 (0) | 0 | 0 | 0 | – |
| 2021/22 | Inverness CTPremiership Play-Offs | 6 (5) | 397 | 0 | 0 | – |
| 2021/22 | Dundee UnitedPremiership | 5 (2) | 176 | 0 | 0 | 6.83 |
| 2020/21 | Dundee UnitedPremiership | 15 (9) | 806 | 0 | 2 | 6.81 |
| 2018/19 | Dundee UnitedPremiership Play-Offs | 0 (0) | 0 | 0 | 0 | – |
| All 7 seasons | 39 (21) | 1,917 | 1 | 4 | 6.79 | |
Apps (starts). Ratings are Sportmonks’ match ratings, averaged over the season. League matches in the competitions we cover, from Sportmonks.
From the historical record: Wikidata (CC0) and Wikipedia’s transfer lists (CC BY-SA 4.0), each fee credited to the outlet or club that reported it. Dates are only as exact as the record; “Move” means the type wasn’t recorded. Retrospective record, not Swoop intelligence.
Latest matchday: unused substitute v Dundee, Sat 7 Nov
Games he started or came on in; league games only (cups and European games aren’t in our data). Ratings from Sportmonks.