R. Woods, a 32-year-old England midfielder, is on the books at Oldham Athletic. His contract runs until June 2027, inside its final months.
R. Woods
R. Woods, by the numbers
A career in numbers, ready for the group chat.
Transfer history
| Date | From | To | Type | Fee |
|---|---|---|---|---|
| 2025-07-07 | Exeter City | Oldham Athletic | Free Transfer | undisclosed |
| 2024-07-02 | Hull City | Exeter City | Free Transfer | undisclosed |
| 2024-05-31 | Exeter City | Hull City | End of loan | undisclosed |
| 2024-02-01 | Hull City | Exeter City | Loan | undisclosed |
| 2024-01-10 | Bristol Rovers | Hull City | End of loan | undisclosed |
| 2023-08-25 | Hull City | Bristol Rovers | Loan | undisclosed |
Compiled from every English club's Sportmonks transfer feed. Disclosed fees only — many transfers go unreported.
Physical & squad role
Season by season
| Season | Club | Apps | Goals | Assists | xG | Minutes | Cards |
|---|---|---|---|---|---|---|---|
| 2025/2026 | Oldham Athletic | 5 | 0.6 -0.6 | 4,110 | 9 | ||
| 2024/2025 | Exeter City | 2 | 1.0 +1.0 | 2,844 | 14 | ||
| 2023/2024 | Bristol Rovers | 0 | n/a | 831 | 1 1 | ||
| 2023/2024 | Exeter City | 1 | 0.1 -0.1 | 843 | 1 1 | ||
| 2022/2023 | Birmingham City | 0 | n/a | 180 | 1 | ||
| 2022/2023 | Hull City | 2 | n/a | 1,367 | 6 | ||
| 2021/2022 | Birmingham City | 2 | n/a | 2,406 | 6 1 | ||
| 2020/2021 | Millwall | 3 | n/a | 3,702 | 9 | ||
| 2019/2020 | Millwall | 0 | n/a | 1,531 | 3 | ||
| 2019/2020 | Stoke City | 1 | n/a | 988 | 3 | ||
| 2018/2019 | Brentford | 0 | n/a | 90 | — | ||
| 2018/2019 | Stoke City | 0 | n/a | 2,271 | 5 | ||
| 2017/2018 | Brentford | 3 | n/a | 3,228 | 9 | ||
| 2016/2017 | Brentford | 4 | n/a | 3,991 | 8 | ||
| 2015/2016 | Shrewsbury Town | 0 | n/a | 570 | 2 | ||
| 2015/2016 | Brentford | 2 | n/a | 3,327 | 7 | ||
| 2014/2015 | Shrewsbury Town | 0 | n/a | 540 | 1 | ||
| 2013/2014 | Shrewsbury Town | 0 | n/a | 3,395 | 5 | ||
| 2012/2013 | Shrewsbury Town | 0 | n/a | n/a | — |
Source: Sportmonks player statistics, including expected goals (xG) per season for covered competitions. Refreshed every 12 hours.