Ligue 1 2022-2023 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 | Clermont | 38 | 59 | 39.9 | +19.1Outperforming ++ | 16 | +6.8 | +12.3 | 2:3 vs PSG (+2.5) | 1:3 vs Brest (-1.6) |
2 | Lens | 38 | 84 | 66.5 | +17.4Outperforming ++ | 3 | +15.5 | +2.0 | 1:4 vs Monaco (+2.1) | 0:1 vs Nice (-1.9) |
3 | Lorient | 38 | 55 | 42.4 | +12.6Outperforming ++ | 15 | +6.2 | +6.4 | 1:3 vs PSG (+2.7) | 0:2 vs Montpellier (-1.8) |
4 | Montpellier | 38 | 50 | 43.9 | +6.1Outperforming ++ | 13 | -1.7 | +7.8 | 0:4 vs Monaco (+2.3) | 1:2 vs Auxerre (-1.7) |
5 | Rennes | 38 | 68 | 63.9 | +4.1Outperforming | 7 | +9.4 | -5.4 | 0:2 vs PSG (+2.3) | 0:1 vs Lorient (-2.1) |
6 | Marseille | 38 | 73 | 69.4 | +3.6Outperforming | 2 | -4.4 | +8.0 | 2:3 vs Monaco (+1.8) | 1:2 vs Brest (-2.4) |
7 | Nice | 38 | 58 | 54.4 | +3.6Outperforming | 8 | -2.7 | +6.3 | 1:3 vs Marseille (+2.2) | 0:1 vs Angers (-2.0) |
8 | Lille | 38 | 67 | 65.8 | +1.1On expectation | 5 | +7.2 | -6.0 | 1:3 vs Rennes (+1.8) | 1:0 vs Angers (-2.3) |
9 | Brest | 38 | 44 | 42.9 | +1.1On expectation | 14 | +1.1 | +0.0 | 1:2 vs Marseille (+2.5) | 0:7 vs Montpellier (-1.8) |
10 | Toulouse | 38 | 48 | 48.3 | -0.3On expectation | 11 | -3.2 | +2.9 | 1:2 vs Monaco (+2.4) | 0:1 vs Clermont (-2.0) |
11 | Reims | 38 | 51 | 51.3 | -0.3On expectation | 9 | +0.9 | -1.2 | 0:1 vs Monaco (+2.0) | 1:3 vs Montpellier (-1.8) |
12 | Monaco | 38 | 65 | 66.2 | -1.2On expectation | 4 | -6.9 | +5.7 | 1:2 vs Strasbourg (+1.8) | 2:4 vs Troyes (-2.4) |
13 | PSG | 38 | 85 | 86.9 | -1.9On expectation | 1 | -5.1 | +3.2 | 0:3 vs Marseille (+1.5) | 1:3 vs Lorient (-2.5) |
14 | Lyon | 38 | 62 | 64.5 | -2.5Underperforming | 6 | -0.8 | -1.6 | 0:1 vs PSG (+2.4) | 0:1 vs Clermont (-2.0) |
15 | Auxerre | 38 | 35 | 38.1 | -3.1Underperforming | 17 | -0.1 | -3.0 | 2:1 vs Lyon (+2.1) | 0:2 vs Montpellier (-1.5) |
16 | Nantes | 38 | 36 | 45.4 | -9.4Underperforming −− | 12 | -3.2 | -6.2 | 0:3 vs Montpellier (+1.8) | 0:3 vs Montpellier (-1.6) |
17 | Strasbourg | 38 | 40 | 49.9 | -9.9Underperforming −− | 10 | -6.6 | -3.3 | 1:2 vs Lyon (+2.2) | 2:3 vs Troyes (-1.8) |
18 | Troyes | 38 | 24 | 34.1 | -10.1Underperforming −− | 20 | -5.9 | -4.2 | 2:4 vs Monaco (+2.5) | 0:2 vs Clermont (-1.3) |
19 | AC Ajaccio | 38 | 26 | 36.7 | -10.7Underperforming −− | 18 | -6.5 | -4.2 | 1:0 vs Marseille (+2.4) | 0:1 vs Lorient (-1.5) |
20 | Angers | 38 | 18 | 35.5 | -17.6Underperforming −− | 19 | -9.2 | -8.3 | 1:0 vs Lille (+2.4) | 1:2 vs AC Ajaccio (-1.5) |
