xPTS Gap
Actual points vs what xG simulations say they deserve
Most Cursed
- 1
Le Havre-7.8 - 2
Stade Brestois 29-6.8 - 3
Toulouse-6.3 - 4
Marseille-6.2 - 5
Lens-5.8
Most Blessed
- 1
Monaco+11.5 - 2
Rennes+8.5 - 3
Lille+7.1 - 4
Strasbourg+4.6 - 5
Lyon+4.5
Data last updated May 1, 2026, 7:00 PM UTC
Ligue 1 is the most tactically compact of the top 5 leagues, which makes the margins between luck and skill even tighter. The CURSD Luck Score (CLS) tracks all 18 teams using the same 7-signal model as the other football leagues: xPTS delta from Poisson match simulation (25%), finishing luck above or below expected conversion (18%), defensive luck, shot volume dominance, discipline (cards variance), injury burden, and opponent scheduling strength. In a league where PSG's resource advantage compresses the table, the CLS reveals which mid-table teams are actually performing at European level and which relegation candidates are just running hot.
| RK | Team | Pos | LAS | Record | CLS | Trend | Highlight | Share |
|---|---|---|---|---|---|---|---|---|
| ↓ Unlucky | ||||||||
| 1 | ![]() Lens Ligue 1 · 4 pts | 15 | 13▲2 | 1W 1D 3L | -21 | ↓ Unlucky 3.2 points below expected. Close games going the wrong way. | ||
| 2 | ![]() Le Havre Ligue 1 · 2 pts | 18 | 18 | 0W 2D 3L | -16 | ↓ Unlucky 4.2 points below expected. Close games going the wrong way. | ||
| — Neutral | ||||||||
| 3 | EST Estac Troyes Ligue 1 · 4 pts | 16 | 15▲1 | 1W 1D 3L | -13 | — Neutral 0.9 points below expected. Close games going the wrong way. | ||
| 4 | ![]() Toulouse Ligue 1 · 5 pts | 12 | 11▲1 | 1W 2D 2L | -12 | — Neutral Scored 4 fewer than xG (7 from 10.95 xG). 3.5 pts below expected. | ||
| 5 | ![]() Stade Brestois 29 Ligue 1 · 5 pts | 11 | 12▼1 | 1W 2D 2L | -11 | — Neutral 3.6 points below expected. Close games going the wrong way. | ||
| 6 | ![]() Auxerre Ligue 1 · 6 pts | 10 | 9▲1 | 2W 0D 3L | -7 | — Neutral 0.0 points above expected. | ||
| 7 | ![]() Marseille Ligue 1 · 3 pts | 17 | 17 | 1W 0D 4L | -5 | — Neutral 3.3 points below expected. Close games going the wrong way. | ||
| 8 | ![]() Nice Ligue 1 · 5 pts | 14 | 14 | 1W 2D 2L | -4 | — Neutral 0.2 points below expected. Close games going the wrong way. | ||
| 9 | ![]() Paris FC Ligue 1 · 11 pts | 2 | 2 | 3W 2D 0L | -1 | — Neutral 0.9 points above expected. | ||
| 10 | PAR Paris Saint Germain Ligue 1 · 8 pts | 6 | 6 | 2W 2D 1L | +1 | — Neutral 0.5 points below expected. Close games going the wrong way. | ||
| 11 | LE Le Mans Ligue 1 · 6 pts | 9 | 10▼1 | 1W 3D 1L | +1 | — Neutral 0.4 points below expected. Close games going the wrong way. | ||
| 12 | ![]() Lyon Ligue 1 · 11 pts | 3 | 3 | 3W 2D 0L | +5 | — Neutral 2.3 points above expected. | ||
| 13 | ![]() Angers Ligue 1 · 7 pts | 7 | 7 | 2W 1D 2L | +6 | — Neutral 0.5 points below expected. Close games going the wrong way. | ||
| 14 | ![]() Strasbourg Ligue 1 · 7 pts | 8 | 8 | 2W 1D 2L | +6 | — Neutral Scored 4 more than xG. Clinical finishing earning 2.6 extra pts. | ||
| 15 | ![]() Lorient Ligue 1 · 5 pts | 13 | 16▼3 | 1W 2D 2L | +8 | — Neutral 1.2 points below expected. Close games going the wrong way. | ||
| ↑ Lucky | ||||||||
| 16 | ![]() Rennes Ligue 1 · 10 pts | 5 | 4▲1 | 3W 1D 1L | +18 | ↑ Lucky 4.4 points above expected. | ||
| 17 | ![]() Monaco Ligue 1 · 13 pts | 1 | 1 | 4W 1D 0L | +20 | ↑ Lucky 6.0 points above expected. | ||
| 18 | ![]() Lille Ligue 1 · 10 pts | 4 | 5▼1 | 3W 1D 1L | +23 | ↑ Lucky 3.7 points above expected. | ||
How each team's CLS has changed throughout the season
Above zero = lucky. Below zero = unlucky. Scale: -100 (cursed) to +100 (blessed).
The CLS combines several signals. Pick one to see which Ligue 1 teams are getting robbed (or blessed) on that signal individually.
Actual points vs what xG simulations say they deserve
Le Havre-7.8
Stade Brestois 29-6.8
Toulouse-6.3
Marseille-6.2
Lens-5.8
Monaco+11.5
Rennes+8.5
Lille+7.1
Strasbourg+4.6
Lyon+4.5