Ligue 1 table 2025/2026
- Leader Paris Saint-Germain 76 pts
- Most above xPts Stade Rennais +10.64 against expected points
- Most below xPts Nantes −13.91 against expected points
Ligue 1 clubs ranked by expected points (xPts) in 2025/2026, with the points each actually took beside them. Paris Saint-Germain top both the table and expected points, on 71.51 xPts.
| # 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 | Same place as in the actual table | Paris Saint-Germain PSG | 34 | 24 | 4 | 6 | 74 | 29 | +45 | 76 | 69.75 | 31.59 | +38.16 | 71.51 | +4.49 |
| 2 | Same place as in the actual table | RC Lens RCL | 34 | 22 | 4 | 8 | 66 | 35 | +31 | 70 | 67.37 | 43.38 | +23.99 | 61.68 | +8.32 |
| 3 | Same place as in the actual table | Lille LIL | 34 | 18 | 7 | 9 | 52 | 37 | +15 | 61 | 54.85 | 36.77 | +18.08 | 58.47 | +2.53 |
| 4 | Up 1 place against the actual table | Olympique de Marseille MAR | 34 | 18 | 5 | 11 | 63 | 45 | +18 | 59 | 60.96 | 46.20 | +14.76 | 56.38 | +2.62 |
| 5 | Down 1 place against the actual table | Olympique Lyonnais LYO | 34 | 18 | 6 | 10 | 53 | 40 | +13 | 60 | 51.41 | 43.87 | +7.54 | 52.09 | +7.91 |
| 6 | Up 1 place against the actual table | AS Monaco ASM | 34 | 16 | 6 | 12 | 60 | 54 | +6 | 54 | 56.82 | 48.74 | +8.08 | 51.51 | +2.49 |
| 7 | Up 1 place against the actual table | RC Strasbourg RCS | 34 | 15 | 8 | 11 | 58 | 47 | +11 | 53 | 52.86 | 45.70 | +7.16 | 50.06 | +2.94 |
| 8 | Down 2 places against the actual table | Stade Rennais REN | 34 | 17 | 8 | 9 | 59 | 50 | +9 | 59 | 54.33 | 53.27 | +1.06 | 48.36 | +10.64 |
| 9 | Up 1 place against the actual table | Toulouse TFC | 33 | 12 | 8 | 13 | 47 | 46 | +1 | 44 | 42.83 | 42.69 | +0.14 | 45.90 | −1.90 |
| 10 | Down 1 place against the actual table | Lorient LOR | 34 | 11 | 12 | 11 | 48 | 51 | −3 | 45 | 45.47 | 45.81 | −0.34 | 45.87 | −0.87 |
| 11 | Up 1 place against the actual table | Stade Brestois BRE | 34 | 10 | 9 | 15 | 43 | 55 | −12 | 39 | 44.76 | 50.15 | −5.39 | 44.88 | −5.88 |
| 12 | Down 1 place against the actual table | Paris FC PFC | 34 | 11 | 11 | 12 | 47 | 50 | −3 | 44 | 45.20 | 55.42 | −10.22 | 41.28 | +2.72 |
| 13 | Up 2 places against the actual table | Le Havre HAC | 34 | 7 | 14 | 13 | 32 | 44 | −12 | 35 | 38.05 | 51.57 | −13.52 | 39.28 | −4.28 |
| 14 | Up 2 places against the actual table | Auxerre AUX | 34 | 8 | 10 | 16 | 34 | 44 | −10 | 34 | 35.44 | 47.89 | −12.45 | 38.47 | −4.47 |
| 15 | Down 1 place against the actual table | Nice NIC | 36 | 8 | 12 | 16 | 41 | 61 | −20 | 36 | 43.39* | 58.07 | −14.68 | 38.44 | −6.44 |
| 16 | Up 1 place against the actual table | Nantes NAN | 33 | 5 | 8 | 20 | 29 | 52 | −23 | 23 | 35.93 | 47.20 | −11.27 | 36.91 | −13.91 |
| 17 | Down 4 places against the actual table | Angers ANG | 34 | 9 | 9 | 16 | 29 | 48 | −19 | 36 | 32.33 | 55.69 | −23.36 | 31.58 | +4.42 |
| 18 | Same place as in the actual table | Metz MET | 34 | 3 | 8 | 23 | 32 | 76 | −44 | 17 | 34.78 | 62.52 | −27.74 | 30.12 | −13.12 |
| 19 | Up 2 places against the actual table | Red Star FC RSF | 1 | 0 | 0 | 1 | 2 | 3 | −1 | 0 | — | — | — | — | — |
| 20 | Down 1 place against the actual table | Rodez AF ROD | 2 | 1 | 1 | 0 | 3 | 2 | +1 | 4 | — | — | — | — | — |
| 21 | Down 1 place against the actual table | Saint-Étienne STE | 3 | 0 | 2 | 1 | 1 | 4 | −3 | 2 | — | — | — | — | — |
- 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.
- xG is available for 34 of 36 matches for Nice.
- xG is available for 0 of 2 matches for Rodez AF.
- xG is available for 0 of 3 matches for Saint-Étienne.
- xG is available for 0 of 1 matches for Red Star FC.
- For those clubs the expected columns count only the matches with xG, and Pts vs xPts sets their expected points against the points from those same matches.
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.