Attributes appear once he has ten full games over this season and last.
Striker 50% · Left midfielder 33% · Right midfielder 11% · Central midfielder 6% · of his last 18 starts
Rating is his average match rating. League matches only.
166 minutes · 1 starts · 33 a game
From the historical record: Wikidata (CC0) and Wikipedia’s transfer lists (), 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.
League matches in the competitions we cover. Per 90 shown from five full games. Cups, Europe and internationals aren’t included.
| Season | Club | Apps | Minutes | Goals | Assists | Rating |
|---|---|---|---|---|---|---|
| 2026/27 | StenhousemuirChampionship | 3 (1) | 139 | 0 | 0 | 6.51 |
| 2026/27 | St. JohnstonePremiership | 2 (0) | 27 | 0 | 0 | 6.40 |
| 2025/26 | St. JohnstoneChampionship | 5 (1) | 150 | 0 | 0 | 6.42 |
| 2020/21 | Shrewsbury TownLeague One | 0 (0) | 0 | 0 | 0 | – |
| All 3 seasons | 10 (2) | 316 | 0 | 0 | 6.46 | |
Apps (starts). Ratings are match ratings, averaged over the season. League matches in the competitions we cover.
Latest matchday: unused substitute at Greenock Morton, Sat 7 Nov
Games he started or came on in; league games only (cups and European games aren’t in our data).