Championship table 2025/2026
- Leader Coventry City 95 pts
- Most above xPts Hull City +19.73 against expected points
- Most below xPts West Bromwich Albion −17.40 against expected points
Championship clubs ranked by expected points (xPts) in 2025/2026, with the points each actually took beside them. Ipswich Town lead on expected points with 86.26 xPts, while Coventry City top the table.
Showing non-penalty xG. Penalties are removed from xG, xGA and xGD; xPts is unchanged.
| # restore the table order | Move sort descending | Team | P sort descending | W sort descending | D sort descending | L sort descending | GF sort descending | GA sort descending | GD sort descending | Pts sort descending | npxG sort descending | npxGA sort descending | npxGD sort descending | xPts sort descending | Pts vs xPts sort descending |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Up 1 place against the actual table | Ipswich Town IPS | 46 | 23 | 15 | 8 | 80 | 47 | +33 | 84 | 68.33 | 43.11 | +25.22 | 86.26 | −2.26 |
| 2 | Down 1 place against the actual table | Coventry City COV | 46 | 28 | 11 | 7 | 97 | 45 | +52 | 95 | 81.83 | 47.72 | +34.11 | 82.83 | +12.17 |
| 3 | Up 2 places against the actual table | Middlesbrough MID | 46 | 22 | 14 | 10 | 72 | 47 | +25 | 80 | 67.65 | 36.14 | +31.51 | 81.54 | −1.54 |
| 4 | Same place as in the actual table | Southampton SOU | 46 | 22 | 14 | 10 | 82 | 56 | +26 | 80 | 75.60 | 56.79 | +18.81 | 74.12 | +5.88 |
| 5 | Up 8 places against the actual table | Sheffield United SHE | 46 | 18 | 6 | 22 | 66 | 66 | 0 | 60 | 66.76 | 54.20 | +12.56 | 71.83 | −11.83 |
| 6 | Up 4 places against the actual table | Birmingham City BIR | 46 | 17 | 13 | 16 | 57 | 56 | +1 | 64 | 60.00 | 46.89 | +13.11 | 71.65 | −7.65 |
| 7 | Up 12 places against the actual table | West Bromwich Albion WES | 46 | 13 | 14 | 19 | 48 | 58 | −10 | 53 | 57.22 | 45.41 | +11.81 | 70.40 | −17.40 |
| 8 | Down 5 places against the actual table | Millwall MIL | 46 | 24 | 11 | 11 | 64 | 49 | +15 | 83 | 60.83 | 57.26 | +3.57 | 66.94 | +16.06 |
| 9 | Up 7 places against the actual table | Watford WAT | 46 | 14 | 15 | 17 | 53 | 65 | −12 | 57 | 52.66 | 51.53 | +1.13 | 65.28 | −8.28 |
| 10 | Down 2 places against the actual table | Derby County DER | 46 | 20 | 9 | 17 | 67 | 59 | +8 | 69 | 52.34 | 51.65 | +0.69 | 63.88 | +5.12 |
| 11 | Down 2 places against the actual table | Norwich City NOR | 46 | 19 | 8 | 19 | 63 | 56 | +7 | 65 | 58.75 | 61.01 | −2.26 | 62.81 | +2.19 |
| 12 | Up 10 places against the actual table | Blackburn Rovers BLA | 46 | 13 | 13 | 20 | 42 | 56 | −14 | 52 | 53.55 | 52.48 | +1.07 | 62.70 | −10.70 |
| 13 | Up 5 places against the actual table | Portsmouth POR | 46 | 14 | 13 | 19 | 49 | 64 | −15 | 55 | 48.82 | 52.20 | −3.38 | 61.46 | −6.46 |
| 14 | Up 1 place against the actual table | Queens Park Rangers QUE | 46 | 16 | 10 | 20 | 61 | 73 | −12 | 58 | 51.75 | 53.60 | −1.85 | 61.15 | −3.15 |
| 15 | Down 8 places against the actual table | Wrexham WRE | 46 | 19 | 14 | 13 | 69 | 65 | +4 | 71 | 52.06 | 62.00 | −9.94 | 59.35 | +11.65 |
| 16 | Down 5 places against the actual table | Swansea City SWA | 46 | 18 | 10 | 18 | 57 | 59 | −2 | 64 | 46.82 | 53.91 | −7.09 | 58.74 | +5.26 |
| 17 | Up 6 places against the actual table | Oxford United OXF | 46 | 11 | 14 | 21 | 45 | 59 | −14 | 47 | 51.95 | 57.71 | −5.76 | 57.71 | −10.71 |
| 18 | Down 6 places against the actual table | Bristol City BRI | 46 | 17 | 11 | 18 | 59 | 59 | 0 | 62 | 54.24 | 61.96 | −7.72 | 56.63 | +5.37 |
| 19 | Up 1 place against the actual table | Charlton Athletic CHA | 46 | 13 | 14 | 19 | 44 | 58 | −14 | 53 | 46.50 | 57.76 | −11.26 | 54.79 | −1.79 |
| 20 | Up 1 place against the actual table | Leicester City LEI | 46 | 12 | 16 | 18 | 58 | 68 | −10 | 52 | 49.80 | 63.69 | −13.89 | 54.36 | −2.36 |
| 21 | Down 4 places against the actual table | Stoke City STO | 46 | 15 | 10 | 21 | 51 | 56 | −5 | 55 | 51.79 | 62.75 | −10.96 | 54.17 | +0.83 |
| 22 | Down 8 places against the actual table | Preston North End PRE | 46 | 15 | 15 | 16 | 55 | 62 | −7 | 60 | 53.22 | 65.91 | −12.69 | 53.38 | +6.62 |
| 23 | Down 17 places against the actual table | Hull City HUL | 46 | 21 | 10 | 15 | 70 | 66 | +4 | 73 | 56.34 | 73.73 | −17.39 | 53.27 | +19.73 |
| 24 | Same place as in the actual table | Sheffield Wednesday SHE | 46 | 2 | 12 | 32 | 29 | 89 | −60 | 18 | 38.65 | 88.05 | −49.40 | 30.47 | −12.47 |
- More points than xPts
- Fewer points than xPts
Ranked by xPts. ▲ / ▼ beside the rank shows how far a club sits above or below its place in the actual table.
The provider published an implausible non-penalty figure for 2 of these matches — under 50% of the match total, which needs more penalties than a match usually has. Those matches fall back to total xG in the npxG columns.
How to read this table
- xG
- Expected goals: the summed chance quality of the shots a club took. A chance scored nine times in ten is worth 0.9.
- xGA
- Expected goals against: the same measure for the shots a club allowed.
- xGD
- xG minus xGA: how far a club's chances outweighed its opponents', or the other way round.
- xPts
- Expected points: the points a club's match-by-match xG would be worth on average. Each match's two xG figures become chances of a win, a draw and a loss, and a win is worth 3 and a draw 1.
- Pts vs xPts
- Actual points minus expected points based on match xG. Positive, drawn in green, is more points than the chances were worth on average; negative, in red, is fewer. It measures the gap and says nothing about its cause.
- npxG
- Non-penalty xG: xG with penalties removed, offered where the competition's figures support it. It changes xG, xGA and xGD; xPts is always worked out from all xG.
Expected points are read off the same score matrix that prices the board: each played match's two xG totals are taken as scoring rates, and the team's share is 3 × P(win) + 1 × P(draw), summed over the season. Understat arrives at the same figure by simulating each shot, which needs per-shot data, held here for %{competitions}. Passes per defensive action and deep completions are not shown because no source here ingests the event data behind them.