Age 31
Height 184 cm
Foot Right
Country Wales
Value €315.6k
Contract 2028-06-30
📈
Form
Rating per season, last 5 matches, and timeline all matches
Season
7.09
46 matches
Last 5
7.06
-0.03 vs season
Best
9.3
vs Rotherham United
MOTM
4
of 46 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
46
Goals
3
Assists
4
Rating
7.09
Goals
3
80%
Assists
4
80%
Rating
7.13
89%
Matches
38
71%
Started
29
73%
Minutes
2722
78%
🎯
Stats compared to other midfielders
League One · percentile vs peers
Chances created
79%
Aerial duels
30%
Defensive actions
28%
Goals
51%
Shot attempts
71%
Touches
87%
🎯
Shot Map
44 shots per season
Goals
3
On target
29
xG
1.73
Conversion
7%
Goal
Saved
Off target
🔥
Heatmap
2463 touches this season
Attack
Touches
2463
Attack
24%
Middle
52%
Ø position
50%
Detailed Stats & Percentiles (League One)
Shooting
| Stat | Total | Per 90 |
Percentile
avg 78%
|
Per 90 pctl
avg 65%
|
|---|---|---|---|---|
| Goals | 3 | 0.10 |
80
|
65
|
| xG | 1.73 | 0.06 |
66
|
51
|
| xGOT | 2.23 | 0.07 |
76
|
63
|
| xG excl. penalty | 1.73 | 0.06 |
67
|
53
|
| Shots | 44 | 1.45 |
87
|
80
|
| Shots on target | 13 | 0.43 |
88
|
80
|
Passing
| Stat | Total | Per 90 |
Percentile
avg 88%
|
Per 90 pctl
avg 84%
|
|---|---|---|---|---|
| Assists | 4 | 0.13 |
80
|
69
|
| xA | 5.12 | 0.17 |
89
|
80
|
| Accurate passes | 1536 | 50.79 |
94
|
96
|
| Pass accuracy | 85.6 | 85.62 |
93
|
93
|
| Accurate long balls | 158 | 5.22 |
96
|
96
|
| Long ball accuracy | 55.6 | 55.63 |
90
|
90
|
| Chances created | 53 | 1.75 |
91
|
87
|
| Big chances created | 5 | 0.17 |
70
|
54
|
| Successful crosses | 36 | 1.19 |
87
|
85
|
| Cross accuracy | 36.4 | 36.36 |
90
|
90
|
Possession
| Stat | Total | Per 90 |
Percentile
avg 59%
|
Per 90 pctl
avg 48%
|
|---|---|---|---|---|
| Dribbles | 5 | 0.17 |
27
|
10
|
| Dribbles success rate | 27.8 | 27.78 |
7
|
7
|
| Duels won | 119 | 3.93 |
64
|
16
|
| Duels won % | 57.5 | 57.49 |
81
|
81
|
| Aerials won | 21 | 0.69 |
50
|
17
|
| Aerials won % | 48.8 | 48.84 |
46
|
46
|
| Touches | 2232 | 73.80 |
88
|
92
|
| Touches in opposition box | 26 | 0.86 |
65
|
40
|
| Dispossessed | 8 | 0.26 |
66
|
87
|
| Fouls won | 54 | 1.79 |
94
|
84
|
Defending
| Stat | Total | Per 90 |
Percentile
avg 60%
|
Per 90 pctl
avg 51%
|
|---|---|---|---|---|
| Defensive actions | 123 | 4.07 |
63
|
23
|
| Tackles | 40 | 1.32 |
55
|
11
|
| Interceptions | 32 | 1.06 |
85
|
69
|
| Blocked scoring attempt | 8 | 0.26 |
66
|
43
|
| Fouls committed | 34 | 1.12 |
76
|
53
|
| Recoveries | 123 | 4.07 |
70
|
35
|
| Possession won final 3rd | 6 | 0.20 |
46
|
20
|
| Dribbled past | 15 | 0.50 |
46
|
82
|
| Clearances | 43 | 1.42 |
65
|
33
|
| Clean sheets | 7 | 0.23 |
83
|
83
|
| Goals conceded while on pitch | 34 | 1.12 |
30
|
75
|
| xG against while on pitch | 31.40 | 1.04 |
31
|
86
|
Discipline
| Stat | Total | Per 90 |
Percentile
avg 52%
|
Per 90 pctl
avg 58%
|
|---|---|---|---|---|
| Yellow cards | 10 | 0.33 |
4
|
16
|
| Red cards | 0 | 0.00 |
100
|
100
|
Shooting
| Stat | Total | Per 90 |
Percentile
avg 78%
|
Per 90 pctl
avg 65%
|
|---|---|---|---|---|
| Goals | 3 | 0.10 |
80
|
65
|
| xG | 1.73 | 0.06 |
66
|
51
|
| xGOT | 2.23 | 0.07 |
76
|
63
|
| xG excl. penalty | 1.73 | 0.06 |
67
|
53
|
| Shots | 44 | 1.45 |
87
|
80
|
| Shots on target | 13 | 0.43 |
88
|
80
|
Passing
| Stat | Total | Per 90 |
Percentile
avg 88%
|
Per 90 pctl
avg 84%
|
|---|---|---|---|---|
| Assists | 4 | 0.13 |
80
|
69
|
| xA | 5.12 | 0.17 |
89
|
80
|
| Accurate passes | 1536 | 50.79 |
94
|
96
|
| Pass accuracy | 85.6 | 85.62 |
93
|
93
|
| Accurate long balls | 158 | 5.22 |
96
|
96
|
| Long ball accuracy | 55.6 | 55.63 |
90
|
90
|
| Chances created | 53 | 1.75 |
91
|
87
|
| Big chances created | 5 | 0.17 |
70
|
54
|
| Successful crosses | 36 | 1.19 |
87
|
85
|
| Cross accuracy | 36.4 | 36.36 |
90
|
90
|
Possession
| Stat | Total | Per 90 |
Percentile
avg 59%
|
Per 90 pctl
avg 48%
|
|---|---|---|---|---|
| Dribbles | 5 | 0.17 |
27
|
10
|
| Dribbles success rate | 27.8 | 27.78 |
7
|
7
|
| Duels won | 119 | 3.93 |
64
|
16
|
| Duels won % | 57.5 | 57.49 |
81
|
81
|
| Aerials won | 21 | 0.69 |
50
|
17
|
| Aerials won % | 48.8 | 48.84 |
46
|
46
|
| Touches | 2232 | 73.80 |
88
|
92
|
| Touches in opposition box | 26 | 0.86 |
65
|
40
|
| Dispossessed | 8 | 0.26 |
66
|
87
|
| Fouls won | 54 | 1.79 |
94
|
84
|
Defending
| Stat | Total | Per 90 |
Percentile
avg 60%
|
Per 90 pctl
avg 51%
|
|---|---|---|---|---|
| Defensive actions | 123 | 4.07 |
63
|
23
|
| Tackles | 40 | 1.32 |
55
|
11
|
| Interceptions | 32 | 1.06 |
85
|
69
|
| Blocked scoring attempt | 8 | 0.26 |
66
|
43
|
| Fouls committed | 34 | 1.12 |
76
|
53
|
| Recoveries | 123 | 4.07 |
70
|
35
|
| Possession won final 3rd | 6 | 0.20 |
46
|
20
|
| Dribbled past | 15 | 0.50 |
46
|
82
|
| Clearances | 43 | 1.42 |
65
|
33
|
| Clean sheets | 7 | 0.23 |
83
|
83
|
| Goals conceded while on pitch | 34 | 1.12 |
30
|
75
|
| xG against while on pitch | 31.40 | 1.04 |
31
|
86
|
Discipline
| Stat | Total | Per 90 |
Percentile
avg 52%
|
Per 90 pctl
avg 58%
|
|---|---|---|---|---|
| Yellow cards | 10 | 0.33 |
4
|
16
|
| Red cards | 0 | 0.00 |
100
|
100
|
Recent Matches (57)
| Date | Opponent | Comp | Score | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|
| 2026-05-24 | vs Stockport County | League One Playoff | 4-1 | 90 | 0 | 0 | 6.8 |
| 2026-05-14 | @ Bradford City | League One Playoff | 0-1 | 90 | 0 | 0 | 7.4 |
| 2026-05-09 | vs Bradford City | League One Playoff | 1-0 | 90 | 0 | 0 | 7.6 |
| 2026-05-02 | vs Luton Town | League One | 2-3 | 90 | 0 | 0 | 6.7 |
| 2026-04-25 | @ Bradford City | League One | 1-1 | 87 | 0 | 0 | 6.8 |
| 2026-04-18 | vs Huddersfield Town | League One | 3-3 | 90 | 0 | 0 | 7.3 |
| 2026-04-14 | vs Stevenage | League One | 5-1 | 90 | 0 | 0 | 7.6 |
| 2026-04-11 | @ Cardiff City | League One | 2-0 | 90 | 0 | 0 | 6.4 |
| 2026-04-06 | vs Stockport County | League One | 2-2 | 90 | 0 | 0 | 7.1 |
| 2026-04-03 | @ Plymouth Argyle | League One | 1-2 | 90 | 0 | 0 | 6.4 |
| 2026-03-31 | vs Northern Ireland | Friendlies | 1-1 | 90 | 0 | 0 | 7.3 |
| 2026-03-26 | vs Bosnia and Herzegovina | World Cup Qualification UEFA 2nd Round | 1-1 | 0 | 0 | 0 | |
| 2026-03-21 | @ Port Vale | League One | 1-0 | 29 | 0 | 0 | 6.3 |
| 2026-03-17 | vs Doncaster Rovers | League One | 0-0 | 85 | 0 | 0 | 7.0 |
| 2026-03-14 | @ Rotherham United | League One | 2-2 | 90 | 0 | 0 | 6.8 |
| 2026-03-07 | vs Wycombe Wanderers | League One | 3-2 | 90 | 0 | 0 | 6.2 |
| 2026-02-28 | @ Exeter City | League One | 1-5 | 80 | 0 | 1 | 7.9 |
| 2026-02-21 | vs Blackpool | League One | 2-2 | 90 | 0 | 0 | 6.7 |
| 2026-02-17 | @ Reading | League One | 1-1 | 90 | 0 | 0 | 7.2 |
| 2026-02-14 | @ Lincoln City | League One | 1-1 | 29 | 0 | 0 | 6.1 |
| 2026-01-20 | @ Stevenage | League One | 0-0 | 90 | 0 | 0 | 6.9 |
| 2026-01-17 | @ Wigan Athletic | League One | 0-1 | 90 | 1 | 0 | 8.3 ⭐ |
| 2026-01-13 | vs Port Vale | EFL Trophy | 0-1 | 64 | 0 | 0 | 6.0 |
| 2026-01-10 | @ Peterborough United | League One | 3-1 | 44 | 0 | 0 | 6.2 |
| 2026-01-04 | vs Northampton Town | League One | 0-0 | 90 | 0 | 0 | 8.0 ⭐ |
| 2026-01-01 | @ Doncaster Rovers | League One | 1-1 | 35 | 0 | 0 | 5.9 |
| 2025-12-29 | vs Mansfield Town | League One | 0-1 | 90 | 0 | 0 | 8.4 |
| 2025-12-26 | vs Rotherham United | League One | 2-1 | 90 | 2 | 0 | 9.3 ⭐ |
| 2025-12-20 | @ Wycombe Wanderers | League One | 2-1 | 61 | 0 | 1 | 7.1 |
| 2025-12-13 | vs Exeter City | League One | 2-1 | 90 | 0 | 0 | 8.1 ⭐ |
| 2025-12-09 | @ Mansfield Town | League One | 0-1 | 34 | 0 | 0 | 6.8 |
| 2025-12-06 | @ Swindon Town | FA Cup | 4-0 | 75 | 0 | 0 | |
| 2025-12-02 | vs Bradford City | EFL Trophy | 3-0 | 26 | 0 | 0 | 6.4 |
| 2025-11-22 | vs Bradford City | League One | 0-0 | 90 | 0 | 0 | 7.0 |
| 2025-11-18 | vs North Macedonia | World Cup Qualification UEFA 1st Round Grp. J | 7-1 | 90 | 0 | 0 | 7.1 |
| 2025-11-15 | @ Liechtenstein | World Cup Qualification UEFA 1st Round Grp. J | 0-1 | 0 | 0 | 0 | |
| 2025-11-08 | vs Port Vale | League One | 4-0 | 90 | 0 | 0 | 7.6 |
| 2025-11-01 | vs Huddersfield Town | FA Cup | 2-1 | 90 | 0 | 0 | |
| 2025-10-25 | vs Cardiff City | League One | 1-0 | 90 | 0 | 0 | 7.7 |
| 2025-10-16 | @ Huddersfield Town | League One | 1-2 | 90 | 0 | 0 | 7.7 |
Career
| Season | Team | Type | Apps | G | A | Rating |
|---|---|---|---|---|---|---|
| 2025/2026 | Bolton Wanderers | senior | 46 | 3 | 4 | 7.09 |
| 2024/2025 | Bolton Wanderers | senior | 38 | 4 | 5 | 7.10 |
| 2023/2024 | Bolton Wanderers | senior | 53 | 4 | 13 | 7.29 |
| 2022/2023 | Bolton Wanderers | senior | 34 | 2 | 2 | 6.73 |
| 2021/2022 | Bolton Wanderers | senior | 20 | 4 | 1 | 6.90 |
| 2020/2021 | Newport County | senior | 53 | 3 | 4 | 7.02 |
| 2019/2020 | Newport County | senior | 42 | 2 | 3 | 6.99 |
| 2018/2019 | Newport County | senior | 46 | 1 | 1 | 6.05 |
| 2017/2018 | Newport County | senior | 13 | 2 | 0 | - |
| 2016/2017 | Newport County | senior | 25 | 7 | 4 | 7.34 |
| 2015/2016 | Yeovil Town | senior | 16 | 2 | 0 | - |
| 2014/2015 | Yeovil Town | senior | 13 | 0 | 0 | - |
| 2014/2015 | Swansea City | senior | 1 | 0 | 0 | - |
| 2026 | Wales | national team | 6 | 0 | 0 | 7.07 |
| 2025 | Wales | national team | 1 | 0 | 0 | 6.28 |
| 2024 | Wales | national team | 5 | 0 | 0 | 6.00 |
| 2023 | Wales | national team | 2 | 0 | 0 | 6.30 |
| 2021 | Wales | national team | 2 | 0 | 0 | 6.45 |
| 2020 | Wales | national team | 1 | 0 | 0 | 6.54 |
| 2017 | Wales U21 | national team | 10 | 0 | 0 | - |
| 2015 | Wales U21 | national team | 2 | 0 | 0 | - |
| 2014 | Wales U19 | national team | 5 | 0 | 0 | - |
| 2013 | Wales U19 | national team | 2 | 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
Johnny Kenny
Sam Dalby
Thierry Gale
Nathan Broome
Jordi Osei-Tutu
Rob Apter
Eoin Toal
Ibrahim Cissoko
Ethan Erhahon
Kyle Dempsey
David Harrington
Max Conway
Lewis Temple
Ruben Rodrigues
Cyrus Christie
Corey Blackett-Taylor
Daeshon Lawrence
John McAtee
Mason Burstow
Tobias Ritchie
Trophies
Bolton Wanderers
🏆
EFL Trophy
x1