The same clubs ranked on expected points — what each club's match-by-match xG would be worth on average.
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 | Same place as in the actual table | Roma ROM | 5 | 4 | 1 | 0 | 14 | 3 | +11 | 13 | 13.18 | 5.12 | +8.06 | 11.15 | +1.85 |
| 2 | Up 5 places against the actual table | Juventus JUV | 5 | 3 | 1 | 1 | 8 | 4 | +4 | 10 | 7.62 | 2.27 | +5.35 | 11.14 | −1.14 |
| 3 | Down 1 place against the actual table | Inter INT | 5 | 4 | 1 | 0 | 15 | 8 | +7 | 13 | 14.13 | 6.38 | +7.75 | 11.05 | +1.95 |
| 4 | Up 12 places against the actual table | Monza MON | 5 | 1 | 1 | 3 | 8 | 12 | −4 | 4 | 7.95 | 5.44 | +2.51 | 9.45 | −5.45 |
| 5 | Up 12 places against the actual table | Fiorentina FIO | 5 | 1 | 1 | 3 | 6 | 12 | −6 | 4 | 8.39 | 6.68 | +1.71 | 8.47 | −4.47 |
| 6 | Down 1 place against the actual table | Milan MIL | 5 | 3 | 2 | 0 | 10 | 4 | +6 | 11 | 6.95 | 5.66 | +1.29 | 8.16 | +2.84 |
| 7 | Up 3 places against the actual table | Sassuolo SAS | 5 | 2 | 1 | 2 | 9 | 9 | 0 | 7 | 7.75 | 5.47 | +2.28 | 8.14 | −1.14 |
| 8 | Down 5 places against the actual table | Lazio LAZ | 5 | 4 | 1 | 0 | 8 | 3 | +5 | 13 | 6.85 | 5.37 | +1.48 | 8.10 | +4.90 |
| 9 | Down 1 place against the actual table | Como COM | 5 | 3 | 1 | 1 | 9 | 6 | +3 | 10 | 9.66 | 6.82 | +2.84 | 8.02 | +1.98 |
| 10 | Up 8 places against the actual table | Bologna BOL | 5 | 0 | 2 | 3 | 3 | 6 | −3 | 2 | 6.00 | 4.86 | +1.14 | 7.76 | −5.76 |
| 11 | Down 2 places against the actual table | Napoli NAP | 5 | 2 | 1 | 2 | 7 | 6 | +1 | 7 | 7.61 | 6.05 | +1.56 | 7.50 | −0.50 |
| 12 | Up 1 place against the actual table | Udinese UDI | 5 | 1 | 1 | 3 | 8 | 11 | −3 | 4 | 6.10 | 9.46 | −3.36 | 5.64 | −1.64 |
| 13 | Down 9 places against the actual table | Cagliari CAG | 5 | 4 | 0 | 1 | 5 | 2 | +3 | 12 | 4.24 | 8.40 | −4.16 | 5.54 | +6.46 |
| 14 | Up 5 places against the actual table | Genoa GEN | 5 | 0 | 1 | 4 | 3 | 10 | −7 | 1 | 3.73 | 6.10 | −2.37 | 5.01 | −4.01 |
| 15 | Down 9 places against the actual table | Frosinone FRO | 5 | 3 | 1 | 1 | 9 | 4 | +5 | 10 | 7.16 | 9.36 | −2.20 | 4.92 | +5.08 |
| 16 | Up 4 places against the actual table | Venezia VEN | 5 | 0 | 0 | 5 | 4 | 13 | −9 | 0 | 7.01 | 10.66 | −3.65 | 4.63 | −4.63 |
| 17 | Down 3 places against the actual table | Torino TOR | 5 | 1 | 1 | 3 | 5 | 8 | −3 | 4 | 4.46 | 6.99 | −2.53 | 4.42 | −0.42 |
| 18 | Down 3 places against the actual table | Parma PAR | 5 | 1 | 1 | 3 | 4 | 7 | −3 | 4 | 3.36 | 8.51 | −5.15 | 3.50 | +0.50 |
| 19 | Down 8 places against the actual table | Atalanta ATA | 5 | 2 | 0 | 3 | 5 | 7 | −2 | 6 | 3.51 | 8.93 | −5.42 | 3.34 | +2.66 |
| 20 | Down 8 places against the actual table | Lecce LEC | 5 | 2 | 0 | 3 | 5 | 10 | −5 | 6 | 4.61 | 11.74 | −7.13 | 2.99 | +3.01 |
- 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.
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.