Ligue 1 2025/2026
Full coverage: shot-by-shot xG and match-by-match player figures.
- Matches
- 309 / 309
- Season complete
- Goals
- 873
- 2.83 per match
League leaders
-
Finished first
Paris Saint-Germain
PSG
76 pts
34 played 6 points clear
-
Best attack
Paris Saint-Germain
PSG
2.05 xG per match
69.75 xG in 34 matches
-
Best defence
Paris Saint-Germain
PSG
0.93 xGA per match
31.59 xGA in 34 matches
-
Strongest underlying
Paris Saint-Germain
PSG
+1.12 xGD per match
71.51 xPts · 1st on xPts
What the Ligue 1 numbers say
Paris Saint-Germain finished first on 76 points. Their +1.12 xG difference per match was also the best in the league. Nantes finished with 23 points from 36.91 xPts, the furthest below expected in the league. On xPts, Angers would have finished 17th rather than 13th.
Table
| # | Team | P | Pts | xG | xGA | xGD | xPts |
|---|---|---|---|---|---|---|---|
| 1 | Paris Saint-Germain | 34 | 76 | 69.75 | 31.59 | +38.16 | 71.51 |
| 2 | RC Lens | 34 | 70 | 67.37 | 43.38 | +23.99 | 61.68 |
| 3 | Lille | 34 | 61 | 54.85 | 36.77 | +18.08 | 58.47 |
| 4 | Olympique Lyonnais | 34 | 60 | 51.41 | 43.87 | +7.54 | 52.09 |
| 5 | Olympique de Marseille | 34 | 59 | 60.96 | 46.20 | +14.76 | 56.38 |
Where the table and the chances disagree
Actual vs xPts position
Higher in the table than on xPts
- Angers ANG 13th · 17th on xPts 4 above xPts rank
- Stade Rennais REN 6th · 8th on xPts 2 above xPts rank
Lower in the table than on xPts
- Auxerre AUX 16th · 14th on xPts 2 below xPts rank
- Le Havre HAC 15th · 13th on xPts 2 below xPts rank
Points and goals against the chances
-
Most points above xPts
Actual points minus expected points based on match xG.
Stade Rennais
REN
+10.64
59 pts from 48.36 xPts
-
Most points below xPts
Actual points minus expected points based on match xG.
Nantes
NAN
−13.91
23 pts from 36.91 xPts
-
Most goals above xG
Goals scored minus the xG of the chances taken.
RC Strasbourg
RCS
+5.14
58 goals from 52.86 xG
-
Fewest conceded vs xGA
Goals conceded minus the xG of the chances allowed.
RC Lens
RCL
−8.38
35 conceded from 43.38 xGA
- Better than the chances
- Worse than the chances
A gap can come from finishing, goalkeeping, game state or chance. xG and xPts are model estimates, not the result a team deserved.
Attack and defence
Strong and weak mean above or below the league average, the dashed lines. Fewer xGA per match sits higher, so top-right is strong at both ends.Paris Saint-Germain
P 34 · Pts 76 · 1st
xG/match 2.05 · xGA/match 0.93 · xGD/match +1.12
xPts 71.51
Open Paris Saint-GermainRC Lens
P 34 · Pts 70 · 2nd
xG/match 1.98 · xGA/match 1.28 · xGD/match +0.71
xPts 61.68
Open RC LensOlympique de Marseille
P 34 · Pts 59 · 5th
xG/match 1.79 · xGA/match 1.36 · xGD/match +0.43
xPts 56.38
Open Olympique de MarseilleAS Monaco
P 34 · Pts 54 · 7th
xG/match 1.67 · xGA/match 1.43 · xGD/match +0.24
xPts 51.51
Open AS MonacoOlympique Lyonnais
P 34 · Pts 60 · 4th
xG/match 1.51 · xGA/match 1.29 · xGD/match +0.22
xPts 52.09
Open Olympique LyonnaisRC Strasbourg
P 34 · Pts 53 · 8th
xG/match 1.55 · xGA/match 1.34 · xGD/match +0.21
xPts 50.06
Open RC StrasbourgStade Rennais
P 34 · Pts 59 · 6th
xG/match 1.60 · xGA/match 1.57 · xGD/match +0.03
xPts 48.36
Open Stade RennaisToulouse
P 33 · Pts 44 · 10th
xG/match 1.30 · xGA/match 1.29 · xGD/match +0.00
xPts 45.90
Open ToulouseLorient
P 34 · Pts 45 · 9th
xG/match 1.34 · xGA/match 1.35 · xGD/match −0.01
xPts 45.87
Open LorientStade Brestois
P 34 · Pts 39 · 12th
xG/match 1.32 · xGA/match 1.47 · xGD/match −0.16
xPts 44.88
Open Stade BrestoisParis FC
P 34 · Pts 44 · 11th
xG/match 1.33 · xGA/match 1.63 · xGD/match −0.30
xPts 41.28
Open Paris FCAuxerre
P 34 · Pts 34 · 16th
xG/match 1.04 · xGA/match 1.41 · xGD/match −0.37
xPts 38.47
Open AuxerreLe Havre
P 34 · Pts 35 · 15th
xG/match 1.12 · xGA/match 1.52 · xGD/match −0.40
xPts 39.28
Open Le Havre| Club | xG/match | xGA/match | xGD/match |
|---|---|---|---|
| Paris Saint-Germain PSG | 2.05 | 0.93 | +1.12 |
| RC Lens RCL | 1.98 | 1.28 | +0.71 |
| Lille LIL | 1.61 | 1.08 | +0.53 |
| Olympique de Marseille MAR | 1.79 | 1.36 | +0.43 |
| AS Monaco ASM | 1.67 | 1.43 | +0.24 |
| Olympique Lyonnais LYO | 1.51 | 1.29 | +0.22 |
| RC Strasbourg RCS | 1.55 | 1.34 | +0.21 |
| Stade Rennais REN | 1.60 | 1.57 | +0.03 |
| Toulouse TFC | 1.30 | 1.29 | +0.00 |
| Lorient LOR | 1.34 | 1.35 | −0.01 |
| Stade Brestois BRE | 1.32 | 1.47 | −0.16 |
| Paris FC PFC | 1.33 | 1.63 | −0.30 |
| Nantes NAN | 1.09 | 1.43 | −0.34 |
| Auxerre AUX | 1.04 | 1.41 | −0.37 |
| Le Havre HAC | 1.12 | 1.52 | −0.40 |
| Nice NIC | 1.28 | 1.71 | −0.43 |
| Angers ANG | 0.95 | 1.64 | −0.69 |
| Metz MET | 1.02 | 1.84 | −0.82 |
- Top 3 in the table
- Other clubs
- Above average at both ends
- Below average at both ends
All xG. Hover, focus or tap a dot for its figures.
Player leaders
Goals
- 1 Esteban Lepaul 21 REN 16.01 xG
- 2 Joaquin Panichelli 16 RCS 14.22 xG
- 2 Mason Greenwood 16 MAR 14.30 xG
xG
- 1 Esteban Lepaul 16.01 REN 21 goals
- 2 Issa Soumaré 15.82 HAC 8 goals
- 3 Mason Greenwood 14.30 MAR 16 goals
xA
- 1 Matthieu Udol 8.85 RCL 7 assists
- 2 Florian Thauvin 8.64 RCL 6 assists
- 3 Adrien Thomasson 7.18 RCL 9 assists
xGI
- 1 Mason Greenwood 19.93 MAR 0.73 per 90
- 2 Florian Thauvin 19.69 RCL 0.72 per 90
- 3 Issa Soumaré 18.98 HAC 0.58 per 90
Latest results
-
Nice 4–1 Saint-Étienne
-
Saint-Étienne 0–0 Nice
-
xG 1.91 – 1.54 Level on xG
-
xG 2.20 – 0.61 Followed the xG
-
xG 1.64 – 0.85 Draw with an xG gap