Platform core above every product
President Hub The whole club on one board screen Ask about world football or your club Players Worldwide 250,000+ players, free to searchAlso from TSH AI Football DecisionScout Radar
1 of 3 appearances
came off the bench
1 of 1 appearances
| Position | Apps | G | A |
|---|---|---|---|
| Defensive Midfield | 159 | 1 | 7 |
| Central Midfield | 96 | 0 | 4 |
| Attacking Midfield | 14 | 2 | 0 |
| Right Winger | 4 | 0 | 1 |
| Season | Competition | Club | Apps | Starts | G | A | Yellow cards | Second yellow | Red cards | Min |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Two | Oldham Athletic | 2 | 0 | 0 | – | 0 | – | 0 | 31 |
| 2026/27 | National League | Solihull Moors | 1 | 1 | 0 | – | 0 | – | 0 | 94 |
| 2025/26 | League Two | Oldham Athletic | 43 | 42 | 0 | – | 8 | – | 0 | 3,708 |
| 2025/26 | EFL Vertu Trophy | Oldham Athletic | 2 | 2 | 0 | – | 1 | – | 0 | 180 |
| 2025/26 | Carabao Cup | Oldham Athletic | 1 | 1 | 0 | – | 0 | – | 0 | 79 |
| 2024/25 | League One | Exeter City | 37 | 26 | 2 | – | 10 | – | 0 | 2,622 |
| 2024/25 | FA Cup | Exeter City | 1 | 0 | 0 | – | 0 | – | 0 | 37 |
| 2023/24 | League One | Exeter City | 14 | 10 | 0 | – | 1 | – | 1 | 844 |
| 2023/24 | League One | Bristol Rovers | 12 | 8 | 0 | – | 1 | – | 1 | 629 |
| 2023/24 | EFL Vertu Trophy | Bristol Rovers | 3 | 1 | 0 | – | 0 | – | 0 | 129 |
| 2022/23 | Championship | Hull City | 26 | 14 | 0 | – | 6 | – | 0 | 1,276 |
| 2022/23 | Championship | Birmingham City | 2 | 2 | 0 | – | 1 | – | 0 | 180 |
| 2022/23 | FA Cup | Hull City | 1 | 1 | 0 | – | 0 | – | 0 | 90 |
| 2021/22 | Championship | Birmingham City | 30 | 25 | 0 | 2 | 4 | 0 | 1 | 2,316 |
| 2021/22 | FA Cup | Birmingham City | 1 | 1 | 0 | – | 1 | – | 0 | 95 |
| 2020/21 | Championship | Millwall | 41 | 39 | 0 | 2 | 9 | 0 | 0 | 3,439 |
| 2020/21 | Carabao Cup | Millwall | 3 | 2 | 0 | – | 0 | – | 0 | 166 |
| 2020/21 | FA Cup | Millwall | 2 | 1 | 0 | – | 0 | – | 0 | 101 |
| 2019/20 | Championship | Millwall | 18 | 17 | 0 | – | 3 | – | 0 | 1,533 |
| 2019/20 | Championship | Stoke City | 8 | 8 | 0 | – | 2 | – | 0 | 598 |
| 2019/20 | Carabao Cup | Stoke City | 3 | 3 | 0 | – | 1 | – | 0 | 306 |
| 2019/20 | FA Cup | Stoke City | 1 | 1 | 0 | – | 0 | – | 0 | 90 |
| 2018/19 | Championship | Stoke City | 27 | 26 | 0 | – | 5 | – | 0 | 2,268 |
| 2018/19 | Carabao Cup | Brentford | 1 | 1 | 0 | – | 0 | – | 0 | 90 |
| 2017/18 | Championship | Brentford | 39 | 35 | 1 | 1 | 9 | 0 | 1 | 3,188 |
| 2017/18 | Carabao Cup | Brentford | 1 | 0 | 0 | – | 0 | – | 0 | 21 |
| 2016/17 | Championship | Brentford | 42 | 42 | 0 | 3 | 7 | 0 | 0 | 3,703 |
| 2016/17 | FA Cup | Brentford | 2 | 2 | 0 | – | 0 | – | 0 | 180 |
| 2016/17 | Carabao Cup | Brentford | 1 | 0 | 0 | – | 1 | – | 0 | 108 |
| 2015/16 | Championship | Brentford | 41 | 38 | 2 | 1 | 7 | 0 | 0 | 3,326 |
| 2015/16 | League One | Shrewsbury Town | 5 | 5 | 0 | – | 1 | – | 0 | 450 |
| 2015/16 | Carabao Cup | Shrewsbury Town | 2 | 2 | 0 | – | 1 | – | 0 | 210 |
| 2015/16 | FA Cup | Brentford | 1 | 1 | 0 | – | 0 | – | 0 | 90 |
| 2014/15 | League Two | Shrewsbury Town | 43 | 41 | 0 | – | 8 | – | 0 | 3,755 |
| 2014/15 | Carabao Cup | Shrewsbury Town | 4 | 4 | 0 | – | 1 | – | 0 | 358 |
| 2014/15 | FA Cup | Shrewsbury Town | 3 | 3 | 0 | – | 2 | – | 0 | 270 |
| 2014/15 | EFL Vertu Trophy | Shrewsbury Town | 1 | 1 | 0 | – | 0 | – | 0 | 72 |
| 2013/14 | League One | Shrewsbury Town | 41 | 37 | 1 | – | 5 | – | 0 | 3,305 |
| 2013/14 | FA Cup | Shrewsbury Town | 1 | 1 | 0 | – | 0 | – | 0 | 90 |
| 2013/14 | EFL Vertu Trophy | Shrewsbury Town | 1 | 1 | 0 | – | 0 | – | 0 | 90 |
| 2012/13 | League One | Shrewsbury Town | 2 | 0 | 0 | – | 0 | – | 0 | 6 |
| No rows match these filters. | ||||||||||
| Career total · all competitions | 510 | 445 | 6 | 9* | 95 | 0* | 4 | 40,123 | ||
| Competition | Apps | G | A |
|---|---|---|---|
| Championship | 274 | 3 | 9 |
| League One | 111 | 3 | – |
| League Two | 88 | 0 | – |
| Carabao Cup | 16 | 0 | – |
| FA Cup | 13 | 0 | – |
| EFL Vertu Trophy | 7 | 0 | – |
| National League | 1 | 0 | – |
* Assists and second yellows are counted where the data has them, mostly league games from 2014/15; cups and internationals show “–”. Friendlies are excluded. Data as of 26 Oct 2026.
Transfer fees come with TSH access.
No honours recorded yet
When a player has titles, they show here by club and season: league titles, cups, international tournaments.
Valuation, wages, physical data and AI reports on Ryan Woods, available with a TSH subscription.
Get full accessWages
TSHSalary estimate, wage history and the fair-wage band for his level.
TSH Valuation
TSHWhat he's worth and what he'd cost: value band, expected deal price and value history.
TSH Rating
TSHHis level on one world scale, and his rank in his role, worldwide and in his league.
Performance profile
TSHNot available for this player yet
TSH physical data
TSHDistance, high-speed running and sprints per 90, match by match.
Match-by-match
TSHEvery match he played, with minutes and per-match stats.
Representation
TSHNot available for this player yet
Market intelligence
TSHMarket valuation trend, availability for transfer or loan and asking-price signals.
Players like him
TSHNot available for this player yet
AI Scout report
TSHNot available for this player yet
AI Full Dossier
TSHNot available for this player yet
Injury history
TSHPast injuries and time missed, season by season.
Player data from the TSH database, updated every week. Spotted something wrong? Tell us · Updated 2026-10-26