Striker · age 38 · Northern Ireland · 5 ft 7 in (1.70 m) · right foot · contract to May 2027
Career 508 apps · 151 goals · 31 assists · league games since 2010/11
1,123 minutes · 12 starts · 45 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.
Striker 100% · of his last 40 starts
Each attribute, out of 99: how he compares with the 603 outfield players in League One with ten full games or more, over 2025/26, marked down when he's below par among forwards (so playing up front alone doesn't make a shooter); passing against other forwards only, since where you play decides how safe your passes are. Rating is Sportmonks’ match rating, averaged. League matches only.
| Season | Club | Apps | Minutes | Goals | Assists | Rating |
|---|---|---|---|---|---|---|
| 2025/26 | Inverness CTLeague One | 25 (12) | 1,123 | 6 | 1 | – |
| 2024/25 | Inverness CTLeague One | 36 (33) | 2,959 | 6 | 4 | – |
| 2023/24 | Inverness CTChampionship | 40 (37) | 2,973 | 9 | 5 | – |
| 2022/23 | Inverness CTChampionship | 34 (32) | 2,746 | 14 | 6 | – |
| 2021/22 | Inverness CTChampionship | 38 (30) | 2,773 | 9 | 3 | – |
| 2020/21 | Ross CountyPremiership | 28 (14) | 1,292 | 5 | 1 | 6.98 |
| 2019/20 | Ross CountyPremiership | 27 (22) | 1,927 | 7 | 5 | 6.99 |
| 2018/19 | Ross CountyChampionship | 24 (22) | 1,831 | 17 | 3 | – |
| 2017/18 | Ross CountyPremiership | 22 (14) | 1,134 | 3 | 0 | – |
| 2016/17 | Oldham AthleticLeague One | 26 (20) | 1,694 | 0 | 0 | – |
| 2016/17 | Inverness CTPremiership | 15 (14) | 1,261 | 4 | 0 | – |
| 2015/16 | Dundee UnitedPremiership | 29 (28) | 2,359 | 12 | 3 | – |
| 2015/16 | Wigan AthleticLeague One | 1 (0) | 12 | 0 | 0 | – |
| 2014/15 | Inverness CTPremiership | 23 (22) | 1,929 | 10 | 0 | – |
| 2014/15 | Wigan AthleticChampionship | 9 (1) | 258 | 0 | 0 | – |
| 2013/14 | Inverness CTPremiership | 38 (38) | 3,328 | 18 | 0 | – |
| 2012/13 | Inverness CTPremiership | 38 (33) | 2,859 | 23 | 0 | – |
| 2011/12 | Inverness CTPremiership | 22 (17) | 1,472 | 3 | 0 | – |
| 2010/11 | Northampton TownLeague Two | 33 (24) | 2,180 | 5 | 0 | – |
| All 16 seasons | 508 (413) | 36,110 | 151 | 31 | 6.99 | |
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.