Ligue 1 2025-2026 Performance vs Market
Expected points (xPTS) come from pre-match market odds: what the market rated each team's chances at before kickoff. A positive Δ means the team is outperforming those expectations — playing better than the market rated them; a negative Δ means they're delivering less than their billing. Big gaps usually say more about the team than about fortune.
| # | Team | P | Pts | xPts | vs xPTS | |||||
|---|---|---|---|---|---|---|---|---|---|---|
1 | Lens | 34 | 70 | 58.1 | +11.9Outperforming ++ | 4 | +9.9 | +2.0 | 0:4 vs Lyon (+2.2) | 2:0 vs Metz (-2.1) |
2 | Rennes | 34 | 59 | 50.2 | +8.8Outperforming ++ | 7 | +5.7 | +3.1 | 3:1 vs PSG (+2.4) | 0:2 vs Lorient (-1.8) |
3 | Lorient | 34 | 45 | 38.7 | +6.3Outperforming ++ | 13 | +7.8 | -1.5 | 1:3 vs Monaco (+2.2) | 2:3 vs Strasbourg (-1.6) |
4 | Lyon | 34 | 60 | 54.6 | +5.4Outperforming ++ | 6 | +6.9 | -1.5 | 1:2 vs PSG (+2.5) | 0:4 vs Lens (-2.0) |
5 | Lille | 34 | 61 | 56.3 | +4.7Outperforming | 5 | -2.1 | +6.8 | 1:2 vs Marseille (+2.0) | 0:2 vs Auxerre (-2.2) |
6 | Angers | 34 | 36 | 31.3 | +4.7Outperforming | 17 | +4.5 | +0.1 | 0:1 vs Toulouse (+2.2) | 2:1 vs Le Havre (-1.2) |
7 | Strasbourg | 34 | 53 | 48.8 | +4.3Outperforming | 8 | +3.2 | +1.1 | 5:4 vs Monaco (+1.9) | 1:2 vs Brest (-1.8) |
8 | Paris FC | 34 | 44 | 42.0 | +2.0On expectation | 11 | +0.6 | +1.3 | 2:1 vs PSG (+2.3) | 1:2 vs Nantes (-2.0) |
9 | Rodez | 1 | 3 | 2.1 | +0.9On expectation | 20 | 0.0 | +1.8 | 2:3 vs Red Star (+1.8) | 2:3 vs Red Star (1.8) |
10 | Le Havre | 34 | 35 | 35.7 | -0.7On expectation | 15 | +2.2 | -2.9 | 2:1 vs Strasbourg (+2.1) | 2:0 vs Nantes (-1.2) |
11 | Brest | 34 | 39 | 40.3 | -1.3On expectation | 12 | +3.6 | -4.8 | 1:2 vs Strasbourg (+2.1) | 1:0 vs Le Havre (-1.4) |
12 | Red Star | 1 | 0 | 1.5 | -1.5On expectation | 21 | -1.5 | 0.0 | 2:3 vs Rodez (+-1.5) | 2:3 vs Rodez (-1.5) |
13 | Toulouse | 34 | 45 | 46.5 | -1.5On expectation | 10 | -1.8 | +0.3 | 2:1 vs Lyon (+2.0) | 0:1 vs Angers (-2.0) |
14 | PSG | 34 | 76 | 78.0 | -2.0Underperforming | 1 | -0.4 | -1.6 | 0:2 vs Lens (+1.4) | 1:2 vs Lyon (-2.3) |
15 | Marseille | 34 | 59 | 61.1 | -2.1Underperforming | 2 | +3.4 | -5.5 | 1:0 vs PSG (+2.0) | 0:2 vs Nantes (-2.4) |
16 | Auxerre | 34 | 34 | 36.9 | -2.9Underperforming | 14 | +0.5 | -3.4 | 0:2 vs Lille (+2.4) | 0:1 vs Le Havre (-1.6) |
17 | St Etienne | 2 | 1 | 4.2 | -3.1Underperforming | 19 | -0.3 | -0.9 | 0:0 vs Nice (+-0.4) | 4:1 vs Nice (-0.9) |
18 | Monaco | 34 | 54 | 58.7 | -4.7Underperforming | 3 | +0.5 | -5.2 | 1:3 vs PSG (+2.4) | 1:3 vs Lorient (-2.0) |
19 | Nantes | 34 | 24 | 32.8 | -8.8Underperforming −− | 16 | -6.6 | -2.2 | 0:2 vs Marseille (+2.6) | 0:2 vs Metz (-1.6) |
20 | Nice | 36 | 36 | 47.1 | -11.1Underperforming −− | 9 | -3.9 | -7.2 | 2:0 vs Lille (+1.9) | 0:1 vs Angers (-1.9) |
21 | Metz | 34 | 17 | 28.7 | -11.7Underperforming −− | 18 | -7.1 | -4.6 | 2:0 vs Lens (+2.3) | 1:3 vs Auxerre (-1.2) |
