Full Back · Manchester City · season-by-season, by competition, and every match.
Past his 2023/24 peak — the recent trend is downward, so buyers are paying for what's left, not what was.
The record covers 6 seasons (2020/21–2025/26) across 1 club — 126 appearances with 8 goal contributions from defence.
His best campaign on record is 2023/24 at Manchester City — Season rating 30, 2 goals and 2 assists in 35 games. Form has slipped 19 Season points across his last 3 full seasons. The gap to his peak is 19 Season points.
| Season | Club | Apps | G | A | Rating | Season |
|---|---|---|---|---|---|---|
| 2025/26 | Manchester City | 18 | 0 | 0 | 33 | 11 |
| 2024/25 | Manchester City | 19 | 0 | 0 | 45 | 12 |
| 2023/24 | Manchester City | 35 | 2 | 2 | 63 | 30 |
| 2022/23 | Manchester City | 30 | 1 | 0 | 68 | 30 |
| 2021/22 | Manchester City | 14 | 2 | 0 | 72 | 27 |
| 2020/21 | Manchester City | 10 | 1 | 0 | 76 | 17 |
| Competition | Apps | Min | G | A | Rating |
|---|---|---|---|---|---|
| Premier League | 18 | 703 | 0 | 0 | 6.8 |
| League Cup | 5 | 493 | 0 | 0 | 7.1 |
| UEFA Champions League | 5 | 243 | 0 | 0 | 6.9 |
| FA Cup | 3 | 225 | 0 | 0 | 6.9 |
| FIFA Club World Cup | 3 | 157 | 0 | 0 | 7.0 |
| Friendlies Clubs | 3 | 157 | 0 | 0 | 7.0 |
| Date | Competition | Opponent | Res | Status | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|---|
| Jun 18 | FIFA Club World Cup | H Wydad AC | 2-0 | Played | 90 | 7.5 | ||
| Jun 23 | FIFA Club World Cup | H Al Ain | 6-0 | Unused sub | 0 | — | ||
| Jun 26 | FIFA Club World Cup | A Juventus | 5-2 | Unused sub | 0 | — | ||
| Jul 1 | FIFA Club World Cup | H Al-Hilal Saudi FC | 3-4 | Played | 67 | 6.6 | ||
| Aug 9 | Friendlies Clubs | A Palermo | 3-0 | Not in squad | — | |||
| Aug 16 | Premier League | A Wolves | 4-0 | Unused sub | 0 | — | ||
| Aug 23 | Premier League | H Tottenham | 0-2 | Played | 67 | 6.2 | ||
| Aug 31 | Premier League | A Brighton | 1-2 | Unused sub | 0 | — | ||
| Sep 14 | Premier League | H Manchester United | 3-0 | Played | 2 | — | ||
| Sep 18 | UEFA Champions League | H Napoli | 2-0 | Played | 10 | 7.0 | ||
| Sep 21 | Premier League | A Arsenal | 1-1 | Played | 22 | 6.5 | ||
| Sep 24 | League Cup | A Huddersfield | 2-0 | Played | 90 | 7.6 | ||
| Sep 27 | Premier League | H Burnley | 5-1 | Played | 20 | 6.6 | ||
| Oct 1 | UEFA Champions League | A Monaco | 2-2 | Unused sub | 0 | — | ||
| Oct 5 | Premier League | A Brentford | 1-0 | Unused sub | 0 | — | ||
| Oct 18 | Premier League | H Everton | 2-0 | Played | 90 | 8.2 | ||
| Oct 21 | UEFA Champions League | A Villarreal | 2-0 | Unused sub | 0 | — | ||
| Oct 26 | Premier League | A Aston Villa | 0-1 | Unused sub | 0 | — | ||
| Oct 29 | League Cup | A Swansea | 3-1 | Played | 90 | 6.6 | ||
| Nov 2 | Premier League | H Bournemouth | 3-1 | Unused sub | 0 | — | ||
| Nov 5 | UEFA Champions League | H Borussia Dortmund | 4-1 | Unused sub | 0 | — | ||
| Nov 9 | Premier League | H Liverpool | 3-0 | Unused sub | 0 | — | ||
| Nov 22 | Premier League | A Newcastle | 1-2 | Unused sub | 0 | — | ||
| Nov 25 | UEFA Champions League | H Bayer Leverkusen | 0-2 | Played | 90 | 7.2 | ||
| Nov 29 | Premier League | H Leeds | 3-2 | Unused sub | 0 | — | ||
| Dec 2 | Premier League | A Fulham | 5-4 | Played | 1 | — | ||
| Dec 6 | Premier League | H Sunderland | 3-0 | Played | 20 | 6.7 | ||
| Dec 10 | UEFA Champions League | A Real Madrid | 2-1 | Played | 8 | 6.6 | ||
| Dec 14 | Premier League | A Crystal Palace | 3-0 | Unused sub | 0 | — | ||
| Dec 17 | League Cup | H Brentford | 2-0 | Played | 90 | 7.2 | ||
| Dec 20 | Premier League | H West Ham | 3-0 | Unused sub | 0 | — | ||
| Dec 27 | Premier League | A Nottingham Forest | 2-1 | Played | 1 | — | ||
| Jan 1 | Premier League | A Sunderland | 0-0 | Played | 90 | 7.9 | ||
| Jan 4 | Premier League | H Chelsea | 1-1 | Played | 9 | 6.5 | ||
| Jan 7 | Premier League | H Brighton | 1-1 | Played | 73 | 6.6 | ||
| Jan 10 | FA Cup | H Exeter City | 10-1 | Played | 45 | 7.0 | ||
| Jan 13 | League Cup | A Newcastle | 2-0 | Played | 88 | 6.6 | ||
| Jan 17 | Premier League | A Manchester United | 0-2 | Played | 90 | 6.2 | ||
| Jan 20 | UEFA Champions League | A Bodo/Glimt | 1-3 | Unused sub | 0 | — | ||
| Jan 24 | Premier League | H Wolves | 2-0 | Unused sub | 0 | — | ||
| Jan 28 | UEFA Champions League | H Galatasaray | 2-0 | Played | 90 | 7.3 | ||
| Feb 1 | Premier League | A Tottenham | 2-2 | Unused sub | 0 | — | ||
| Feb 4 | League Cup | H Newcastle | 3-1 | Played | 45 | 7.2 | ||
| Feb 8 | Premier League | A Liverpool | 2-1 | Played | 9 | 6.6 | ||
| Feb 11 | Premier League | H Fulham | 3-0 | Not in squad | — | |||
| Feb 14 | FA Cup | H Salford City | 2-0 | Not in squad | — | |||
| Feb 21 | Premier League | H Newcastle | 2-1 | Not in squad | — | |||
| Feb 28 | Premier League | A Leeds | 1-0 | Played | 9 | 6.9 | ||
| Mar 4 | Premier League | H Nottingham Forest | 2-2 | Unused sub | 0 | — | ||
| Mar 7 | FA Cup | A Newcastle | 3-1 | Played | 90 | 6.6 | ||
| Mar 11 | UEFA Champions League | A Real Madrid | 0-3 | Unused sub | 0 | — | ||
| Mar 14 | Premier League | A West Ham | 1-1 | Unused sub | 0 | — | ||
| Mar 17 | UEFA Champions League | H Real Madrid | 1-2 | Played | 45 | 6.3 | ||
| Mar 22 | League Cup | A Arsenal | 2-0 | Played | 90 | 7.3 | ||
| Apr 4 | FA Cup | H Liverpool | 4-0 | Unused sub | 0 | — | ||
| Apr 12 | Premier League | A Chelsea | 3-0 | Unused sub | 0 | — | ||
| Apr 19 | Premier League | H Arsenal | 2-1 | Played | 1 | — | ||
| Apr 22 | Premier League | A Burnley | 1-0 | Unused sub | 0 | — | ||
| Apr 25 | FA Cup | H Southampton | 2-1 | Played | 90 | 7.0 | ||
| May 4 | Premier League | A Everton | 3-3 | Unused sub | 0 | — | ||
| May 9 | Premier League | H Brentford | 3-0 | Played | 90 | 6.9 | ||
| May 13 | Premier League | H Crystal Palace | 3-0 | Played | 32 | 6.9 | ||
| May 16 | FA Cup | A Chelsea | 1-0 | Unused sub | 0 | — | ||
| May 19 | Premier League | A Bournemouth | 1-1 | Not in squad | — | |||
| May 24 | Premier League | H Aston Villa | 1-2 | Played | 77 | 6.7 |