The same clubs ranked on expected points — what each club's match-by-match xG would be worth on average.
| # 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 | xG sort descending | xGA sort descending | xGD sort descending | xPts sort descending | Pts vs xPts sort descending |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Up 2 places against the actual table | Paris FC PFC | 5 | 3 | 2 | 0 | 8 | 3 | +5 | 11 | 9.33 | 3.23 | +6.10 | 10.86 | +0.14 |
| 2 | Up 4 places against the actual table | Paris Saint-Germain PSG | 5 | 2 | 2 | 1 | 8 | 7 | +1 | 8 | 11.41 | 5.69 | +5.72 | 10.32 | −2.32 |
| 3 | Down 1 place against the actual table | Olympique Lyonnais LYO | 5 | 3 | 2 | 0 | 10 | 2 | +8 | 11 | 8.93 | 5.84 | +3.09 | 9.04 | +1.96 |
| 4 | Up 7 places against the actual table | Stade Brestois BRE | 5 | 1 | 2 | 2 | 7 | 8 | −1 | 5 | 9.71 | 5.95 | +3.76 | 8.92 | −3.92 |
| 5 | Up 8 places against the actual table | Toulouse TFC | 5 | 1 | 2 | 2 | 7 | 9 | −2 | 5 | 10.95 | 8.22 | +2.73 | 8.68 | −3.68 |
| 6 | Up 9 places against the actual table | RC Lens RCL | 5 | 1 | 1 | 3 | 9 | 9 | 0 | 4 | 11.37 | 9.61 | +1.76 | 7.47 | −3.47 |
| 7 | Same place as in the actual table | Angers ANG | 5 | 2 | 1 | 2 | 6 | 5 | +1 | 7 | 8.05 | 7.06 | +0.99 | 7.43 | −0.43 |
| 8 | Down 7 places against the actual table | AS Monaco ASM | 5 | 4 | 1 | 0 | 8 | 3 | +5 | 13 | 6.42 | 6.53 | −0.11 | 7.10 | +5.90 |
| 9 | Same place as in the actual table | Le Mans LMA | 5 | 1 | 3 | 1 | 9 | 9 | 0 | 6 | 8.52 | 9.55 | −1.03 | 6.37 | −0.37 |
| 10 | Down 6 places against the actual table | Lille LIL | 5 | 3 | 1 | 1 | 8 | 4 | +4 | 10 | 6.95 | 8.77 | −1.82 | 6.18 | +3.82 |
| 11 | Up 1 place against the actual table | Lorient LOR | 5 | 1 | 2 | 2 | 5 | 6 | −1 | 5 | 5.93 | 6.96 | −1.03 | 6.06 | −1.06 |
| 12 | Up 6 places against the actual table | Le Havre HAC | 5 | 0 | 2 | 3 | 4 | 7 | −3 | 2 | 6.96 | 8.05 | −1.09 | 6.01 | −4.01 |
| 13 | Down 3 places against the actual table | Auxerre AUX | 5 | 2 | 0 | 3 | 7 | 12 | −5 | 6 | 7.06 | 10.23 | −3.17 | 5.91 | +0.09 |
| 14 | Up 3 places against the actual table | Olympique de Marseille MAR | 5 | 1 | 0 | 4 | 7 | 8 | −1 | 3 | 7.82 | 11.40 | −3.58 | 5.43 | −2.43 |
| 15 | Down 10 places against the actual table | Stade Rennais REN | 5 | 3 | 1 | 1 | 8 | 9 | −1 | 10 | 8.78 | 11.35 | −2.57 | 5.41 | +4.59 |
| 16 | Same place as in the actual table | Troyes TRO | 5 | 1 | 1 | 3 | 4 | 11 | −7 | 4 | 7.02 | 9.81 | −2.79 | 4.82 | −0.82 |
| 17 | Down 3 places against the actual table | Nice NIC | 5 | 1 | 2 | 2 | 3 | 6 | −3 | 5 | 5.40 | 8.77 | −3.37 | 4.71 | +0.29 |
| 18 | Down 10 places against the actual table | RC Strasbourg RCS | 5 | 2 | 1 | 2 | 10 | 10 | 0 | 7 | 6.22 | 9.81 | −3.59 | 4.18 | +2.82 |
- 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.