Attacking midfielder · age 32 · England · 6 ft 0 in (1.83 m) · two-footed · contract to Jun 2027
Career 343 apps · 69 goals · 24 assists · league games since 2010/11
Attributes appear once he has ten full games over this season and last.
Attacking midfielder 79% · Central midfielder 16% · Right winger 5% · of his last 38 starts
Rating is Sportmonks’ match rating, averaged. League matches only.
344 minutes · 0 starts · 26 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.
| Season | Club | Apps | Minutes | Goals | Assists | Rating |
|---|---|---|---|---|---|---|
| 2026/27 | Bradford CityLeague One | 13 (0) | 344 | 1 | 0 | 6.79 |
| 2025/26 | Bradford CityLeague One | 12 (0) | 261 | 1 | 0 | 6.62 |
| 2024/25 | Stockport CountyLeague One | 7 (3) | 239 | 0 | 1 | 7.22 |
| 2023/24 | Stockport CountyLeague Two | 32 (21) | 1,685 | 3 | 1 | 7.31 |
| 2022/23 | Stoke CityChampionship | 25 (9) | 1,042 | 4 | 0 | 6.83 |
| 2021/22 | Stoke CityChampionship | 18 (14) | 1,193 | 6 | 2 | 7.21 |
| 2020/21 | Stoke CityChampionship | 39 (38) | 3,126 | 12 | 3 | 7.31 |
| 2019/20 | Stoke CityChampionship | 29 (22) | 1,887 | 5 | 5 | 7.16 |
| 2018/19 | Wigan AthleticChampionship | 32 (25) | 1,996 | 8 | 6 | 7.11 |
| 2017/18 | Wigan AthleticLeague One | 39 (38) | 2,868 | 15 | 6 | – |
| 2016/17 | Wigan AthleticChampionship | 21 (10) | 955 | 6 | 0 | 7.22 |
| 2015/16 | Hull CityChampionship | 3 (0) | 65 | 0 | 0 | 7.07 |
| 2015/16 | Manchester UnitedPremier League | 1 (0) | 16 | 0 | 0 | 6.53 |
| 2014/15 | Leicester CityPremier League | 3 (0) | 40 | 0 | 0 | – |
| 2013/14 | Wigan AthleticChampionship | 30 (22) | 2,097 | 7 | 0 | 7.65 |
| 2012/13 | Manchester UnitedPremier League | 2 (0) | 30 | 1 | 0 | – |
| 2011/12 | Crewe AlexandraLeague Two | 37 (37) | 2,340 | 0 | 0 | – |
| 2010/11 | Crewe AlexandraLeague Two | 0 (0) | 0 | 0 | 0 | – |
| All 17 seasons | 343 (239) | 20,184 | 69 | 24 | 7.24 | |
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.
Games he started or came on in; league games only (cups and European games aren’t in our data). Ratings from Sportmonks.