| Playing Time | Performance | Per 90 Minutes | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | |||||
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 2 | 0 | 8 | 0.1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 41 | 37 | 3,305 | 36.7 | 1 | 3 | 4 | 1 | 0 | 0 | 5 | 0 | 0.03 | 0.08 | 0.11 | 0.03 | 0.11 | |
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 3 | 3 | 270 | 3.0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 4 | 4 | 357 | 4.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 43 | 41 | 3,785 | 42.1 | 0 | 2 | 2 | 0 | 0 | 0 | 8 | 0 | 0.00 | 0.05 | 0.05 | 0.00 | 0.05 | Matches |
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 41 | 38 | 3,320 | 36.9 | 2 | 2 | 4 | 2 | 0 | 0 | 7 | 0 | 0.05 | 0.05 | 0.11 | 0.05 | 0.11 | Matches |
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 2 | 2 | 210 | 2.3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 5 | 5 | 450 | 5.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 42 | 42 | 3,699 | 41.1 | 0 | 4 | 4 | 0 | 0 | 0 | 7 | 0 | 0.00 | 0.10 | 0.10 | 0.00 | 0.10 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 1 | 0 | 109 | 1.2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 2 | 2 | 180 | 2.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 39 | 35 | 3,186 | 35.4 | 1 | 3 | 4 | 1 | 0 | 0 | 9 | 1 | 0.03 | 0.08 | 0.11 | 0.03 | 0.11 | Matches |
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 1 | 0 | 22 | 0.2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 27 | 26 | 2,265 | 25.2 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2018-2019 | 24 | Brentford | eng ENG | 2. Championship | 0 | 0 | Matches | |||||||||||||||
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2018-2019 | 24 | Stoke City | eng ENG | FA Cup | 0 | 0 | Matches | |||||||||||||||
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 8 | 8 | 593 | 6.6 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.15 | 0.15 | 0.00 | 0.15 | Matches |
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 18 | 17 | 1,529 | 17.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 3 | 3 | 299 | 3.3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 41 | 39 | 3,424 | 38.0 | 0 | 2 | 2 | 0 | 0 | 0 | 9 | 0 | 0.00 | 0.05 | 0.05 | 0.00 | 0.05 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 3 | 2 | 166 | 1.8 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.54 | 0.54 | 0.00 | 0.54 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 2 | 1 | 101 | 1.1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 30 | 25 | 2,318 | 25.8 | 0 | 2 | 2 | 0 | 0 | 0 | 5 | 1 | 0.00 | 0.08 | 0.08 | 0.00 | 0.08 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1 | 1 | 89 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 2 | 2 | 180 | 2.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 26 | 14 | 1,277 | 14.2 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 0 | 0.00 | 0.14 | 0.14 | 0.00 | 0.14 | Matches |
| 2022-2023 | 28 | Birmingham City | eng ENG | EFL Cup | 0 | 0 | Matches | |||||||||||||||
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 1 | 1 | 73 | 0.8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 14 | 10 | 844 | 9.4 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.11 | 0.11 | 0.00 | 0.11 | Matches |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 12 | 8 | 626 | 7.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 4 | 3 | 307 | 3.4 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.29 | 0.29 | 0.00 | 0.29 | Matches |
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 37 | 26 | 2,617 | 29.1 | 2 | 1 | 3 | 2 | 0 | 0 | 11 | 1 | 0.07 | 0.03 | 0.10 | 0.07 | 0.10 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | 1 | 1 | 78 | 0.9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 2 | 2 | 147 | 1.6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 43 | 42 | 3,698 | 41.1 | 0 | 5 | 5 | 0 | 0 | 0 | 9 | 1 | 0.00 | 0.12 | 0.12 | 0.00 | 0.12 | Matches |
| 14 Seasons | 9 Clubs | 5 Leagues | 505 | 444 | 39,892 | 443.2 | 6 | 30 | 36 | 6 | 0 | 0 | 99 | 6 | 0.01 | 0.07 | 0.08 | 0.01 | 0.08 | |||
| Country | Comp | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | ||||||||
| Brentford (4 Seasons) | 3 Leagues | 128 | 119 | 10,696 | 118.8 | 3 | 9 | 12 | 3 | 0 | 0 | 24 | 1 | 0.03 | 0.08 | 0.10 | 0.03 | 0.10 | ||||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 100 | 92 | 8,385 | 93.2 | 1 | 5 | 6 | 1 | 0 | 0 | 18 | 0 | 0.01 | 0.05 | 0.06 | 0.01 | 0.06 | ||||
| Millwall (2 Seasons) | 3 Leagues | 64 | 59 | 5,220 | 58.0 | 0 | 3 | 3 | 0 | 0 | 0 | 12 | 0 | 0.00 | 0.05 | 0.05 | 0.00 | 0.05 | ||||
| Exeter City (2 Seasons) | 2 Leagues | 55 | 39 | 3,768 | 41.9 | 2 | 3 | 5 | 2 | 0 | 0 | 14 | 2 | 0.05 | 0.07 | 0.12 | 0.05 | 0.12 | ||||
| Stoke City (2 Seasons) | 3 Leagues | 39 | 38 | 3,247 | 36.1 | 0 | 1 | 1 | 0 | 0 | 0 | 8 | 0 | 0.00 | 0.03 | 0.03 | 0.00 | 0.03 | ||||
| Birmingham City (2 Seasons) | 3 Leagues | 33 | 28 | 2,587 | 28.7 | 0 | 2 | 2 | 0 | 0 | 0 | 7 | 1 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | ||||
| Oldham Athletic (1 Season) | 3 Leagues | 46 | 45 | 3,923 | 43.6 | 0 | 5 | 5 | 0 | 0 | 0 | 9 | 1 | 0.00 | 0.11 | 0.11 | 0.00 | 0.11 | ||||
| Hull City (1 Season) | 2 Leagues | 27 | 15 | 1,367 | 15.2 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 0 | 0.00 | 0.13 | 0.13 | 0.00 | 0.13 | ||||
| Bristol Rovers (1 Season) | 2 Leagues | 13 | 9 | 699 | 7.8 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | ||||
| Stoke City (1 Season) | 1 League | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | ||||
| FA Cup (11 Seasons) | 18 | 16 | 1,437 | 16.0 | 0 | 1 | 1 | 0 | 0 | 0 | 5 | 0 | 0.00 | 0.06 | 0.06 | 0.00 | 0.06 | |||||
| EFL Cup (9 Seasons) | 16 | 13 | 1,331 | 14.8 | 0 | 1 | 1 | 0 | 0 | 0 | 4 | 0 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | |||||
| Championship (8 Seasons) | 274 | 246 | 21,791 | 242.1 | 3 | 16 | 19 | 3 | 0 | 0 | 54 | 2 | 0.01 | 0.07 | 0.08 | 0.01 | 0.08 | |||||
| League One (5 Seasons) | 111 | 86 | 7,850 | 87.2 | 3 | 5 | 8 | 3 | 0 | 0 | 19 | 3 | 0.03 | 0.06 | 0.09 | 0.03 | 0.09 | |||||
| League Two (2 Seasons) | 86 | 83 | 7,483 | 83.1 | 0 | 7 | 7 | 0 | 0 | 0 | 17 | 1 | 0.00 | 0.08 | 0.08 | 0.00 | 0.08 | |||||
| PL2 — Div. 2 (1 Season) | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Playing Time | Performance | Per 90 Minutes | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Comp | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | |||||
| 2012-2013 | 18 | Shrewsbury Town | 1 League | 2 | 0 | 8 | 0.1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2013-2014 | 19 | Shrewsbury Town | 1 League | 41 | 37 | 3,305 | 36.7 | 1 | 3 | 4 | 1 | 0 | 0 | 5 | 0 | 0.03 | 0.08 | 0.11 | 0.03 | 0.11 | |
| 2014-2015 | 20 | Shrewsbury Town | 3 Leagues | 50 | 48 | 4,412 | 49.0 | 0 | 2 | 2 | 0 | 0 | 0 | 11 | 0 | 0.00 | 0.04 | 0.04 | 0.00 | 0.04 | |
| 2015-2016 | 21 | Shrewsbury Town | 2 Leagues | 7 | 7 | 660 | 7.3 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2015-2016 | 21 | Brentford | 2 Leagues | 42 | 39 | 3,410 | 37.9 | 2 | 2 | 4 | 2 | 0 | 0 | 7 | 0 | 0.05 | 0.05 | 0.11 | 0.05 | 0.11 | |
| 2016-2017 | 22 | Brentford | 3 Leagues | 45 | 44 | 3,988 | 44.3 | 0 | 4 | 4 | 0 | 0 | 0 | 8 | 0 | 0.00 | 0.09 | 0.09 | 0.00 | 0.09 | |
| 2017-2018 | 23 | Brentford | 2 Leagues | 40 | 35 | 3,208 | 35.6 | 1 | 3 | 4 | 1 | 0 | 0 | 9 | 1 | 0.03 | 0.08 | 0.11 | 0.03 | 0.11 | |
| 2018-2019 | 24 | Brentford | 2 Leagues | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2018-2019 | 24 | Stoke City | 2 Leagues | 27 | 26 | 2,265 | 25.2 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2019-2020 | 25 | Stoke City | 3 Leagues | 12 | 12 | 982 | 10.9 | 0 | 1 | 1 | 0 | 0 | 0 | 3 | 0 | 0.00 | 0.09 | 0.09 | 0.00 | 0.09 | |
| 2019-2020 | 25 | Stoke City | 1 League | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2019-2020 | 25 | Millwall | 1 League | 18 | 17 | 1,529 | 17.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2020-2021 | 26 | Millwall | 3 Leagues | 46 | 42 | 3,691 | 41.0 | 0 | 3 | 3 | 0 | 0 | 0 | 9 | 0 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | |
| 2021-2022 | 27 | Birmingham City | 2 Leagues | 31 | 26 | 2,407 | 26.7 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 1 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | |
| 2022-2023 | 28 | Birmingham City | 2 Leagues | 2 | 2 | 180 | 2.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2022-2023 | 28 | Hull City | 2 Leagues | 27 | 15 | 1,367 | 15.2 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 0 | 0.00 | 0.13 | 0.13 | 0.00 | 0.13 | |
| 2023-2024 | 29 | Bristol Rovers | 2 Leagues | 13 | 9 | 699 | 7.8 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2023-2024 | 29 | Exeter City | 1 League | 14 | 10 | 844 | 9.4 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.11 | 0.11 | 0.00 | 0.11 | |
| 2024-2025 | 30 | Exeter City | 2 Leagues | 41 | 29 | 2,924 | 32.5 | 2 | 2 | 4 | 2 | 0 | 0 | 13 | 1 | 0.06 | 0.06 | 0.12 | 0.06 | 0.12 | |
| 2025-2026 | 31 | Oldham Athletic | 3 Leagues | 46 | 45 | 3,923 | 43.6 | 0 | 5 | 5 | 0 | 0 | 0 | 9 | 1 | 0.00 | 0.11 | 0.11 | 0.00 | 0.11 | |
| 14 Seasons | 9 Clubs | 5 Leagues | 505 | 444 | 39,892 | 443.2 | 6 | 30 | 36 | 6 | 0 | 0 | 99 | 6 | 0.01 | 0.07 | 0.08 | 0.01 | 0.08 | ||
| Comp | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | ||||||||
| Brentford (4 Seasons) | 3 Leagues | 128 | 119 | 10,696 | 118.8 | 3 | 9 | 12 | 3 | 0 | 0 | 24 | 1 | 0.03 | 0.08 | 0.10 | 0.03 | 0.10 | |||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 100 | 92 | 8,385 | 93.2 | 1 | 5 | 6 | 1 | 0 | 0 | 18 | 0 | 0.01 | 0.05 | 0.06 | 0.01 | 0.06 | |||
| Millwall (2 Seasons) | 3 Leagues | 64 | 59 | 5,220 | 58.0 | 0 | 3 | 3 | 0 | 0 | 0 | 12 | 0 | 0.00 | 0.05 | 0.05 | 0.00 | 0.05 | |||
| Exeter City (2 Seasons) | 2 Leagues | 55 | 39 | 3,768 | 41.9 | 2 | 3 | 5 | 2 | 0 | 0 | 14 | 2 | 0.05 | 0.07 | 0.12 | 0.05 | 0.12 | |||
| Stoke City (2 Seasons) | 3 Leagues | 39 | 38 | 3,247 | 36.1 | 0 | 1 | 1 | 0 | 0 | 0 | 8 | 0 | 0.00 | 0.03 | 0.03 | 0.00 | 0.03 | |||
| Birmingham City (2 Seasons) | 3 Leagues | 33 | 28 | 2,587 | 28.7 | 0 | 2 | 2 | 0 | 0 | 0 | 7 | 1 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | |||
| Oldham Athletic (1 Season) | 3 Leagues | 46 | 45 | 3,923 | 43.6 | 0 | 5 | 5 | 0 | 0 | 0 | 9 | 1 | 0.00 | 0.11 | 0.11 | 0.00 | 0.11 | |||
| Hull City (1 Season) | 2 Leagues | 27 | 15 | 1,367 | 15.2 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 0 | 0.00 | 0.13 | 0.13 | 0.00 | 0.13 | |||
| Bristol Rovers (1 Season) | 2 Leagues | 13 | 9 | 699 | 7.8 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||
| Stoke City (1 Season) | 1 League | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||
| FA Cup (11 Seasons) | 18 | 16 | 1,437 | 16.0 | 0 | 1 | 1 | 0 | 0 | 0 | 5 | 0 | 0.00 | 0.06 | 0.06 | 0.00 | 0.06 | ||||
| EFL Cup (9 Seasons) | 16 | 13 | 1,331 | 14.8 | 0 | 1 | 1 | 0 | 0 | 0 | 4 | 0 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | ||||
| Championship (8 Seasons) | 274 | 246 | 21,791 | 242.1 | 3 | 16 | 19 | 3 | 0 | 0 | 54 | 2 | 0.01 | 0.07 | 0.08 | 0.01 | 0.08 | ||||
| League One (5 Seasons) | 111 | 86 | 7,850 | 87.2 | 3 | 5 | 8 | 3 | 0 | 0 | 19 | 3 | 0.03 | 0.06 | 0.09 | 0.03 | 0.09 | ||||
| League Two (2 Seasons) | 86 | 83 | 7,483 | 83.1 | 0 | 7 | 7 | 0 | 0 | 0 | 17 | 1 | 0.00 | 0.08 | 0.08 | 0.00 | 0.08 | ||||
| PL2 — Div. 2 (1 Season) | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | ||||
| Playing Time | Performance | Per 90 Minutes | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | |||||
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 16th | 2 | 0 | 8 | 0.1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 23rd | 41 | 37 | 3,305 | 36.7 | 1 | 3 | 4 | 1 | 0 | 0 | 5 | 0 | 0.03 | 0.08 | 0.11 | 0.03 | 0.11 | |
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 2nd | 43 | 41 | 3,785 | 42.1 | 0 | 2 | 2 | 0 | 0 | 0 | 8 | 0 | 0.00 | 0.05 | 0.05 | 0.00 | 0.05 | Matches |
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 20th | 5 | 5 | 450 | 5.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 9th | 41 | 38 | 3,320 | 36.9 | 2 | 2 | 4 | 2 | 0 | 0 | 7 | 0 | 0.05 | 0.05 | 0.11 | 0.05 | 0.11 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 10th | 42 | 42 | 3,699 | 41.1 | 0 | 4 | 4 | 0 | 0 | 0 | 7 | 0 | 0.00 | 0.10 | 0.10 | 0.00 | 0.10 | Matches |
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 9th | 39 | 35 | 3,186 | 35.4 | 1 | 3 | 4 | 1 | 0 | 0 | 9 | 1 | 0.03 | 0.08 | 0.11 | 0.03 | 0.11 | Matches |
| 2018-2019 | 24 | Brentford | eng ENG | 2. Championship | 11th | 0 | 0 | Matches | |||||||||||||||
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 16th | 27 | 26 | 2,265 | 25.2 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 15th | 8 | 8 | 593 | 6.6 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.15 | 0.15 | 0.00 | 0.15 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 4th | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 8th | 18 | 17 | 1,529 | 17.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 11th | 41 | 39 | 3,424 | 38.0 | 0 | 2 | 2 | 0 | 0 | 0 | 9 | 0 | 0.00 | 0.05 | 0.05 | 0.00 | 0.05 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 20th | 30 | 25 | 2,318 | 25.8 | 0 | 2 | 2 | 0 | 0 | 0 | 5 | 1 | 0.00 | 0.08 | 0.08 | 0.00 | 0.08 | Matches |
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 17th | 2 | 2 | 180 | 2.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 15th | 26 | 14 | 1,277 | 14.2 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 0 | 0.00 | 0.14 | 0.14 | 0.00 | 0.14 | Matches |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 15th | 12 | 8 | 626 | 7.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 13th | 14 | 10 | 844 | 9.4 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.11 | 0.11 | 0.00 | 0.11 | Matches |
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 16th | 37 | 26 | 2,617 | 29.1 | 2 | 1 | 3 | 2 | 0 | 0 | 11 | 1 | 0.07 | 0.03 | 0.10 | 0.07 | 0.10 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 10th | 43 | 42 | 3,698 | 41.1 | 0 | 5 | 5 | 0 | 0 | 0 | 9 | 1 | 0.00 | 0.12 | 0.12 | 0.00 | 0.12 | Matches |
| 14 Seasons | 9 Clubs | 3 Leagues | 471 | 415 | 37,124 | 412.5 | 6 | 28 | 34 | 6 | 0 | 0 | 90 | 6 | 0.01 | 0.07 | 0.08 | 0.01 | 0.08 | ||||
| Country | Comp | LgRank | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | ||||||||
| Brentford (4 Seasons) | 1 League | 122 | 115 | 10,205 | 113.4 | 3 | 9 | 12 | 3 | 0 | 0 | 23 | 1 | 0.03 | 0.08 | 0.11 | 0.03 | 0.11 | |||||
| Shrewsbury Town (4 Seasons) | 2 Leagues | 91 | 83 | 7,548 | 83.9 | 1 | 5 | 6 | 1 | 0 | 0 | 14 | 0 | 0.01 | 0.06 | 0.07 | 0.01 | 0.07 | |||||
| Millwall (2 Seasons) | 1 League | 59 | 56 | 4,953 | 55.0 | 0 | 2 | 2 | 0 | 0 | 0 | 12 | 0 | 0.00 | 0.04 | 0.04 | 0.00 | 0.04 | |||||
| Exeter City (2 Seasons) | 1 League | 51 | 36 | 3,461 | 38.5 | 2 | 2 | 4 | 2 | 0 | 0 | 12 | 2 | 0.05 | 0.05 | 0.10 | 0.05 | 0.10 | |||||
| Stoke City (2 Seasons) | 1 League | 35 | 34 | 2,858 | 31.8 | 0 | 1 | 1 | 0 | 0 | 0 | 7 | 0 | 0.00 | 0.03 | 0.03 | 0.00 | 0.03 | |||||
| Birmingham City (2 Seasons) | 1 League | 32 | 27 | 2,498 | 27.8 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 1 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | |||||
| Oldham Athletic (1 Season) | 1 League | 43 | 42 | 3,698 | 41.1 | 0 | 5 | 5 | 0 | 0 | 0 | 9 | 1 | 0.00 | 0.12 | 0.12 | 0.00 | 0.12 | |||||
| Hull City (1 Season) | 1 League | 26 | 14 | 1,277 | 14.2 | 0 | 2 | 2 | 0 | 0 | 0 | 6 | 0 | 0.00 | 0.14 | 0.14 | 0.00 | 0.14 | |||||
| Bristol Rovers (1 Season) | 1 League | 12 | 8 | 626 | 7.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Stoke City (1 Season) | 1 League | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Championship (8 Seasons) | 274 | 246 | 21,791 | 242.1 | 3 | 16 | 19 | 3 | 0 | 0 | 54 | 2 | 0.01 | 0.07 | 0.08 | 0.01 | 0.08 | ||||||
| League One (5 Seasons) | 111 | 86 | 7,850 | 87.2 | 3 | 5 | 8 | 3 | 0 | 0 | 19 | 3 | 0.03 | 0.06 | 0.09 | 0.03 | 0.09 | ||||||
| League Two (2 Seasons) | 86 | 83 | 7,483 | 83.1 | 0 | 7 | 7 | 0 | 0 | 0 | 17 | 1 | 0.00 | 0.08 | 0.08 | 0.00 | 0.08 | ||||||
| PL2 — Div. 2 (1 Season) | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | ||||||
| Playing Time | Performance | Per 90 Minutes | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | |||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 65th | 3 | 3 | 270 | 3.0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 9th | 4 | 4 | 357 | 4.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 33rd | 2 | 2 | 210 | 2.3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 33rd | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 58th | 1 | 0 | 109 | 1.2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 17th | 2 | 2 | 180 | 2.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 17th | 1 | 0 | 22 | 0.2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 17th | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2018-2019 | 24 | Stoke City | eng ENG | FA Cup | 33rd | 0 | 0 | Matches | |||||||||||||||
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 17th | 3 | 3 | 299 | 3.3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 33rd | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 17th | 3 | 2 | 166 | 1.8 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.54 | 0.54 | 0.00 | 0.54 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 17th | 2 | 1 | 101 | 1.1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1 | 1 | 89 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches | |
| 2022-2023 | 28 | Birmingham City | eng ENG | EFL Cup | Rd1 | 0 | 0 | Matches | |||||||||||||||
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches | |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 1 | 1 | 73 | 0.8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches | |
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 4 | 3 | 307 | 3.4 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.29 | 0.29 | 0.00 | 0.29 | Matches | |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | Pre | 1 | 1 | 78 | 0.9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 2 | 2 | 147 | 1.6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | Matches | |
| 12 Seasons | 9 Clubs | 2 Leagues | 34 | 29 | 2,768 | 30.8 | 0 | 2 | 2 | 0 | 0 | 0 | 9 | 0 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | ||||
| Country | Comp | LgRank | MP | Starts | Min | 90s | Gls | Ast | G+A | G-PK | PK | PKatt | CrdY | CrdR | Matches | ||||||||
| Brentford (4 Seasons) | 2 Leagues | 6 | 4 | 491 | 5.5 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Shrewsbury Town (2 Seasons) | 2 Leagues | 9 | 9 | 837 | 9.3 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Stoke City (2 Seasons) | 2 Leagues | 4 | 4 | 389 | 4.3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Birmingham City (2 Seasons) | 2 Leagues | 1 | 1 | 89 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Millwall (1 Season) | 2 Leagues | 5 | 3 | 267 | 3.0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.34 | 0.34 | 0.00 | 0.34 | |||||
| Exeter City (1 Season) | 1 League | 4 | 3 | 307 | 3.4 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 0.00 | 0.29 | 0.29 | 0.00 | 0.29 | |||||
| Oldham Athletic (1 Season) | 2 Leagues | 3 | 3 | 225 | 2.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Bristol Rovers (1 Season) | 1 League | 1 | 1 | 73 | 0.8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| Hull City (1 Season) | 1 League | 1 | 1 | 90 | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||
| FA Cup (11 Seasons) | 18 | 16 | 1,437 | 16.0 | 0 | 1 | 1 | 0 | 0 | 0 | 5 | 0 | 0.00 | 0.06 | 0.06 | 0.00 | 0.06 | ||||||
| EFL Cup (9 Seasons) | 16 | 13 | 1,331 | 14.8 | 0 | 1 | 1 | 0 | 0 | 0 | 4 | 0 | 0.00 | 0.07 | 0.07 | 0.00 | 0.07 | ||||||
| Standard | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | 90s | Gls | Sh | SoT | PK | PKatt | Matches | |||||
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 0.1 | 0 | 0 | 0.00 | 0 | 0 | ||||||
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 36.7 | 1 | 8 | 0.22 | 0.13 | 0 | 0 | |||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 3.0 | 0 | 0 | 0 | Matches | |||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 4.0 | 0 | 0 | 0 | Matches | |||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 42.1 | 0 | 8 | 0.19 | 0.00 | 0 | 0 | Matches | ||||
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 36.9 | 2 | 7 | 0.19 | 0.29 | 0 | 0 | Matches | ||||
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | Matches | |||||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 2.3 | 0 | 0 | 0 | Matches | |||||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 5.0 | 0 | 0 | 0.00 | 0 | 0 | Matches | |||||
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 41.1 | 0 | 0 | 6 | 0.00 | 0.15 | 0.00 | 0 | 0 | Matches | ||
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 1.2 | 0 | 1 | 0 | 0.0 | 0.83 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 2.0 | 0 | 0 | 0 | Matches | |||||||
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 35.4 | 1 | 8 | 2 | 25.0 | 0.23 | 0.06 | 0.13 | 0.50 | 0 | 0 | Matches |
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 0.2 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 25.2 | 0 | 4 | 0 | 0.0 | 0.16 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 6.6 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 17.0 | 0 | 5 | 0 | 0.0 | 0.29 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 3.3 | 0 | 2 | 0 | 0.0 | 0.60 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 1.0 | 0 | 0 | 0 | Matches | |||||||
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 38.0 | 0 | 5 | 1 | 20.0 | 0.13 | 0.03 | 0.00 | 0.00 | 0 | 0 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 1.8 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 1.1 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 25.8 | 0 | 10 | 4 | 40.0 | 0.39 | 0.16 | 0.00 | 0.00 | 0 | 0 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 2.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 14.2 | 0 | 3 | 0 | 0.0 | 0.21 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 0.8 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 9.4 | 0 | 2 | 1 | 50.0 | 0.21 | 0.11 | 0.00 | 0.00 | 0 | 0 | Matches |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 7.0 | 0 | 2 | 0 | 0.0 | 0.29 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 3.4 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 29.1 | 2 | 4 | 2 | 50.0 | 0.14 | 0.07 | 0.50 | 1.00 | 0 | 0 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | 0.9 | 0 | 1 | 0 | 0.0 | 1.15 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 1.6 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 41.1 | 0 | 17 | 6 | 35.3 | 0.41 | 0.15 | 0.00 | 0.00 | 0 | 0 | Matches |
| 14 Seasons | 9 Clubs | 5 Leagues | 443.2 | 6 | 64 | 45 | 34.4 | 0.21 | 0.10 | 0.05 | 0.13 | 0 | 0 | |||
| Country | Comp | 90s | Gls | Sh | SoT | PK | PKatt | Matches | ||||||||
| Brentford (4 Seasons) | 3 Leagues | 118.8 | 3 | 9 | 15 | 88.9 | 0.11 | 0.13 | 0.11 | 0.20 | 0 | 0 | ||||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 93.2 | 1 | 16 | 0.19 | 0.06 | 0 | 0 | ||||||||
| Millwall (2 Seasons) | 3 Leagues | 58.0 | 0 | 10 | 1 | 10.0 | 0.17 | 0.02 | 0.00 | 0.00 | 0 | 0 | ||||
| Exeter City (2 Seasons) | 2 Leagues | 41.9 | 2 | 6 | 3 | 50.0 | 0.14 | 0.07 | 0.33 | 0.67 | 0 | 0 | ||||
| Stoke City (2 Seasons) | 3 Leagues | 36.1 | 0 | 6 | 0 | 0.0 | 0.17 | 0.00 | 0.00 | 0 | 0 | |||||
| Birmingham City (2 Seasons) | 3 Leagues | 28.7 | 0 | 10 | 4 | 40.0 | 0.35 | 0.14 | 0.00 | 0.00 | 0 | 0 | ||||
| Oldham Athletic (1 Season) | 3 Leagues | 43.6 | 0 | 18 | 6 | 33.3 | 0.41 | 0.14 | 0.00 | 0.00 | 0 | 0 | ||||
| Hull City (1 Season) | 2 Leagues | 15.2 | 0 | 3 | 0 | 0.0 | 0.20 | 0.00 | 0.00 | 0 | 0 | |||||
| Bristol Rovers (1 Season) | 2 Leagues | 7.8 | 0 | 2 | 0 | 0.0 | 0.26 | 0.00 | 0.00 | 0 | 0 | |||||
| Stoke City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | |||||||||||
| FA Cup (11 Seasons) | 16.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||||||
| EFL Cup (9 Seasons) | 14.8 | 0 | 4 | 0 | 0.0 | 0.47 | 0.00 | 0.00 | 0 | 0 | ||||||
| Championship (8 Seasons) | 242.1 | 3 | 35 | 20 | 37.1 | 0.17 | 0.08 | 0.03 | 0.15 | 0 | 0 | |||||
| League One (5 Seasons) | 87.2 | 3 | 8 | 11 | 37.5 | 0.18 | 0.13 | 0.25 | 0.27 | 0 | 0 | |||||
| League Two (2 Seasons) | 83.1 | 0 | 17 | 14 | 35.3 | 0.41 | 0.17 | 0.00 | 0.00 | 0 | 0 | |||||
| PL2 — Div. 2 (1 Season) | 1.0 | 0 | 0 | 0 | ||||||||||||
| Standard | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Comp | 90s | Gls | Sh | SoT | PK | PKatt | Matches | |||||
| 2012-2013 | 18 | Shrewsbury Town | 1 League | 0.1 | 0 | 0 | 0.00 | 0 | 0 | ||||||
| 2013-2014 | 19 | Shrewsbury Town | 1 League | 36.7 | 1 | 8 | 0.22 | 0.13 | 0 | 0 | |||||
| 2014-2015 | 20 | Shrewsbury Town | 3 Leagues | 49.0 | 0 | 8 | 0.19 | 0.00 | 0 | 0 | |||||
| 2015-2016 | 21 | Shrewsbury Town | 2 Leagues | 7.3 | 0 | 0 | 0.00 | 0 | 0 | ||||||
| 2015-2016 | 21 | Brentford | 2 Leagues | 37.9 | 2 | 7 | 0.19 | 0.29 | 0 | 0 | |||||
| 2016-2017 | 22 | Brentford | 3 Leagues | 44.3 | 0 | 1 | 6 | 600.0 | 0.02 | 0.14 | 0.00 | 0.00 | 0 | 0 | |
| 2017-2018 | 23 | Brentford | 2 Leagues | 35.6 | 1 | 8 | 2 | 25.0 | 0.22 | 0.06 | 0.13 | 0.50 | 0 | 0 | |
| 2018-2019 | 24 | Brentford | 2 Leagues | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||
| 2018-2019 | 24 | Stoke City | 2 Leagues | 25.2 | 0 | 4 | 0 | 0.0 | 0.16 | 0.00 | 0.00 | 0 | 0 | ||
| 2019-2020 | 25 | Stoke City | 3 Leagues | 10.9 | 0 | 2 | 0 | 0.0 | 0.18 | 0.00 | 0.00 | 0 | 0 | ||
| 2019-2020 | 25 | Stoke City | 1 League | 1.0 | 0 | 0 | 0 | ||||||||
| 2019-2020 | 25 | Millwall | 1 League | 17.0 | 0 | 5 | 0 | 0.0 | 0.29 | 0.00 | 0.00 | 0 | 0 | ||
| 2020-2021 | 26 | Millwall | 3 Leagues | 41.0 | 0 | 5 | 1 | 20.0 | 0.12 | 0.02 | 0.00 | 0.00 | 0 | 0 | |
| 2021-2022 | 27 | Birmingham City | 2 Leagues | 26.7 | 0 | 10 | 4 | 40.0 | 0.37 | 0.15 | 0.00 | 0.00 | 0 | 0 | |
| 2022-2023 | 28 | Birmingham City | 2 Leagues | 2.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||
| 2022-2023 | 28 | Hull City | 2 Leagues | 15.2 | 0 | 3 | 0 | 0.0 | 0.20 | 0.00 | 0.00 | 0 | 0 | ||
| 2023-2024 | 29 | Bristol Rovers | 2 Leagues | 7.8 | 0 | 2 | 0 | 0.0 | 0.26 | 0.00 | 0.00 | 0 | 0 | ||
| 2023-2024 | 29 | Exeter City | 1 League | 9.4 | 0 | 2 | 1 | 50.0 | 0.21 | 0.11 | 0.00 | 0.00 | 0 | 0 | |
| 2024-2025 | 30 | Exeter City | 2 Leagues | 32.5 | 2 | 4 | 2 | 50.0 | 0.12 | 0.06 | 0.50 | 1.00 | 0 | 0 | |
| 2025-2026 | 31 | Oldham Athletic | 3 Leagues | 43.6 | 0 | 18 | 6 | 33.3 | 0.41 | 0.14 | 0.00 | 0.00 | 0 | 0 | |
| 14 Seasons | 9 Clubs | 5 Leagues | 443.2 | 6 | 64 | 45 | 34.4 | 0.21 | 0.10 | 0.05 | 0.13 | 0 | 0 | ||
| Comp | 90s | Gls | Sh | SoT | PK | PKatt | Matches | ||||||||
| Brentford (4 Seasons) | 3 Leagues | 118.8 | 3 | 9 | 15 | 88.9 | 0.11 | 0.13 | 0.11 | 0.20 | 0 | 0 | |||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 93.2 | 1 | 16 | 0.19 | 0.06 | 0 | 0 | |||||||
| Millwall (2 Seasons) | 3 Leagues | 58.0 | 0 | 10 | 1 | 10.0 | 0.17 | 0.02 | 0.00 | 0.00 | 0 | 0 | |||
| Exeter City (2 Seasons) | 2 Leagues | 41.9 | 2 | 6 | 3 | 50.0 | 0.14 | 0.07 | 0.33 | 0.67 | 0 | 0 | |||
| Stoke City (2 Seasons) | 3 Leagues | 36.1 | 0 | 6 | 0 | 0.0 | 0.17 | 0.00 | 0.00 | 0 | 0 | ||||
| Birmingham City (2 Seasons) | 3 Leagues | 28.7 | 0 | 10 | 4 | 40.0 | 0.35 | 0.14 | 0.00 | 0.00 | 0 | 0 | |||
| Oldham Athletic (1 Season) | 3 Leagues | 43.6 | 0 | 18 | 6 | 33.3 | 0.41 | 0.14 | 0.00 | 0.00 | 0 | 0 | |||
| Hull City (1 Season) | 2 Leagues | 15.2 | 0 | 3 | 0 | 0.0 | 0.20 | 0.00 | 0.00 | 0 | 0 | ||||
| Bristol Rovers (1 Season) | 2 Leagues | 7.8 | 0 | 2 | 0 | 0.0 | 0.26 | 0.00 | 0.00 | 0 | 0 | ||||
| Stoke City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | ||||||||||
| FA Cup (11 Seasons) | 16.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | |||||||
| EFL Cup (9 Seasons) | 14.8 | 0 | 4 | 0 | 0.0 | 0.47 | 0.00 | 0.00 | 0 | 0 | |||||
| Championship (8 Seasons) | 242.1 | 3 | 35 | 20 | 37.1 | 0.17 | 0.08 | 0.03 | 0.15 | 0 | 0 | ||||
| League One (5 Seasons) | 87.2 | 3 | 8 | 11 | 37.5 | 0.18 | 0.13 | 0.25 | 0.27 | 0 | 0 | ||||
| League Two (2 Seasons) | 83.1 | 0 | 17 | 14 | 35.3 | 0.41 | 0.17 | 0.00 | 0.00 | 0 | 0 | ||||
| PL2 — Div. 2 (1 Season) | 1.0 | 0 | 0 | 0 | |||||||||||
| Standard | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | 90s | Gls | Sh | SoT | PK | PKatt | Matches | |||||
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 16th | 0.1 | 0 | 0 | 0.00 | 0 | 0 | ||||||
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 23rd | 36.7 | 1 | 8 | 0.22 | 0.13 | 0 | 0 | |||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 2nd | 42.1 | 0 | 8 | 0.19 | 0.00 | 0 | 0 | Matches | ||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 20th | 5.0 | 0 | 0 | 0.00 | 0 | 0 | Matches | |||||
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 9th | 36.9 | 2 | 7 | 0.19 | 0.29 | 0 | 0 | Matches | ||||
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 10th | 41.1 | 0 | 0 | 6 | 0.00 | 0.15 | 0.00 | 0 | 0 | Matches | ||
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 9th | 35.4 | 1 | 8 | 2 | 25.0 | 0.23 | 0.06 | 0.13 | 0.50 | 0 | 0 | Matches |
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 16th | 25.2 | 0 | 4 | 0 | 0.0 | 0.16 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 15th | 6.6 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 4th | 1.0 | 0 | 0 | 0 | Matches | |||||||
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 8th | 17.0 | 0 | 5 | 0 | 0.0 | 0.29 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 11th | 38.0 | 0 | 5 | 1 | 20.0 | 0.13 | 0.03 | 0.00 | 0.00 | 0 | 0 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 20th | 25.8 | 0 | 10 | 4 | 40.0 | 0.39 | 0.16 | 0.00 | 0.00 | 0 | 0 | Matches |
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 17th | 2.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 15th | 14.2 | 0 | 3 | 0 | 0.0 | 0.21 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 15th | 7.0 | 0 | 2 | 0 | 0.0 | 0.29 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 13th | 9.4 | 0 | 2 | 1 | 50.0 | 0.21 | 0.11 | 0.00 | 0.00 | 0 | 0 | Matches |
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 16th | 29.1 | 2 | 4 | 2 | 50.0 | 0.14 | 0.07 | 0.50 | 1.00 | 0 | 0 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 10th | 41.1 | 0 | 17 | 6 | 35.3 | 0.41 | 0.15 | 0.00 | 0.00 | 0 | 0 | Matches |
| 14 Seasons | 9 Clubs | 3 Leagues | 412.5 | 6 | 60 | 45 | 36.7 | 0.21 | 0.11 | 0.05 | 0.13 | 0 | 0 | ||||
| Country | Comp | LgRank | 90s | Gls | Sh | SoT | PK | PKatt | Matches | ||||||||
| Brentford (4 Seasons) | 1 League | 113.4 | 3 | 8 | 15 | 100.0 | 0.10 | 0.13 | 0.13 | 0.20 | 0 | 0 | |||||
| Shrewsbury Town (4 Seasons) | 2 Leagues | 83.9 | 1 | 16 | 0.19 | 0.06 | 0 | 0 | |||||||||
| Millwall (2 Seasons) | 1 League | 55.0 | 0 | 10 | 1 | 10.0 | 0.18 | 0.02 | 0.00 | 0.00 | 0 | 0 | |||||
| Exeter City (2 Seasons) | 1 League | 38.5 | 2 | 6 | 3 | 50.0 | 0.16 | 0.08 | 0.33 | 0.67 | 0 | 0 | |||||
| Stoke City (2 Seasons) | 1 League | 31.8 | 0 | 4 | 0 | 0.0 | 0.13 | 0.00 | 0.00 | 0 | 0 | ||||||
| Birmingham City (2 Seasons) | 1 League | 27.8 | 0 | 10 | 4 | 40.0 | 0.36 | 0.14 | 0.00 | 0.00 | 0 | 0 | |||||
| Oldham Athletic (1 Season) | 1 League | 41.1 | 0 | 17 | 6 | 35.3 | 0.41 | 0.15 | 0.00 | 0.00 | 0 | 0 | |||||
| Hull City (1 Season) | 1 League | 14.2 | 0 | 3 | 0 | 0.0 | 0.21 | 0.00 | 0.00 | 0 | 0 | ||||||
| Bristol Rovers (1 Season) | 1 League | 7.0 | 0 | 2 | 0 | 0.0 | 0.29 | 0.00 | 0.00 | 0 | 0 | ||||||
| Stoke City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | ||||||||||||
| Championship (8 Seasons) | 242.1 | 3 | 35 | 20 | 37.1 | 0.17 | 0.08 | 0.03 | 0.15 | 0 | 0 | ||||||
| League One (5 Seasons) | 87.2 | 3 | 8 | 11 | 37.5 | 0.18 | 0.13 | 0.25 | 0.27 | 0 | 0 | ||||||
| League Two (2 Seasons) | 83.1 | 0 | 17 | 14 | 35.3 | 0.41 | 0.17 | 0.00 | 0.00 | 0 | 0 | ||||||
| PL2 — Div. 2 (1 Season) | 1.0 | 0 | 0 | 0 | |||||||||||||
| Standard | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | 90s | Gls | Sh | SoT | PK | PKatt | Matches | |||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 65th | 3.0 | 0 | 0 | 0 | Matches | |||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 9th | 4.0 | 0 | 0 | 0 | Matches | |||||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 33rd | 2.3 | 0 | 0 | 0 | Matches | |||||||
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 33rd | 1.0 | 0 | 0 | 0 | Matches | |||||||
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 58th | 1.2 | 0 | 1 | 0 | 0.0 | 0.83 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 17th | 2.0 | 0 | 0 | 0 | Matches | |||||||
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 17th | 0.2 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 17th | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 17th | 3.3 | 0 | 2 | 0 | 0.0 | 0.60 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 33rd | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 17th | 1.8 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 17th | 1.1 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | |||
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | ||||
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | ||||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 0.8 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | ||||
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 3.4 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | ||||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | Pre | 0.9 | 0 | 1 | 0 | 0.0 | 1.15 | 0.00 | 0.00 | 0 | 0 | Matches | |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 1.6 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | Matches | ||||
| 12 Seasons | 9 Clubs | 2 Leagues | 30.8 | 0 | 4 | 0 | 0.0 | 0.22 | 0.00 | 0.00 | 0 | 0 | |||||
| Country | Comp | LgRank | 90s | Gls | Sh | SoT | PK | PKatt | Matches | ||||||||
| Brentford (4 Seasons) | 2 Leagues | 5.5 | 0 | 1 | 0 | 0.0 | 0.41 | 0.00 | 0.00 | 0 | 0 | ||||||
| Shrewsbury Town (2 Seasons) | 2 Leagues | 9.3 | 0 | 0 | 0 | ||||||||||||
| Stoke City (2 Seasons) | 2 Leagues | 4.3 | 0 | 2 | 0 | 0.0 | 0.46 | 0.00 | 0.00 | 0 | 0 | ||||||
| Birmingham City (2 Seasons) | 2 Leagues | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||||||
| Millwall (1 Season) | 2 Leagues | 3.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||||||
| Exeter City (1 Season) | 1 League | 3.4 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||||||
| Oldham Athletic (1 Season) | 2 Leagues | 2.5 | 0 | 1 | 0 | 0.0 | 0.40 | 0.00 | 0.00 | 0 | 0 | ||||||
| Bristol Rovers (1 Season) | 1 League | 0.8 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||||||
| Hull City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | ||||||||
| FA Cup (11 Seasons) | 16.0 | 0 | 0 | 0 | 0.00 | 0.00 | 0 | 0 | |||||||||
| EFL Cup (9 Seasons) | 14.8 | 0 | 4 | 0 | 0.0 | 0.47 | 0.00 | 0.00 | 0 | 0 | |||||||
| Playing Time | Starts | Subs | Team Success | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | |||||||
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 2 | 8 | 4 | 0.2 | 0.1 | 0 | 2 | |||||||||||
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 41 | 3,305 | 81 | 79.8 | 36.7 | 37 | 4 | |||||||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 3 | 270 | 90 | 100.0 | 3.0 | 3 | 90 | 3 | 0 | 0 | 1.33 | 3 | 3 | 0 | 0.00 | Matches | ||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 4 | 357 | 89 | 99.2 | 4.0 | 4 | 89 | 3 | 0 | 0 | 2.25 | 4 | 2 | +2 | +0.50 | +0.50 | Matches | |
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 43 | 3,785 | 88 | 91.4 | 42.1 | 41 | 39 | 2 | 0 | 1.93 | 57 | 30 | +27 | +0.64 | -1.64 | Matches | ||
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 41 | 3,320 | 81 | 80.2 | 36.9 | 38 | 29 | 3 | 1 | 1.41 | 58 | 51 | +7 | +0.19 | +0.41 | Matches | ||
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 1 | 90 | 90 | 100.0 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 1 | -1 | -1.00 | Matches | ||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 2 | 210 | 105 | 100.0 | 2.3 | 2 | 105 | 2 | 0 | 0 | 1.50 | 3 | 5 | -2 | -0.86 | Matches | ||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 5 | 450 | 90 | 10.9 | 5.0 | 5 | 5 | 0 | 0 | 0.40 | 4 | 7 | -3 | -0.60 | -0.16 | Matches | ||
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 42 | 3,699 | 88 | 89.3 | 41.1 | 42 | 38 | 0 | 1 | 1.40 | 67 | 58 | +9 | +0.22 | +0.01 | Matches | ||
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 1 | 109 | 109 | 90.8 | 1.2 | 0 | 0 | 1 | 108 | 0 | 0.00 | 0 | 1 | -1 | -0.83 | -0.83 | Matches | |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 2 | 180 | 90 | 100.0 | 2.0 | 2 | 90 | 2 | 0 | 0 | 1.50 | 5 | 5 | 0 | 0.00 | Matches | ||
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 39 | 3,186 | 82 | 77.0 | 35.4 | 35 | 30 | 4 | 0 | 1.49 | 48 | 40 | +8 | +0.23 | +0.04 | Matches | ||
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 1 | 22 | 22 | 7.3 | 0.2 | 0 | 0 | 1 | 21 | 1 | 3.00 | 1 | 0 | +1 | +4.09 | +3.44 | Matches | |
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 27 | 2,265 | 84 | 54.7 | 25.2 | 26 | 86 | 19 | 1 | 36 | 11 | 1.26 | 28 | 25 | +3 | +0.12 | +0.60 | Matches |
| 2018-2019 | 24 | Brentford | eng ENG | 2. Championship | 0 | 0 | 0 | 0 | 2 | Matches | ||||||||||||
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 1 | 90 | 90 | 33.3 | 1.0 | 1 | 90 | 1 | 0 | 0 | 3.00 | 4 | 2 | +2 | +2.00 | +2.50 | Matches | |
| 2018-2019 | 24 | Stoke City | eng ENG | FA Cup | 0 | 0 | 0 | 0 | 1 | Matches | ||||||||||||
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 8 | 593 | 74 | 14.3 | 6.6 | 8 | 74 | 3 | 0 | 8 | 0.88 | 9 | 12 | -3 | -0.46 | -0.38 | Matches | |
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 18 | 1,529 | 85 | 36.9 | 17.0 | 17 | 89 | 14 | 1 | 10 | 0 | 1.33 | 18 | 17 | +1 | +0.06 | -0.11 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 3 | 299 | 100 | 90.6 | 3.3 | 3 | 100 | 2 | 0 | 0 | 2.00 | 4 | 3 | +1 | +0.30 | +0.30 | Matches | |
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 1 | 90 | 90 | 100.0 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 1 | -1 | -1.00 | Matches | ||
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | Matches | |
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 41 | 3,424 | 84 | 82.7 | 38.0 | 39 | 87 | 27 | 2 | 13 | 2 | 1.39 | 39 | 41 | -2 | -0.05 | +0.32 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 3 | 166 | 55 | 61.5 | 1.8 | 2 | 76 | 1 | 1 | 15 | 0 | 2.00 | 6 | 3 | +3 | +1.63 | +2.49 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 2 | 101 | 51 | 56.1 | 1.1 | 1 | 86 | 0 | 1 | 15 | 0 | 1.50 | 2 | 0 | +2 | +1.78 | +5.20 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 30 | 2,318 | 77 | 56.0 | 25.8 | 25 | 88 | 22 | 5 | 23 | 13 | 0.80 | 30 | 49 | -19 | -0.74 | -0.44 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1 | 89 | 89 | 74.2 | 1.0 | 1 | 89 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0.00 | +2.90 | Matches | |
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 2 | 180 | 90 | 4.3 | 2.0 | 2 | 90 | 2 | 0 | 0 | 2.00 | 2 | 1 | +1 | +0.50 | +0.77 | Matches | |
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 26 | 1,277 | 49 | 30.8 | 14.2 | 14 | 73 | 3 | 12 | 22 | 10 | 1.04 | 20 | 22 | -2 | -0.14 | +0.11 | Matches |
| 2022-2023 | 28 | Birmingham City | eng ENG | EFL Cup | 0 | 0 | 0 | 0 | 1 | Matches | ||||||||||||
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1 | 90 | 90 | 100.0 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 2 | -2 | -2.00 | Matches | ||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 1 | 73 | 73 | 20.3 | 0.8 | 1 | 73 | 0 | 0 | 0 | 3.00 | 4 | 2 | +2 | +2.47 | +1.52 | Matches | |
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 14 | 844 | 60 | 20.4 | 9.4 | 10 | 80 | 6 | 4 | 10 | 1 | 2.00 | 18 | 10 | +8 | +0.85 | +1.48 | Matches |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 12 | 626 | 52 | 15.1 | 7.0 | 8 | 71 | 2 | 4 | 15 | 4 | 1.42 | 6 | 9 | -3 | -0.43 | -0.10 | Matches |
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 4 | 307 | 77 | 78.7 | 3.4 | 3 | 90 | 2 | 1 | 38 | 0 | 2.50 | 8 | 4 | +4 | +1.17 | -1.00 | Matches |
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 37 | 2,617 | 71 | 63.2 | 29.1 | 26 | 86 | 15 | 11 | 36 | 2 | 1.24 | 30 | 42 | -12 | -0.41 | -0.18 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | 1 | 78 | 78 | 86.7 | 0.9 | 1 | 78 | 0 | 0 | 0 | 0.00 | 1 | 3 | -2 | -2.31 | -2.31 | Matches | |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 2 | 147 | 74 | 81.7 | 1.6 | 2 | 74 | 1 | 0 | 0 | 1.50 | 4 | 3 | +1 | +0.61 | +3.34 | Matches | |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 43 | 3,698 | 86 | 89.3 | 41.1 | 42 | 87 | 36 | 1 | 31 | 2 | 1.53 | 56 | 40 | +16 | +0.39 | +0.39 | Matches |
| 14 Seasons | 9 Clubs | 5 Leagues | 505 | 39,892 | 79 | 48.2 | 443.2 | 444 | 85 | 310 | 61 | 25 | 60 | 1.41 | 539 | 494 | +45 | +0.11 | +0.34 | |||
| Country | Comp | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | ||||||||||
| Brentford (4 Seasons) | 3 Leagues | 128 | 10,696 | 84 | 61.4 | 118.8 | 119 | 91 | 101 | 9 | 65 | 5 | 1.44 | 183 | 158 | +25 | +0.21 | +0.14 | ||||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 100 | 8,385 | 84 | 48.2 | 93.2 | 92 | 93 | 52 | 8 | 0 | 1.77 | 71 | 47 | +24 | +0.43 | +0.63 | |||||
| Millwall (2 Seasons) | 3 Leagues | 64 | 5,220 | 82 | 59.8 | 58.0 | 59 | 87 | 42 | 5 | 13 | 2 | 1.41 | 65 | 61 | +4 | +0.07 | +0.12 | ||||
| Exeter City (2 Seasons) | 2 Leagues | 55 | 3,768 | 69 | 43.5 | 41.9 | 39 | 85 | 23 | 16 | 29 | 3 | 1.53 | 56 | 56 | 0 | 0.00 | +0.46 | ||||
| Stoke City (2 Seasons) | 3 Leagues | 39 | 3,247 | 83 | 36.6 | 36.1 | 38 | 85 | 25 | 1 | 36 | 20 | 1.21 | 41 | 41 | 0 | 0.00 | +0.21 | ||||
| Birmingham City (2 Seasons) | 3 Leagues | 33 | 2,587 | 78 | 30.5 | 28.7 | 28 | 88 | 24 | 5 | 23 | 14 | 0.85 | 32 | 50 | -18 | -0.63 | -0.33 | ||||
| Oldham Athletic (1 Season) | 3 Leagues | 46 | 3,923 | 85 | 89.0 | 43.6 | 45 | 86 | 37 | 1 | 31 | 2 | 1.50 | 61 | 46 | +15 | +0.34 | +0.53 | ||||
| Hull City (1 Season) | 2 Leagues | 27 | 1,367 | 51 | 32.3 | 15.2 | 15 | 74 | 4 | 12 | 22 | 10 | 1.00 | 20 | 24 | -4 | -0.26 | -0.01 | ||||
| Bristol Rovers (1 Season) | 2 Leagues | 13 | 699 | 54 | 15.5 | 7.8 | 9 | 71 | 2 | 4 | 15 | 4 | 1.54 | 10 | 11 | -1 | -0.13 | +0.11 | ||||
| Stoke City (1 Season) | 1 League | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | |||||
| FA Cup (11 Seasons) | 18 | 1,437 | 80 | 67.5 | 16.0 | 16 | 87 | 11 | 2 | 27 | 1 | 1.44 | 26 | 21 | +5 | +0.31 | +0.31 | |||||
| EFL Cup (9 Seasons) | 16 | 1,331 | 83 | 65.2 | 14.8 | 13 | 91 | 9 | 3 | 48 | 2 | 1.88 | 23 | 19 | +4 | +0.27 | +0.27 | |||||
| Championship (8 Seasons) | 274 | 21,791 | 80 | 47.9 | 242.1 | 246 | 85 | 187 | 28 | 21 | 48 | 1.28 | 319 | 316 | +3 | +0.01 | +0.18 | |||||
| League One (5 Seasons) | 111 | 7,850 | 71 | 31.6 | 87.2 | 86 | 82 | 28 | 25 | 26 | 7 | 1.37 | 58 | 68 | -10 | -0.20 | +0.24 | |||||
| League Two (2 Seasons) | 86 | 7,483 | 87 | 90.4 | 83.1 | 83 | 87 | 75 | 3 | 31 | 2 | 1.73 | 113 | 70 | +43 | +0.52 | -0.50 | |||||
| PL2 — Div. 2 (1 Season) | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | ||||||
| Playing Time | Starts | Subs | Team Success | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Comp | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | |||||||
| 2012-2013 | 18 | Shrewsbury Town | 1 League | 2 | 8 | 4 | 0.2 | 0.1 | 0 | 2 | |||||||||||
| 2013-2014 | 19 | Shrewsbury Town | 1 League | 41 | 3,305 | 81 | 79.8 | 36.7 | 37 | 4 | |||||||||||
| 2014-2015 | 20 | Shrewsbury Town | 3 Leagues | 50 | 4,412 | 88 | 92.5 | 49.0 | 48 | 90 | 45 | 2 | 0 | 1.92 | 64 | 35 | +29 | +0.59 | -1.67 | ||
| 2015-2016 | 21 | Shrewsbury Town | 2 Leagues | 7 | 660 | 94 | 15.2 | 7.3 | 7 | 105 | 7 | 0 | 0 | 0.71 | 7 | 12 | -5 | -0.68 | -0.24 | ||
| 2015-2016 | 21 | Brentford | 2 Leagues | 42 | 3,410 | 81 | 80.6 | 37.9 | 39 | 90 | 30 | 3 | 1 | 1.38 | 58 | 52 | +6 | +0.16 | +0.38 | ||
| 2016-2017 | 22 | Brentford | 3 Leagues | 45 | 3,988 | 89 | 89.8 | 44.3 | 44 | 91 | 40 | 1 | 108 | 1 | 1.37 | 72 | 64 | +8 | +0.18 | -0.02 | |
| 2017-2018 | 23 | Brentford | 2 Leagues | 40 | 3,208 | 80 | 72.3 | 35.6 | 35 | 30 | 5 | 21 | 1 | 1.53 | 49 | 40 | +9 | +0.25 | -0.04 | ||
| 2018-2019 | 24 | Brentford | 2 Leagues | 1 | 90 | 90 | 2.1 | 1.0 | 1 | 90 | 1 | 0 | 2 | 3.00 | 4 | 2 | +2 | +2.00 | +2.50 | ||
| 2018-2019 | 24 | Stoke City | 2 Leagues | 27 | 2,265 | 84 | 52.4 | 25.2 | 26 | 86 | 19 | 1 | 36 | 12 | 1.26 | 28 | 25 | +3 | +0.12 | +0.60 | |
| 2019-2020 | 25 | Stoke City | 3 Leagues | 12 | 982 | 82 | 21.5 | 10.9 | 12 | 82 | 6 | 0 | 8 | 1.09 | 13 | 16 | -3 | -0.27 | -0.20 | ||
| 2019-2020 | 25 | Stoke City | 1 League | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | ||
| 2019-2020 | 25 | Millwall | 1 League | 18 | 1,529 | 85 | 36.9 | 17.0 | 17 | 89 | 14 | 1 | 10 | 0 | 1.33 | 18 | 17 | +1 | +0.06 | -0.11 | |
| 2020-2021 | 26 | Millwall | 3 Leagues | 46 | 3,691 | 80 | 80.4 | 41.0 | 42 | 87 | 28 | 4 | 14 | 2 | 1.43 | 47 | 44 | +3 | +0.07 | +0.77 | |
| 2021-2022 | 27 | Birmingham City | 2 Leagues | 31 | 2,407 | 78 | 56.5 | 26.7 | 26 | 88 | 22 | 5 | 23 | 13 | 0.77 | 30 | 49 | -19 | -0.71 | -0.37 | |
| 2022-2023 | 28 | Birmingham City | 2 Leagues | 2 | 180 | 90 | 4.3 | 2.0 | 2 | 90 | 2 | 0 | 1 | 2.00 | 2 | 1 | +1 | +0.50 | +0.77 | ||
| 2022-2023 | 28 | Hull City | 2 Leagues | 27 | 1,367 | 51 | 32.3 | 15.2 | 15 | 74 | 4 | 12 | 22 | 10 | 1.00 | 20 | 24 | -4 | -0.26 | -0.01 | |
| 2023-2024 | 29 | Bristol Rovers | 2 Leagues | 13 | 699 | 54 | 15.5 | 7.8 | 9 | 71 | 2 | 4 | 15 | 4 | 1.54 | 10 | 11 | -1 | -0.13 | +0.11 | |
| 2023-2024 | 29 | Exeter City | 1 League | 14 | 844 | 60 | 20.4 | 9.4 | 10 | 80 | 6 | 4 | 10 | 1 | 2.00 | 18 | 10 | +8 | +0.85 | +1.48 | |
| 2024-2025 | 30 | Exeter City | 2 Leagues | 41 | 2,924 | 71 | 64.5 | 32.5 | 29 | 86 | 17 | 12 | 36 | 2 | 1.36 | 38 | 46 | -8 | -0.25 | -0.13 | |
| 2025-2026 | 31 | Oldham Athletic | 3 Leagues | 46 | 3,923 | 85 | 89.0 | 43.6 | 45 | 86 | 37 | 1 | 31 | 2 | 1.50 | 61 | 46 | +15 | +0.34 | +0.53 | |
| 14 Seasons | 9 Clubs | 5 Leagues | 505 | 39,892 | 79 | 48.2 | 443.2 | 444 | 85 | 310 | 61 | 25 | 60 | 1.41 | 539 | 494 | +45 | +0.11 | +0.34 | ||
| Comp | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | ||||||||||
| Brentford (4 Seasons) | 3 Leagues | 128 | 10,696 | 84 | 61.4 | 118.8 | 119 | 91 | 101 | 9 | 65 | 5 | 1.44 | 183 | 158 | +25 | +0.21 | +0.14 | |||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 100 | 8,385 | 84 | 48.2 | 93.2 | 92 | 93 | 52 | 8 | 0 | 1.77 | 71 | 47 | +24 | +0.43 | +0.63 | ||||
| Millwall (2 Seasons) | 3 Leagues | 64 | 5,220 | 82 | 59.8 | 58.0 | 59 | 87 | 42 | 5 | 13 | 2 | 1.41 | 65 | 61 | +4 | +0.07 | +0.12 | |||
| Exeter City (2 Seasons) | 2 Leagues | 55 | 3,768 | 69 | 43.5 | 41.9 | 39 | 85 | 23 | 16 | 29 | 3 | 1.53 | 56 | 56 | 0 | 0.00 | +0.46 | |||
| Stoke City (2 Seasons) | 3 Leagues | 39 | 3,247 | 83 | 36.6 | 36.1 | 38 | 85 | 25 | 1 | 36 | 20 | 1.21 | 41 | 41 | 0 | 0.00 | +0.21 | |||
| Birmingham City (2 Seasons) | 3 Leagues | 33 | 2,587 | 78 | 30.5 | 28.7 | 28 | 88 | 24 | 5 | 23 | 14 | 0.85 | 32 | 50 | -18 | -0.63 | -0.33 | |||
| Oldham Athletic (1 Season) | 3 Leagues | 46 | 3,923 | 85 | 89.0 | 43.6 | 45 | 86 | 37 | 1 | 31 | 2 | 1.50 | 61 | 46 | +15 | +0.34 | +0.53 | |||
| Hull City (1 Season) | 2 Leagues | 27 | 1,367 | 51 | 32.3 | 15.2 | 15 | 74 | 4 | 12 | 22 | 10 | 1.00 | 20 | 24 | -4 | -0.26 | -0.01 | |||
| Bristol Rovers (1 Season) | 2 Leagues | 13 | 699 | 54 | 15.5 | 7.8 | 9 | 71 | 2 | 4 | 15 | 4 | 1.54 | 10 | 11 | -1 | -0.13 | +0.11 | |||
| Stoke City (1 Season) | 1 League | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | ||||
| FA Cup (11 Seasons) | 18 | 1,437 | 80 | 67.5 | 16.0 | 16 | 87 | 11 | 2 | 27 | 1 | 1.44 | 26 | 21 | +5 | +0.31 | +0.31 | ||||
| EFL Cup (9 Seasons) | 16 | 1,331 | 83 | 65.2 | 14.8 | 13 | 91 | 9 | 3 | 48 | 2 | 1.88 | 23 | 19 | +4 | +0.27 | +0.27 | ||||
| Championship (8 Seasons) | 274 | 21,791 | 80 | 47.9 | 242.1 | 246 | 85 | 187 | 28 | 21 | 48 | 1.28 | 319 | 316 | +3 | +0.01 | +0.18 | ||||
| League One (5 Seasons) | 111 | 7,850 | 71 | 31.6 | 87.2 | 86 | 82 | 28 | 25 | 26 | 7 | 1.37 | 58 | 68 | -10 | -0.20 | +0.24 | ||||
| League Two (2 Seasons) | 86 | 7,483 | 87 | 90.4 | 83.1 | 83 | 87 | 75 | 3 | 31 | 2 | 1.73 | 113 | 70 | +43 | +0.52 | -0.50 | ||||
| PL2 — Div. 2 (1 Season) | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | |||||
| Playing Time | Starts | Subs | Team Success | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | |||||||
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 16th | 2 | 8 | 4 | 0.2 | 0.1 | 0 | 2 | |||||||||||
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 23rd | 41 | 3,305 | 81 | 79.8 | 36.7 | 37 | 4 | |||||||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 2nd | 43 | 3,785 | 88 | 91.4 | 42.1 | 41 | 39 | 2 | 0 | 1.93 | 57 | 30 | +27 | +0.64 | -1.64 | Matches | ||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 20th | 5 | 450 | 90 | 10.9 | 5.0 | 5 | 5 | 0 | 0 | 0.40 | 4 | 7 | -3 | -0.60 | -0.16 | Matches | ||
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 9th | 41 | 3,320 | 81 | 80.2 | 36.9 | 38 | 29 | 3 | 1 | 1.41 | 58 | 51 | +7 | +0.19 | +0.41 | Matches | ||
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 10th | 42 | 3,699 | 88 | 89.3 | 41.1 | 42 | 38 | 0 | 1 | 1.40 | 67 | 58 | +9 | +0.22 | +0.01 | Matches | ||
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 9th | 39 | 3,186 | 82 | 77.0 | 35.4 | 35 | 30 | 4 | 0 | 1.49 | 48 | 40 | +8 | +0.23 | +0.04 | Matches | ||
| 2018-2019 | 24 | Brentford | eng ENG | 2. Championship | 11th | 0 | 0 | 0 | 0 | 2 | Matches | ||||||||||||
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 16th | 27 | 2,265 | 84 | 54.7 | 25.2 | 26 | 86 | 19 | 1 | 36 | 11 | 1.26 | 28 | 25 | +3 | +0.12 | +0.60 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 15th | 8 | 593 | 74 | 14.3 | 6.6 | 8 | 74 | 3 | 0 | 8 | 0.88 | 9 | 12 | -3 | -0.46 | -0.38 | Matches | |
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 4th | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | Matches | |
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 8th | 18 | 1,529 | 85 | 36.9 | 17.0 | 17 | 89 | 14 | 1 | 10 | 0 | 1.33 | 18 | 17 | +1 | +0.06 | -0.11 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 11th | 41 | 3,424 | 84 | 82.7 | 38.0 | 39 | 87 | 27 | 2 | 13 | 2 | 1.39 | 39 | 41 | -2 | -0.05 | +0.32 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 20th | 30 | 2,318 | 77 | 56.0 | 25.8 | 25 | 88 | 22 | 5 | 23 | 13 | 0.80 | 30 | 49 | -19 | -0.74 | -0.44 | Matches |
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 17th | 2 | 180 | 90 | 4.3 | 2.0 | 2 | 90 | 2 | 0 | 0 | 2.00 | 2 | 1 | +1 | +0.50 | +0.77 | Matches | |
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 15th | 26 | 1,277 | 49 | 30.8 | 14.2 | 14 | 73 | 3 | 12 | 22 | 10 | 1.04 | 20 | 22 | -2 | -0.14 | +0.11 | Matches |
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 15th | 12 | 626 | 52 | 15.1 | 7.0 | 8 | 71 | 2 | 4 | 15 | 4 | 1.42 | 6 | 9 | -3 | -0.43 | -0.10 | Matches |
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 13th | 14 | 844 | 60 | 20.4 | 9.4 | 10 | 80 | 6 | 4 | 10 | 1 | 2.00 | 18 | 10 | +8 | +0.85 | +1.48 | Matches |
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 16th | 37 | 2,617 | 71 | 63.2 | 29.1 | 26 | 86 | 15 | 11 | 36 | 2 | 1.24 | 30 | 42 | -12 | -0.41 | -0.18 | Matches |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 10th | 43 | 3,698 | 86 | 89.3 | 41.1 | 42 | 87 | 36 | 1 | 31 | 2 | 1.53 | 56 | 40 | +16 | +0.39 | +0.39 | Matches |
| 14 Seasons | 9 Clubs | 3 Leagues | 471 | 37,124 | 79 | 47.2 | 412.5 | 415 | 85 | 290 | 56 | 24 | 57 | 1.39 | 490 | 454 | +36 | +0.10 | +0.33 | ||||
| Country | Comp | LgRank | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | ||||||||||
| Brentford (4 Seasons) | 1 League | 122 | 10,205 | 84 | 62.0 | 113.4 | 115 | 97 | 7 | 4 | 1.43 | 173 | 149 | +24 | +0.21 | +0.17 | |||||||
| Shrewsbury Town (4 Seasons) | 2 Leagues | 91 | 7,548 | 83 | 45.6 | 83.9 | 83 | 44 | 8 | 0 | 1.77 | 61 | 37 | +24 | +0.51 | +0.71 | |||||||
| Millwall (2 Seasons) | 1 League | 59 | 4,953 | 84 | 59.8 | 55.0 | 56 | 88 | 41 | 3 | 12 | 2 | 1.37 | 57 | 58 | -1 | -0.02 | -0.07 | |||||
| Exeter City (2 Seasons) | 1 League | 51 | 3,461 | 68 | 41.8 | 38.5 | 36 | 84 | 21 | 15 | 29 | 3 | 1.45 | 48 | 52 | -4 | -0.10 | +0.40 | |||||
| Stoke City (2 Seasons) | 1 League | 35 | 2,858 | 82 | 34.5 | 31.8 | 34 | 83 | 22 | 1 | 36 | 19 | 1.17 | 37 | 37 | 0 | 0.00 | +0.22 | |||||
| Birmingham City (2 Seasons) | 1 League | 32 | 2,498 | 78 | 30.2 | 27.8 | 27 | 88 | 24 | 5 | 23 | 13 | 0.88 | 32 | 50 | -18 | -0.65 | -0.37 | |||||
| Oldham Athletic (1 Season) | 1 League | 43 | 3,698 | 86 | 89.3 | 41.1 | 42 | 87 | 36 | 1 | 31 | 2 | 1.53 | 56 | 40 | +16 | +0.39 | +0.39 | |||||
| Hull City (1 Season) | 1 League | 26 | 1,277 | 49 | 30.8 | 14.2 | 14 | 73 | 3 | 12 | 22 | 10 | 1.04 | 20 | 22 | -2 | -0.14 | +0.11 | |||||
| Bristol Rovers (1 Season) | 1 League | 12 | 626 | 52 | 15.1 | 7.0 | 8 | 71 | 2 | 4 | 15 | 4 | 1.42 | 6 | 9 | -3 | -0.43 | -0.10 | |||||
| Stoke City (1 Season) | 1 League | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | ||||||
| Championship (8 Seasons) | 274 | 21,791 | 80 | 47.9 | 242.1 | 246 | 85 | 187 | 28 | 21 | 48 | 1.28 | 319 | 316 | +3 | +0.01 | +0.18 | ||||||
| League One (5 Seasons) | 111 | 7,850 | 71 | 31.6 | 87.2 | 86 | 82 | 28 | 25 | 26 | 7 | 1.37 | 58 | 68 | -10 | -0.20 | +0.24 | ||||||
| League Two (2 Seasons) | 86 | 7,483 | 87 | 90.4 | 83.1 | 83 | 87 | 75 | 3 | 31 | 2 | 1.73 | 113 | 70 | +43 | +0.52 | -0.50 | ||||||
| PL2 — Div. 2 (1 Season) | 1 | 90 | 90 | 5.6 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 4 | -4 | -4.00 | -4.53 | |||||||
| Playing Time | Starts | Subs | Team Success | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | |||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 65th | 3 | 270 | 90 | 100.0 | 3.0 | 3 | 90 | 3 | 0 | 0 | 1.33 | 3 | 3 | 0 | 0.00 | Matches | ||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 9th | 4 | 357 | 89 | 99.2 | 4.0 | 4 | 89 | 3 | 0 | 0 | 2.25 | 4 | 2 | +2 | +0.50 | +0.50 | Matches | |
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 33rd | 2 | 210 | 105 | 100.0 | 2.3 | 2 | 105 | 2 | 0 | 0 | 1.50 | 3 | 5 | -2 | -0.86 | Matches | ||
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 33rd | 1 | 90 | 90 | 100.0 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 1 | -1 | -1.00 | Matches | ||
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 58th | 1 | 109 | 109 | 90.8 | 1.2 | 0 | 0 | 1 | 108 | 0 | 0.00 | 0 | 1 | -1 | -0.83 | -0.83 | Matches | |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 17th | 2 | 180 | 90 | 100.0 | 2.0 | 2 | 90 | 2 | 0 | 0 | 1.50 | 5 | 5 | 0 | 0.00 | Matches | ||
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 17th | 1 | 22 | 22 | 7.3 | 0.2 | 0 | 0 | 1 | 21 | 1 | 3.00 | 1 | 0 | +1 | +4.09 | +3.44 | Matches | |
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 17th | 1 | 90 | 90 | 33.3 | 1.0 | 1 | 90 | 1 | 0 | 0 | 3.00 | 4 | 2 | +2 | +2.00 | +2.50 | Matches | |
| 2018-2019 | 24 | Stoke City | eng ENG | FA Cup | 33rd | 0 | 0 | 0 | 0 | 1 | Matches | ||||||||||||
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 17th | 3 | 299 | 100 | 90.6 | 3.3 | 3 | 100 | 2 | 0 | 0 | 2.00 | 4 | 3 | +1 | +0.30 | +0.30 | Matches | |
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 33rd | 1 | 90 | 90 | 100.0 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 1 | -1 | -1.00 | Matches | ||
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 17th | 3 | 166 | 55 | 61.5 | 1.8 | 2 | 76 | 1 | 1 | 15 | 0 | 2.00 | 6 | 3 | +3 | +1.63 | +2.49 | Matches |
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 17th | 2 | 101 | 51 | 56.1 | 1.1 | 1 | 86 | 0 | 1 | 15 | 0 | 1.50 | 2 | 0 | +2 | +1.78 | +5.20 | Matches |
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1 | 89 | 89 | 74.2 | 1.0 | 1 | 89 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0.00 | +2.90 | Matches | ||
| 2022-2023 | 28 | Birmingham City | eng ENG | EFL Cup | Rd1 | 0 | 0 | 0 | 0 | 1 | Matches | ||||||||||||
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1 | 90 | 90 | 100.0 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 2 | -2 | -2.00 | Matches | |||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 1 | 73 | 73 | 20.3 | 0.8 | 1 | 73 | 0 | 0 | 0 | 3.00 | 4 | 2 | +2 | +2.47 | +1.52 | Matches | ||
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 4 | 307 | 77 | 78.7 | 3.4 | 3 | 90 | 2 | 1 | 38 | 0 | 2.50 | 8 | 4 | +4 | +1.17 | -1.00 | Matches | |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | Pre | 1 | 78 | 78 | 86.7 | 0.9 | 1 | 78 | 0 | 0 | 0 | 0.00 | 1 | 3 | -2 | -2.31 | -2.31 | Matches | |
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 2 | 147 | 74 | 81.7 | 1.6 | 2 | 74 | 1 | 0 | 0 | 1.50 | 4 | 3 | +1 | +0.61 | +3.34 | Matches | ||
| 12 Seasons | 9 Clubs | 2 Leagues | 34 | 2,768 | 81 | 66.4 | 30.8 | 29 | 89 | 20 | 5 | 39 | 3 | 1.65 | 49 | 40 | +9 | +0.29 | +0.29 | ||||
| Country | Comp | LgRank | MP | Min | 90s | Starts | Compl | Subs | unSub | onG | onGA | +/- | Matches | ||||||||||
| Brentford (4 Seasons) | 2 Leagues | 6 | 491 | 82 | 51.1 | 5.5 | 4 | 91 | 4 | 2 | 65 | 1 | 1.50 | 10 | 9 | +1 | +0.18 | -0.01 | |||||
| Shrewsbury Town (2 Seasons) | 2 Leagues | 9 | 837 | 93 | 99.6 | 9.3 | 9 | 93 | 8 | 0 | 0 | 1.78 | 10 | 10 | 0 | 0.00 | 0.00 | ||||||
| Stoke City (2 Seasons) | 2 Leagues | 4 | 389 | 97 | 64.8 | 4.3 | 4 | 97 | 3 | 0 | 1 | 1.50 | 4 | 4 | 0 | 0.00 | 0.00 | ||||||
| Birmingham City (2 Seasons) | 2 Leagues | 1 | 89 | 89 | 42.4 | 1.0 | 1 | 89 | 0 | 0 | 1 | 0.00 | 0 | 0 | 0 | 0.00 | +2.90 | ||||||
| Millwall (1 Season) | 2 Leagues | 5 | 267 | 53 | 59.3 | 3.0 | 3 | 79 | 1 | 2 | 15 | 0 | 1.80 | 8 | 3 | +5 | +1.69 | +3.65 | |||||
| Exeter City (1 Season) | 1 League | 4 | 307 | 77 | 78.7 | 3.4 | 3 | 90 | 2 | 1 | 38 | 0 | 2.50 | 8 | 4 | +4 | +1.17 | -1.00 | |||||
| Oldham Athletic (1 Season) | 2 Leagues | 3 | 225 | 75 | 83.3 | 2.5 | 3 | 75 | 1 | 0 | 0 | 1.00 | 5 | 6 | -1 | -0.40 | +1.60 | ||||||
| Bristol Rovers (1 Season) | 1 League | 1 | 73 | 73 | 20.3 | 0.8 | 1 | 73 | 0 | 0 | 0 | 3.00 | 4 | 2 | +2 | +2.47 | +1.52 | ||||||
| Hull City (1 Season) | 1 League | 1 | 90 | 90 | 100.0 | 1.0 | 1 | 90 | 1 | 0 | 0 | 0.00 | 0 | 2 | -2 | -2.00 | |||||||
| FA Cup (11 Seasons) | 18 | 1,437 | 80 | 67.5 | 16.0 | 16 | 87 | 11 | 2 | 27 | 1 | 1.44 | 26 | 21 | +5 | +0.31 | +0.31 | ||||||
| EFL Cup (9 Seasons) | 16 | 1,331 | 83 | 65.2 | 14.8 | 13 | 91 | 9 | 3 | 48 | 2 | 1.88 | 23 | 19 | +4 | +0.27 | +0.27 | ||||||
| Performance | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches |
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 0.1 | 0 | 0 | 0 | ||||||||||
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 36.7 | 5 | 0 | 28 | ||||||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 3.0 | 2 | 0 | 0 | 0 | Matches | ||||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 4.0 | 1 | 0 | 0 | 0 | Matches | ||||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 42.1 | 8 | 0 | 42 | Matches | |||||||||
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 36.9 | 7 | 0 | 45 | Matches | |||||||||
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0 | Matches | ||||||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 2.3 | 1 | 0 | 0 | 0 | Matches | ||||||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 5.0 | 1 | 0 | 6 | Matches | |||||||||
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 41.1 | 7 | 0 | 0 | 48 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 1.2 | 1 | 0 | 0 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 2.0 | 0 | 0 | 0 | 0 | Matches | ||||||||
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 35.4 | 9 | 1 | 0 | 48 | 41 | 0 | 12 | 49 | 36 | 0 | 1 | 0 | Matches |
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 0.2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 25.2 | 5 | 0 | 0 | 30 | 34 | 0 | 8 | 18 | 24 | 0 | 0 | 0 | Matches |
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 6.6 | 2 | 0 | 0 | 6 | 9 | 0 | 15 | 6 | 7 | 0 | Matches | ||
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 17.0 | 3 | 0 | 0 | 26 | 23 | 0 | 12 | 10 | 12 | 0 | Matches | ||
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 3.3 | 1 | 0 | 0 | 4 | 3 | 0 | 3 | 4 | 10 | 0 | Matches | ||
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 2 | 0 | 0 | 2 | 0 | 0 | 0 | Matches | ||
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 1.0 | 0 | 0 | 0 | 0 | Matches | ||||||||
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 38.0 | 9 | 0 | 0 | 48 | 30 | 0 | 8 | 35 | 25 | 0 | Matches | ||
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 1.8 | 0 | 0 | 0 | 0 | 2 | 0 | 2 | 1 | 3 | 0 | Matches | ||
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 1.1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | Matches | ||
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 25.8 | 5 | 1 | 0 | 39 | 13 | 0 | 63 | 28 | 20 | 0 | Matches | ||
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1.0 | 1 | 0 | 0 | 1 | 1 | 0 | 8 | 0 | 0 | 0 | Matches | ||
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 2.0 | 1 | 0 | 0 | 2 | 1 | 0 | 2 | 0 | 2 | 0 | Matches | ||
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 14.2 | 6 | 0 | 0 | 24 | 10 | 0 | 21 | 6 | 8 | 0 | Matches | ||
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 8 | 0 | 1 | 0 | Matches | ||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 0.8 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | Matches | ||
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 9.4 | 1 | 1 | 0 | 9 | 12 | 0 | 24 | 9 | 7 | 0 | Matches | ||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 7.0 | 1 | 1 | 0 | 10 | 4 | 0 | 1 | 8 | 8 | 0 | Matches | ||
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 3.4 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Matches | ||
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 29.1 | 11 | 1 | 1 | 27 | 33 | 0 | 57 | 21 | 21 | 0 | Matches | ||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | 0.9 | 0 | 0 | 0 | 3 | 0 | 0 | 4 | 1 | 1 | 0 | Matches | ||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 1.6 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Matches | ||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 41.1 | 9 | 1 | 1 | 51 | 56 | 0 | 214 | 18 | 36 | 0 | Matches | ||
| 14 Seasons | 9 Clubs | 5 Leagues | 443.2 | 99 | 6 | 2 | 505 | 279 | 0 | 465 | 215 | 222 | 0 | 1 | 0 | |||
| Country | Comp | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches | |||
| Brentford (4 Seasons) | 3 Leagues | 118.8 | 24 | 1 | 0 | 144 | 44 | 0 | 12 | 49 | 36 | 0 | 1 | 0 | ||||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 93.2 | 18 | 0 | 0 | 76 | 0 | |||||||||||
| Millwall (2 Seasons) | 3 Leagues | 58.0 | 12 | 0 | 0 | 75 | 55 | 0 | 23 | 47 | 41 | 0 | ||||||
| Exeter City (2 Seasons) | 2 Leagues | 41.9 | 14 | 2 | 1 | 37 | 45 | 0 | 81 | 30 | 28 | 0 | ||||||
| Stoke City (2 Seasons) | 3 Leagues | 36.1 | 8 | 0 | 0 | 42 | 46 | 0 | 28 | 28 | 41 | 0 | 0 | 0 | ||||
| Birmingham City (2 Seasons) | 3 Leagues | 28.7 | 7 | 1 | 0 | 42 | 15 | 0 | 73 | 28 | 22 | 0 | ||||||
| Oldham Athletic (1 Season) | 3 Leagues | 43.6 | 9 | 1 | 1 | 55 | 56 | 0 | 218 | 19 | 37 | 0 | ||||||
| Hull City (1 Season) | 2 Leagues | 15.2 | 6 | 0 | 0 | 24 | 13 | 0 | 29 | 6 | 9 | 0 | ||||||
| Bristol Rovers (1 Season) | 2 Leagues | 7.8 | 1 | 1 | 0 | 10 | 5 | 0 | 1 | 8 | 8 | 0 | ||||||
| Stoke City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | 0 | ||||||||||||
| FA Cup (11 Seasons) | 16.0 | 5 | 0 | 0 | 6 | 5 | 0 | 19 | 1 | 2 | 0 | |||||||
| EFL Cup (9 Seasons) | 14.8 | 4 | 0 | 0 | 10 | 8 | 0 | 9 | 6 | 14 | 0 | 0 | 0 | |||||
| Championship (8 Seasons) | 242.1 | 54 | 2 | 0 | 316 | 161 | 0 | 141 | 152 | 134 | 0 | 1 | 0 | |||||
| League One (5 Seasons) | 87.2 | 19 | 3 | 1 | 80 | 49 | 0 | 82 | 38 | 36 | 0 | |||||||
| League Two (2 Seasons) | 83.1 | 17 | 1 | 1 | 93 | 56 | 0 | 214 | 18 | 36 | 0 | |||||||
| PL2 — Div. 2 (1 Season) | 1.0 | 0 | 0 | 0 | 0 | |||||||||||||
| Performance | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Comp | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches |
| 2012-2013 | 18 | Shrewsbury Town | 1 League | 0.1 | 0 | 0 | 0 | ||||||||||
| 2013-2014 | 19 | Shrewsbury Town | 1 League | 36.7 | 5 | 0 | 28 | ||||||||||
| 2014-2015 | 20 | Shrewsbury Town | 3 Leagues | 49.0 | 11 | 0 | 0 | 42 | 0 | ||||||||
| 2015-2016 | 21 | Shrewsbury Town | 2 Leagues | 7.3 | 2 | 0 | 0 | 6 | 0 | ||||||||
| 2015-2016 | 21 | Brentford | 2 Leagues | 37.9 | 7 | 0 | 0 | 45 | 0 | ||||||||
| 2016-2017 | 22 | Brentford | 3 Leagues | 44.3 | 8 | 0 | 0 | 50 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 2017-2018 | 23 | Brentford | 2 Leagues | 35.6 | 9 | 1 | 0 | 49 | 41 | 0 | 12 | 49 | 36 | 0 | 1 | 0 | |
| 2018-2019 | 24 | Brentford | 2 Leagues | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 2018-2019 | 24 | Stoke City | 2 Leagues | 25.2 | 5 | 0 | 0 | 30 | 34 | 0 | 8 | 18 | 24 | 0 | 0 | 0 | |
| 2019-2020 | 25 | Stoke City | 3 Leagues | 10.9 | 3 | 0 | 0 | 12 | 12 | 0 | 20 | 10 | 17 | 0 | |||
| 2019-2020 | 25 | Stoke City | 1 League | 1.0 | 0 | 0 | 0 | 0 | |||||||||
| 2019-2020 | 25 | Millwall | 1 League | 17.0 | 3 | 0 | 0 | 26 | 23 | 0 | 12 | 10 | 12 | 0 | |||
| 2020-2021 | 26 | Millwall | 3 Leagues | 41.0 | 9 | 0 | 0 | 49 | 32 | 0 | 11 | 37 | 29 | 0 | |||
| 2021-2022 | 27 | Birmingham City | 2 Leagues | 26.7 | 6 | 1 | 0 | 40 | 14 | 0 | 71 | 28 | 20 | 0 | |||
| 2022-2023 | 28 | Birmingham City | 2 Leagues | 2.0 | 1 | 0 | 0 | 2 | 1 | 0 | 2 | 0 | 2 | 0 | |||
| 2022-2023 | 28 | Hull City | 2 Leagues | 15.2 | 6 | 0 | 0 | 24 | 13 | 0 | 29 | 6 | 9 | 0 | |||
| 2023-2024 | 29 | Bristol Rovers | 2 Leagues | 7.8 | 1 | 1 | 0 | 10 | 5 | 0 | 1 | 8 | 8 | 0 | |||
| 2023-2024 | 29 | Exeter City | 1 League | 9.4 | 1 | 1 | 0 | 9 | 12 | 0 | 24 | 9 | 7 | 0 | |||
| 2024-2025 | 30 | Exeter City | 2 Leagues | 32.5 | 13 | 1 | 1 | 28 | 33 | 0 | 57 | 21 | 21 | 0 | |||
| 2025-2026 | 31 | Oldham Athletic | 3 Leagues | 43.6 | 9 | 1 | 1 | 55 | 56 | 0 | 218 | 19 | 37 | 0 | |||
| 14 Seasons | 9 Clubs | 5 Leagues | 443.2 | 99 | 6 | 2 | 505 | 279 | 0 | 465 | 215 | 222 | 0 | 1 | 0 | ||
| Comp | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches | |||
| Brentford (4 Seasons) | 3 Leagues | 118.8 | 24 | 1 | 0 | 144 | 44 | 0 | 12 | 49 | 36 | 0 | 1 | 0 | |||
| Shrewsbury Town (4 Seasons) | 4 Leagues | 93.2 | 18 | 0 | 0 | 76 | 0 | ||||||||||
| Millwall (2 Seasons) | 3 Leagues | 58.0 | 12 | 0 | 0 | 75 | 55 | 0 | 23 | 47 | 41 | 0 | |||||
| Exeter City (2 Seasons) | 2 Leagues | 41.9 | 14 | 2 | 1 | 37 | 45 | 0 | 81 | 30 | 28 | 0 | |||||
| Stoke City (2 Seasons) | 3 Leagues | 36.1 | 8 | 0 | 0 | 42 | 46 | 0 | 28 | 28 | 41 | 0 | 0 | 0 | |||
| Birmingham City (2 Seasons) | 3 Leagues | 28.7 | 7 | 1 | 0 | 42 | 15 | 0 | 73 | 28 | 22 | 0 | |||||
| Oldham Athletic (1 Season) | 3 Leagues | 43.6 | 9 | 1 | 1 | 55 | 56 | 0 | 218 | 19 | 37 | 0 | |||||
| Hull City (1 Season) | 2 Leagues | 15.2 | 6 | 0 | 0 | 24 | 13 | 0 | 29 | 6 | 9 | 0 | |||||
| Bristol Rovers (1 Season) | 2 Leagues | 7.8 | 1 | 1 | 0 | 10 | 5 | 0 | 1 | 8 | 8 | 0 | |||||
| Stoke City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | 0 | |||||||||||
| FA Cup (11 Seasons) | 16.0 | 5 | 0 | 0 | 6 | 5 | 0 | 19 | 1 | 2 | 0 | ||||||
| EFL Cup (9 Seasons) | 14.8 | 4 | 0 | 0 | 10 | 8 | 0 | 9 | 6 | 14 | 0 | 0 | 0 | ||||
| Championship (8 Seasons) | 242.1 | 54 | 2 | 0 | 316 | 161 | 0 | 141 | 152 | 134 | 0 | 1 | 0 | ||||
| League One (5 Seasons) | 87.2 | 19 | 3 | 1 | 80 | 49 | 0 | 82 | 38 | 36 | 0 | ||||||
| League Two (2 Seasons) | 83.1 | 17 | 1 | 1 | 93 | 56 | 0 | 214 | 18 | 36 | 0 | ||||||
| PL2 — Div. 2 (1 Season) | 1.0 | 0 | 0 | 0 | 0 | ||||||||||||
| Performance | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches |
| 2012-2013 | 18 | Shrewsbury Town | eng ENG | 3. League One | 16th | 0.1 | 0 | 0 | 0 | ||||||||||
| 2013-2014 | 19 | Shrewsbury Town | eng ENG | 3. League One | 23rd | 36.7 | 5 | 0 | 28 | ||||||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | 4. League Two | 2nd | 42.1 | 8 | 0 | 42 | Matches | |||||||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | 3. League One | 20th | 5.0 | 1 | 0 | 6 | Matches | |||||||||
| 2015-2016 | 21 | Brentford | eng ENG | 2. Championship | 9th | 36.9 | 7 | 0 | 45 | Matches | |||||||||
| 2016-2017 | 22 | Brentford | eng ENG | 2. Championship | 10th | 41.1 | 7 | 0 | 0 | 48 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2017-2018 | 23 | Brentford | eng ENG | 2. Championship | 9th | 35.4 | 9 | 1 | 0 | 48 | 41 | 0 | 12 | 49 | 36 | 0 | 1 | 0 | Matches |
| 2018-2019 | 24 | Stoke City | eng ENG | 2. Championship | 16th | 25.2 | 5 | 0 | 0 | 30 | 34 | 0 | 8 | 18 | 24 | 0 | 0 | 0 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | 2. Championship | 15th | 6.6 | 2 | 0 | 0 | 6 | 9 | 0 | 15 | 6 | 7 | 0 | Matches | ||
| 2019-2020 | 25 | Stoke City | eng ENG | Jr. PL2 — Div. 2 | 4th | 1.0 | 0 | 0 | 0 | 0 | Matches | ||||||||
| 2019-2020 | 25 | Millwall | eng ENG | 2. Championship | 8th | 17.0 | 3 | 0 | 0 | 26 | 23 | 0 | 12 | 10 | 12 | 0 | Matches | ||
| 2020-2021 | 26 | Millwall | eng ENG | 2. Championship | 11th | 38.0 | 9 | 0 | 0 | 48 | 30 | 0 | 8 | 35 | 25 | 0 | Matches | ||
| 2021-2022 | 27 | Birmingham City | eng ENG | 2. Championship | 20th | 25.8 | 5 | 1 | 0 | 39 | 13 | 0 | 63 | 28 | 20 | 0 | Matches | ||
| 2022-2023 | 28 | Birmingham City | eng ENG | 2. Championship | 17th | 2.0 | 1 | 0 | 0 | 2 | 1 | 0 | 2 | 0 | 2 | 0 | Matches | ||
| 2022-2023 | 28 | Hull City | eng ENG | 2. Championship | 15th | 14.2 | 6 | 0 | 0 | 24 | 10 | 0 | 21 | 6 | 8 | 0 | Matches | ||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | 3. League One | 15th | 7.0 | 1 | 1 | 0 | 10 | 4 | 0 | 1 | 8 | 8 | 0 | Matches | ||
| 2023-2024 | 29 | Exeter City | eng ENG | 3. League One | 13th | 9.4 | 1 | 1 | 0 | 9 | 12 | 0 | 24 | 9 | 7 | 0 | Matches | ||
| 2024-2025 | 30 | Exeter City | eng ENG | 3. League One | 16th | 29.1 | 11 | 1 | 1 | 27 | 33 | 0 | 57 | 21 | 21 | 0 | Matches | ||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | 4. League Two | 10th | 41.1 | 9 | 1 | 1 | 51 | 56 | 0 | 214 | 18 | 36 | 0 | Matches | ||
| 14 Seasons | 9 Clubs | 3 Leagues | 412.5 | 90 | 6 | 2 | 489 | 266 | 0 | 437 | 208 | 206 | 0 | 1 | 0 | ||||
| Country | Comp | LgRank | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches | |||
| Brentford (4 Seasons) | 1 League | 113.4 | 23 | 1 | 0 | 141 | 41 | 0 | 12 | 49 | 36 | 0 | 1 | 0 | |||||
| Shrewsbury Town (4 Seasons) | 2 Leagues | 83.9 | 14 | 0 | 76 | ||||||||||||||
| Millwall (2 Seasons) | 1 League | 55.0 | 12 | 0 | 0 | 74 | 53 | 0 | 20 | 45 | 37 | 0 | |||||||
| Exeter City (2 Seasons) | 1 League | 38.5 | 12 | 2 | 1 | 36 | 45 | 0 | 81 | 30 | 28 | 0 | |||||||
| Stoke City (2 Seasons) | 1 League | 31.8 | 7 | 0 | 0 | 36 | 43 | 0 | 23 | 24 | 31 | 0 | 0 | 0 | |||||
| Birmingham City (2 Seasons) | 1 League | 27.8 | 6 | 1 | 0 | 41 | 14 | 0 | 65 | 28 | 22 | 0 | |||||||
| Oldham Athletic (1 Season) | 1 League | 41.1 | 9 | 1 | 1 | 51 | 56 | 0 | 214 | 18 | 36 | 0 | |||||||
| Hull City (1 Season) | 1 League | 14.2 | 6 | 0 | 0 | 24 | 10 | 0 | 21 | 6 | 8 | 0 | |||||||
| Bristol Rovers (1 Season) | 1 League | 7.0 | 1 | 1 | 0 | 10 | 4 | 0 | 1 | 8 | 8 | 0 | |||||||
| Stoke City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | 0 | |||||||||||||
| Championship (8 Seasons) | 242.1 | 54 | 2 | 0 | 316 | 161 | 0 | 141 | 152 | 134 | 0 | 1 | 0 | ||||||
| League One (5 Seasons) | 87.2 | 19 | 3 | 1 | 80 | 49 | 0 | 82 | 38 | 36 | 0 | ||||||||
| League Two (2 Seasons) | 83.1 | 17 | 1 | 1 | 93 | 56 | 0 | 214 | 18 | 36 | 0 | ||||||||
| PL2 — Div. 2 (1 Season) | 1.0 | 0 | 0 | 0 | 0 | ||||||||||||||
| Performance | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Season | Age | Squad | Country | Comp | LgRank | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches |
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | FA Cup | 65th | 3.0 | 2 | 0 | 0 | 0 | Matches | ||||||||
| 2014-2015 | 20 | Shrewsbury Town | eng ENG | League Cup | 9th | 4.0 | 1 | 0 | 0 | 0 | Matches | ||||||||
| 2015-2016 | 21 | Shrewsbury Town | eng ENG | League Cup | 33rd | 2.3 | 1 | 0 | 0 | 0 | Matches | ||||||||
| 2015-2016 | 21 | Brentford | eng ENG | FA Cup | 33rd | 1.0 | 0 | 0 | 0 | 0 | Matches | ||||||||
| 2016-2017 | 22 | Brentford | eng ENG | EFL Cup | 58th | 1.2 | 1 | 0 | 0 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2016-2017 | 22 | Brentford | eng ENG | FA Cup | 17th | 2.0 | 0 | 0 | 0 | 0 | Matches | ||||||||
| 2017-2018 | 23 | Brentford | eng ENG | EFL Cup | 17th | 0.2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2018-2019 | 24 | Brentford | eng ENG | EFL Cup | 17th | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Matches |
| 2019-2020 | 25 | Stoke City | eng ENG | EFL Cup | 17th | 3.3 | 1 | 0 | 0 | 4 | 3 | 0 | 3 | 4 | 10 | 0 | Matches | ||
| 2019-2020 | 25 | Stoke City | eng ENG | FA Cup | 33rd | 1.0 | 0 | 0 | 0 | 2 | 0 | 0 | 2 | 0 | 0 | 0 | Matches | ||
| 2020-2021 | 26 | Millwall | eng ENG | EFL Cup | 17th | 1.8 | 0 | 0 | 0 | 0 | 2 | 0 | 2 | 1 | 3 | 0 | Matches | ||
| 2020-2021 | 26 | Millwall | eng ENG | FA Cup | 17th | 1.1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | Matches | ||
| 2021-2022 | 27 | Birmingham City | eng ENG | FA Cup | 1.0 | 1 | 0 | 0 | 1 | 1 | 0 | 8 | 0 | 0 | 0 | Matches | |||
| 2022-2023 | 28 | Hull City | eng ENG | FA Cup | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 8 | 0 | 1 | 0 | Matches | |||
| 2023-2024 | 29 | Bristol Rovers | eng ENG | FA Cup | 0.8 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | Matches | |||
| 2024-2025 | 30 | Exeter City | eng ENG | FA Cup | 3.4 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Matches | |||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | EFL Cup | Pre | 0.9 | 0 | 0 | 0 | 3 | 0 | 0 | 4 | 1 | 1 | 0 | Matches | ||
| 2025-2026 | 31 | Oldham Athletic | eng ENG | FA Cup | 1.6 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Matches | |||
| 12 Seasons | 9 Clubs | 2 Leagues | 30.8 | 9 | 0 | 0 | 16 | 13 | 0 | 28 | 7 | 16 | 0 | 0 | 0 | ||||
| Country | Comp | LgRank | 90s | CrdY | CrdR | 2CrdY | Fls | Fld | Off | Crs | Int | TklW | PKwon | PKcon | OG | Matches | |||
| Brentford (4 Seasons) | 2 Leagues | 5.5 | 1 | 0 | 0 | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||
| Shrewsbury Town (2 Seasons) | 2 Leagues | 9.3 | 4 | 0 | 0 | 0 | |||||||||||||
| Stoke City (2 Seasons) | 2 Leagues | 4.3 | 1 | 0 | 0 | 6 | 3 | 0 | 5 | 4 | 10 | 0 | |||||||
| Birmingham City (2 Seasons) | 2 Leagues | 1.0 | 1 | 0 | 0 | 1 | 1 | 0 | 8 | 0 | 0 | 0 | |||||||
| Millwall (1 Season) | 2 Leagues | 3.0 | 0 | 0 | 0 | 1 | 2 | 0 | 3 | 2 | 4 | 0 | |||||||
| Exeter City (1 Season) | 1 League | 3.4 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||
| Oldham Athletic (1 Season) | 2 Leagues | 2.5 | 0 | 0 | 0 | 4 | 0 | 0 | 4 | 1 | 1 | 0 | |||||||
| Bristol Rovers (1 Season) | 1 League | 0.8 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |||||||
| Hull City (1 Season) | 1 League | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 8 | 0 | 1 | 0 | |||||||
| FA Cup (11 Seasons) | 16.0 | 5 | 0 | 0 | 6 | 5 | 0 | 19 | 1 | 2 | 0 | ||||||||
| EFL Cup (9 Seasons) | 14.8 | 4 | 0 | 0 | 10 | 8 | 0 | 9 | 6 | 14 | 0 | 0 | 0 | ||||||
About FBref.com
FBref.com launched (June 13, 2018) with domestic league coverage for England, France, Germany, Italy, Spain, and United States. Since then we have been steadily expanding our coverage to include domestic leagues from over 40 countries as well as domestic cup, super cup and youth leagues from top European countries. We have also added coverage for major international cups such as the UEFA Champions League and Copa Libertadores.
FBref is the most complete sources for women's football data on the internet. This includes the entire history of the FIFA Women's World Cup as well as recent domestic league seasons from nine countries.
Note that player records are likely not complete for their careers. Players may come from or move to leagues we don't currently cover. This issue will go down over time, as we add new leagues and seasons.
You can sign up to receive an e-mail when new countries and features launch.
For more information, see our Launch Blog Post, the overall leagues/competition page with details on leagues and seasons we include, or our About Page. Let us know if you find an issue or have a suggestion.
FBref is one of seven Sports-Reference.com sites.

Player Club Summary