Runner-up: Premiership 2017/18, 2016/17
801 minutes · 7 starts · 57 a game
Striker 92% · Attacking midfielder 4% · Right winger 3% · Central midfielder 1% · of his last 72 starts
Each attribute, out of 99: how he compares with the 642 outfield players in Championship with ten full games or more, over 2025/26 and 2026/27, 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 his average match rating. League matches only.
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 | LivingstonChampionship | 14 (7) | 801 | 0 | 1 | 6.48 |
| 2025/26 | KilmarnockPremiership | 35 (23) | 1,910 | 4 | 2 | 6.61 |
| 2024/25 | KilmarnockPremiership | 31 (15) | 1,480 | 11 | 1 | 6.96 |
| 2023/24 | LivingstonPremiership | 34 (17) | 1,920 | 7 | 0 | 6.80 |
| 2022/23 | LivingstonPremiership | 30 (21) | 1,859 | 6 | 2 | 6.83 |
| 2021/22 | LivingstonPremiership | 28 (20) | 1,594 | 11 | 4 | 7.02 |
| 2020/21 | Hamilton AcademicalPremiership | 13 (13) | 1,076 | 2 | 2 | 6.91 |
| 2020/21 | Ayr UnitedChampionship | 9 (7) | 602 | 0 | 0 | – |
| 2020/21 | AberdeenPremiership | 6 (1) | 102 | 0 | 0 | 6.45 |
| 2019/20 | AberdeenPremiership | 11 (1) | 226 | 1 | 1 | 6.73 |
| 2018/19 | Dunfermline AthleticChampionship | 14 (14) | 1,198 | 5 | 0 | – |
| 2018/19 | AberdeenPremiership | 14 (1) | 295 | 2 | 0 | – |
| 2017/18 | AberdeenPremiership | 0 (0) | 0 | 0 | 0 | – |
| 2016/17 | AberdeenPremiership | 0 (0) | 0 | 0 | 0 | – |
| All 11 seasons | 239 (140) | 13,063 | 49 | 13 | 6.81 | |
Apps (starts). Ratings are match ratings, averaged over the season. League matches in the competitions we cover.
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.
Games he started or came on in; league games only (cups and European games aren’t in our data).
| Player | Club | Shots | Goals | Minutes |
|---|---|---|---|---|
| Jarrod Bowen | West Ham | 54 | 7 | 1341 |
| Will Lankshear | Middlesbrough | 48 | 13 | 1049 |
| Jay Stansfield | Birmingham | 42 | 4 | 1276 |
| Robbie Muirhead | Livingston | 37 | 10 | 1316 |
| Adrian Segečić | Portsmouth | 37 | 2 | 1168 |
| Kieffer Moore | Wrexham | 37 | 5 | 1057 |
| Yousef Salech | Cardiff | 37 | 5 | 997 |
| Amario Cozier-Duberry | Middlesbrough | 36 | 3 | 763 |
| Cyle Larin | Southampton | 36 | 7 | 731 |
| Ollie Tanner | Cardiff | 35 | 3 | 1187 |
| Taty Castellanos | West Ham | 35 | 1 | 879 |
| Oladapo Afolayan | Blackburn | 32 | 5 | 1114 |
| Andrew Tod Junior | Dunfermline Athletic | 32 | 2 | 870 |
| Largie Ramazani | Burnley | 31 | 4 | 908 |
| August Priske | Birmingham | 30 | 6 | 881 |
| Mateus Mané | Wolves | 30 | 0 | 862 |
| Lorent Tolaj | Bristol City | 30 | 2 | 843 |
| Dom Ballard | Bristol City | 30 | 4 | 784 |
| Kwame Poku | QPR | 30 | 1 | 782 |
| Léo Scienza | Southampton | 28 | 2 | 974 |
| Adam Armstrong | Wolves | 28 | 4 | 929 |
| Jimmy-Jay Morgan | West Brom | 27 | 5 | 1055 |
| Adam Idah | Swansea | 27 | 4 | 730 |
| Harvey Vale | QPR | 26 | 1 | 978 |
| Camiel Neghli | Millwall | 25 | 3 | 1291 |
| Thierry Gale | Bolton | 24 | 3 | 992 |
| Lyndon Dykes | Millwall | 24 | 4 | 958 |
| Tyreece Campbell | Charlton | 23 | 4 | 1197 |
| Iker Bravo | Watford | 23 | 1 | 1107 |
| Karlan Grant | Charlton | 23 | 2 | 1042 |
| Freddie Draper | Lincoln | 22 | 2 | 949 |
| Paul Smyth | QPR | 22 | 3 | 864 |
| Tom Cannon | Sheffield Utd | 22 | 3 | 792 |
| Sam Dalby | Bolton | 21 | 6 | 1132 |
| Carlton Morris | Derby County | 21 | 1 | 943 |
| Reeco Hackett | Lincoln | 21 | 2 | 810 |
| Andri Gudjohnsen | Blackburn | 20 | 10 | 942 |
| Carlos Vicente | Birmingham | 20 | 2 | 850 |
| Abu Kamara | Portsmouth | 19 | 0 | 1192 |
| Callum Lang | Preston | 19 | 4 | 926 |
| Ben House | Lincoln | 18 | 2 | 959 |
| Joseph Opoku | Swansea | 18 | 3 | 853 |
| Liam Millar | Birmingham | 18 | 4 | 800 |
| Tyrese Sinclair | Livingston | 17 | 0 | 778 |
| Yu Hirakawa | Bristol City | 17 | 1 | 770 |
| Olamilekan Adams | Dunfermline Athletic | 17 | 0 | 722 |
| Manor Solomon | West Ham | 16 | 2 | 1040 |
| Miles Leaburn | Charlton | 16 | 0 | 947 |
| Moussa Yeo | Swansea | 16 | 3 | 826 |
| Dom Jefferies | Lincoln | 16 | 2 | 815 |
| Mamadou Doumbia | Watford | 15 | 1 | 742 |
| Alfie Bavidge | Inverness CT | 14 | 5 | 838 |
| Patrick Bamford | Sheffield Utd | 14 | 5 | 789 |
| Ben Brereton Díaz | Sheffield Utd | 13 | 1 | 923 |
| Owen Stirton | Ayr United | 13 | 2 | 831 |
| Michael Ruth | Queen's Park | 12 | 2 | 955 |
| Delano Burgzorg | Preston | 12 | 0 | 749 |
| Aidan Connolly | Queen's Park | 11 | 4 | 1347 |
| Sebastian Drozd | Partick Thistle | 11 | 2 | 1153 |
| Bruce Anderson (picked out) | Livingston | 11 | 0 | 801 |
| Lewis Stewart | Queen's Park | 10 | 0 | 842 |
| Chris Willock | Cardiff | 10 | 0 | 829 |
| Tony Watt | Partick Thistle | 10 | 5 | 816 |
| Michael Garrity | Greenock Morton | 9 | 3 | 1039 |
| Ross Taylor | Ayr United | 9 | 2 | 898 |
| Mark Sykes | Millwall | 9 | 1 | 745 |
| Ryan Duncan | Inverness CT | 9 | 1 | 722 |
| Paul McMullan | Raith Rovers | 8 | 1 | 992 |
| Scott Tiffoney | Raith Rovers | 8 | 1 | 976 |
| George Oakley | Raith Rovers | 8 | 6 | 756 |
| Aidan Fitzpatrick | Partick Thistle | 7 | 0 | 931 |
| Liam Sole | Inverness CT | 7 | 1 | 749 |
| Ryan Dow | Arbroath | 6 | 0 | 942 |
| Ryan Hedges | Derby County | 6 | 0 | 793 |
| Bradly van Hoeven | Livingston | 5 | 2 | 756 |
Championship 2026/27, regular forwards (720+ minutes), as of 15 Nov 2026. League rate: all 75 players’ goals over their shots. Every attempt counts the same, however good the chance: a rate, not expected goals.