Age 25
Height 173 cm
Foot Left
Country Scotland
Value €774.2k
Contract 2029-06-30
📈
Form
Rating per season, last 5 matches, and timeline all matches
Season
6.97
37 matches
Last 5
6.68
-0.29 vs season
Best
8.3
vs AFC Wimbledon
MOTM
1
of 33 matches
Rating by match (last 30)
≥8.0
7.0–8.0
6.0–7.0
5.5–6.0
<5.5
🧬
Attributes
Chances created
Aerial duels
Defensive actions
Goals
Shot attempts
Touches
Filter:
Apps
37
Goals
0
Assists
4
Rating
6.97
Goals
0
0%
Assists
3
66%
Rating
6.98
76%
Matches
30
50%
Started
22
56%
Minutes
1723
50%
🎯
Stats compared to other midfielders
League One · percentile vs peers
Chances created
52%
Aerial duels
72%
Defensive actions
84%
Goals
0%
Shot attempts
5%
Touches
81%
🎯
Shot Map
6 shots per season
Goals
0
On target
4
xG
0.25
Conversion
0%
Goal
Saved
Off target
🔥
Heatmap
1448 touches this season
Attack
Touches
1448
Attack
20%
Middle
54%
Ø position
48%
Detailed Stats & Percentiles (League One)
Shooting
| Stat | Total | Per 90 |
Percentile
avg 20%
|
Per 90 pctl
avg 17%
|
|---|---|---|---|---|
| Goals | 0 | 0.00 |
0
|
0
|
| xG | 0.25 | 0.01 |
17
|
8
|
| xG excl. penalty | 0.25 | 0.01 |
17
|
8
|
| Shots | 6 | 0.31 |
19
|
7
|
| Headed shots | 1 | 0.05 |
49
|
60
|
Passing
| Stat | Total | Per 90 |
Percentile
avg 64%
|
Per 90 pctl
avg 67%
|
|---|---|---|---|---|
| Assists | 3 | 0.16 |
66
|
78
|
| xA | 1.16 | 0.06 |
39
|
29
|
| Accurate passes | 814 | 42.52 |
71
|
86
|
| Pass accuracy | 85.1 | 85.06 |
92
|
92
|
| Accurate long balls | 48 | 2.51 |
69
|
78
|
| Long ball accuracy | 56.5 | 56.47 |
90
|
90
|
| Chances created | 20 | 1.04 |
57
|
60
|
| Big chances created | 2 | 0.10 |
38
|
41
|
| Successful crosses | 4 | 0.21 |
31
|
30
|
| Cross accuracy | 36.4 | 36.36 |
90
|
90
|
Possession
| Stat | Total | Per 90 |
Percentile
avg 66%
|
Per 90 pctl
avg 69%
|
|---|---|---|---|---|
| Dribbles | 17 | 0.89 |
76
|
76
|
| Dribbles success rate | 89.5 | 89.47 |
97
|
97
|
| Duels won | 122 | 6.37 |
66
|
81
|
| Duels won % | 60.7 | 60.70 |
89
|
89
|
| Aerials won | 24 | 1.25 |
55
|
51
|
| Aerials won % | 58.5 | 58.54 |
80
|
80
|
| Touches | 1263 | 65.97 |
60
|
82
|
| Touches in opposition box | 15 | 0.78 |
39
|
32
|
| Dispossessed | 16 | 0.84 |
36
|
43
|
| Fouls won | 24 | 1.25 |
63
|
64
|
Defending
| Stat | Total | Per 90 |
Percentile
avg 55%
|
Per 90 pctl
avg 65%
|
|---|---|---|---|---|
| Defensive actions | 127 | 6.63 |
67
|
89
|
| Tackles | 57 | 2.98 |
75
|
92
|
| Interceptions | 26 | 1.36 |
73
|
88
|
| Blocked scoring attempt | 8 | 0.42 |
66
|
69
|
| Fouls committed | 25 | 1.31 |
56
|
66
|
| Recoveries | 100 | 5.22 |
61
|
71
|
| Possession won final 3rd | 5 | 0.26 |
40
|
36
|
| Dribbled past | 20 | 1.04 |
26
|
22
|
| Clearances | 36 | 1.88 |
55
|
61
|
| Clean sheets | 1 | 0.05 |
25
|
27
|
| Goals conceded while on pitch | 23 | 1.20 |
51
|
65
|
| xG against while on pitch | 16.82 | 0.88 |
68
|
96
|
Discipline
| Stat | Total | Per 90 |
Percentile
avg 68%
|
Per 90 pctl
avg 70%
|
|---|---|---|---|---|
| Yellow cards | 4 | 0.21 |
37
|
40
|
| Red cards | 0 | 0.00 |
100
|
100
|
Shooting
| Stat | Total | Per 90 |
Percentile
avg 20%
|
Per 90 pctl
avg 17%
|
|---|---|---|---|---|
| Goals | 0 | 0.00 |
0
|
0
|
| xG | 0.25 | 0.01 |
17
|
8
|
| xG excl. penalty | 0.25 | 0.01 |
17
|
8
|
| Shots | 6 | 0.31 |
19
|
7
|
| Headed shots | 1 | 0.05 |
49
|
60
|
Passing
| Stat | Total | Per 90 |
Percentile
avg 64%
|
Per 90 pctl
avg 67%
|
|---|---|---|---|---|
| Assists | 3 | 0.16 |
66
|
78
|
| xA | 1.16 | 0.06 |
39
|
29
|
| Accurate passes | 814 | 42.52 |
71
|
86
|
| Pass accuracy | 85.1 | 85.06 |
92
|
92
|
| Accurate long balls | 48 | 2.51 |
69
|
78
|
| Long ball accuracy | 56.5 | 56.47 |
90
|
90
|
| Chances created | 20 | 1.04 |
57
|
60
|
| Big chances created | 2 | 0.10 |
38
|
41
|
| Successful crosses | 4 | 0.21 |
31
|
30
|
| Cross accuracy | 36.4 | 36.36 |
90
|
90
|
Possession
| Stat | Total | Per 90 |
Percentile
avg 66%
|
Per 90 pctl
avg 69%
|
|---|---|---|---|---|
| Dribbles | 17 | 0.89 |
76
|
76
|
| Dribbles success rate | 89.5 | 89.47 |
97
|
97
|
| Duels won | 122 | 6.37 |
66
|
81
|
| Duels won % | 60.7 | 60.70 |
89
|
89
|
| Aerials won | 24 | 1.25 |
55
|
51
|
| Aerials won % | 58.5 | 58.54 |
80
|
80
|
| Touches | 1263 | 65.97 |
60
|
82
|
| Touches in opposition box | 15 | 0.78 |
39
|
32
|
| Dispossessed | 16 | 0.84 |
36
|
43
|
| Fouls won | 24 | 1.25 |
63
|
64
|
Defending
| Stat | Total | Per 90 |
Percentile
avg 55%
|
Per 90 pctl
avg 65%
|
|---|---|---|---|---|
| Defensive actions | 127 | 6.63 |
67
|
89
|
| Tackles | 57 | 2.98 |
75
|
92
|
| Interceptions | 26 | 1.36 |
73
|
88
|
| Blocked scoring attempt | 8 | 0.42 |
66
|
69
|
| Fouls committed | 25 | 1.31 |
56
|
66
|
| Recoveries | 100 | 5.22 |
61
|
71
|
| Possession won final 3rd | 5 | 0.26 |
40
|
36
|
| Dribbled past | 20 | 1.04 |
26
|
22
|
| Clearances | 36 | 1.88 |
55
|
61
|
| Clean sheets | 1 | 0.05 |
25
|
27
|
| Goals conceded while on pitch | 23 | 1.20 |
51
|
65
|
| xG against while on pitch | 16.82 | 0.88 |
68
|
96
|
Discipline
| Stat | Total | Per 90 |
Percentile
avg 68%
|
Per 90 pctl
avg 70%
|
|---|---|---|---|---|
| Yellow cards | 4 | 0.21 |
37
|
40
|
| Red cards | 0 | 0.00 |
100
|
100
|
Recent Matches (41)
| Date | Opponent | Comp | Score | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|
| 2026-05-24 | vs Stockport County | League One Playoff | 4-1 | 0 | 0 | 0 | |
| 2026-05-14 | @ Bradford City | League One Playoff | 0-1 | 76 | 0 | 0 | 7.6 |
| 2026-05-09 | vs Bradford City | League One Playoff | 1-0 | 71 | 0 | 0 | 6.8 |
| 2026-03-21 | @ Port Vale | League One | 1-0 | 61 | 0 | 0 | 6.9 |
| 2026-03-17 | vs Doncaster Rovers | League One | 0-0 | 0 | 0 | 0 | |
| 2026-03-14 | @ Rotherham United | League One | 2-2 | 45 | 0 | 0 | 5.7 |
| 2026-03-07 | vs Wycombe Wanderers | League One | 3-2 | 64 | 0 | 0 | 6.4 |
| 2026-02-28 | @ Exeter City | League One | 1-5 | 90 | 0 | 0 | 6.9 |
| 2026-02-21 | vs Blackpool | League One | 2-2 | 82 | 0 | 0 | 7.1 |
| 2026-02-17 | @ Reading | League One | 1-1 | 70 | 0 | 0 | 6.8 |
| 2026-02-14 | @ Lincoln City | League One | 1-1 | 90 | 0 | 1 | 8.0 |
| 2026-02-07 | vs Barnsley | League One | 3-2 | 90 | 0 | 0 | 7.0 |
| 2026-01-31 | @ AFC Wimbledon | League One | 0-1 | 90 | 0 | 0 | 8.3 ⭐ |
| 2026-01-27 | vs Burton Albion | League One | 2-1 | 90 | 0 | 0 | 7.6 |
| 2026-01-24 | vs Leyton Orient | League One | 2-1 | 90 | 0 | 1 | 7.3 |
| 2026-01-20 | @ Stevenage | League One | 0-0 | 2 | 0 | 0 | |
| 2026-01-17 | @ Wigan Athletic | League One | 0-1 | 0 | 0 | 0 | |
| 2026-01-13 | vs Port Vale | EFL Trophy | 0-1 | 8 | 0 | 0 | |
| 2026-01-10 | @ Peterborough United | League One | 3-1 | 45 | 0 | 0 | 6.6 |
| 2026-01-04 | vs Northampton Town | League One | 0-0 | 58 | 0 | 0 | 6.8 |
| 2026-01-01 | @ Doncaster Rovers | League One | 1-1 | 77 | 0 | 0 | 7.1 |
| 2025-12-26 | vs Rotherham United | League One | 2-1 | 81 | 0 | 0 | 7.8 |
| 2025-12-20 | @ Wycombe Wanderers | League One | 2-1 | 29 | 0 | 0 | 6.4 |
| 2025-12-13 | vs Exeter City | League One | 2-1 | 71 | 0 | 0 | 7.6 |
| 2025-12-09 | @ Mansfield Town | League One | 0-1 | 56 | 0 | 0 | 7.1 |
| 2025-12-06 | @ Swindon Town | FA Cup | 4-0 | 15 | 0 | 0 | |
| 2025-12-02 | vs Bradford City | EFL Trophy | 3-0 | 64 | 0 | 0 | 7.3 |
| 2025-11-29 | @ Luton Town | League One | 1-1 | 16 | 0 | 0 | 6.5 |
| 2025-10-04 | vs Peterborough United | League One | 2-1 | 78 | 0 | 0 | 8.1 |
| 2025-09-27 | @ Northampton Town | League One | 2-0 | 16 | 0 | 0 | 6.3 |
| 2025-09-20 | vs Wigan Athletic | League One | 4-1 | 85 | 0 | 1 | 8.2 |
| 2025-09-13 | @ Leyton Orient | League One | 1-1 | 17 | 0 | 0 | 5.9 |
| 2025-09-06 | vs AFC Wimbledon | League One | 3-0 | 0 | 0 | 0 | |
| 2025-09-02 | vs Rotherham United | EFL Trophy Northern Grp. E | 1-0 | 29 | 0 | 0 | 5.9 |
| 2025-08-30 | @ Blackpool | League One | 1-1 | 73 | 0 | 0 | 6.5 |
| 2025-08-23 | vs Lincoln City | League One | 1-1 | 45 | 0 | 0 | 6.1 |
| 2025-08-20 | vs Reading | League One | 1-1 | 83 | 0 | 0 | 7.4 |
| 2025-08-16 | @ Barnsley | League One | 1-1 | 10 | 0 | 0 | 6.6 |
| 2025-08-13 | vs Sheffield Wednesday | EFL Cup | 3-3 | 90 | 0 | 1 | 7.7 |
| 2025-08-09 | vs Plymouth Argyle | League One | 2-0 | 8 | 0 | 0 |
Career
| Season | Team | Type | Apps | G | A | Rating |
|---|---|---|---|---|---|---|
| 2025/2026 | Bolton Wanderers | senior | 37 | 0 | 4 | 6.97 |
| 2024/2025 | Lincoln City | senior | 38 | 0 | 1 | 6.95 |
| 2023/2024 | Lincoln City | senior | 50 | 2 | 4 | 7.23 |
| 2022/2023 | Lincoln City | senior | 19 | 0 | 1 | 7.33 |
| 2022/2023 | St. Mirren | senior | 25 | 0 | 1 | 7.10 |
| 2021/2022 | St. Mirren | senior | 29 | 1 | 2 | 6.76 |
| 2020/2021 | St. Mirren | senior | 40 | 2 | 0 | 6.73 |
| 2019/2020 | St. Mirren | senior | 4 | 0 | 1 | - |
| 2018/2019 | St. Mirren | senior | 22 | 1 | 1 | - |
| 2017/2018 | St. Mirren | senior | 2 | 0 | 0 | - |
| 2019/2020 | Saint Mirren B | senior | 3 | 0 | 0 | - |
| 2018/2019 | Saint Mirren B | senior | 2 | 0 | 0 | - |
| 2018 | Scotland U17 | national team | 5 | 0 | 0 | - |
Transfer Value History
Teammates
Carlos Mendes
Charlie Warren
Joel Randall
Luke Hutchinson
Sam Inwood
Jack Bonham
Chris Forino-Joseph
Xavier Simons
Richard Taylor
George Johnston
Josh Sheehan
Johnny Kenny
Sam Dalby
Thierry Gale
Nathan Broome
Jordi Osei-Tutu
Rob Apter
Eoin Toal
Ibrahim Cissoko
Kyle Dempsey
David Harrington
Max Conway
Lewis Temple
Ruben Rodrigues
Cyrus Christie
Corey Blackett-Taylor
Daeshon Lawrence
John McAtee
Mason Burstow
Tobias Ritchie
Trophies
St. Mirren
🏆
Championship
x1
Bolton Wanderers