Ligue 1 is two competitions in one: PSG's title odds are usually the shortest in Europe, while the fight behind them — Champions League spots, Europe, and a brutal relegation zone — is among the most volatile. A model helps most exactly where headlines help least: our Elo ratings track every club's true level game by game, the Poisson engine turns those levels into scoreline distributions, and 10,000 season simulations convert them into probabilities for every finishing position that matters.
| Pos | Team | Pld | Pts | Proj Pts | Title % | Top 4 % | Europe % | Releg. % |
|---|---|---|---|---|---|---|---|---|
| 2.4 | Lille OSC | 2 | 4 | 74 | 35.8% | 89.2% | 99.8% | 0% |
| 2.67 | Olympique de Marseille | 1 | 3 | 72 | 28.2% | 85.7% | 99.7% | 0% |
| 3.14 | AS Monaco FC | 1 | 3 | 70 | 18.4% | 78.0% | 99.2% | 0% |
| 4.05 | Paris Saint-Germain FC | 2 | 2 | 66 | 7.9% | 56.8% | 97.1% | 0% |
| 4.23 | Olympique Lyonnais | 2 | 4 | 66 | 6.2% | 51.8% | 96.5% | 0% |
| 4.78 | Racing Club de Lens | 2 | 3 | 63 | 3.5% | 37.9% | 92.4% | 0% |
| 9.68 | Stade Rennais FC 1901 | 1 | 1 | 44 | 0% | 0.1% | 3.5% | 1.4% |
| 9.69 | FC Lorient | 2 | 1 | 44 | 0% | 0.2% | 3.4% | 1.1% |
| 10.28 | Stade Brestois 29 | 2 | 2 | 42 | 0% | 0.1% | 2.0% | 2.1% |
| 10.4 | OGC Nice | 1 | 1 | 42 | 0% | 0.1% | 1.8% | 2.1% |
| 10.41 | ES Troyes AC | 2 | 4 | 42 | 0% | 0.1% | 1.7% | 2.1% |
| 10.57 | Le Mans FC | 1 | 1 | 42 | 0% | 0.1% | 1.6% | 2.5% |
| 10.67 | Paris FC | 1 | 1 | 41 | 0% | 0.1% | 1.6% | 2.9% |
| 14.83 | Le Havre AC | 2 | 1 | 30 | 0% | 0% | <0.1% | 40.8% |
| 15.36 | Angers SCO | 2 | 3 | 28 | 0% | 0% | 0% | 51.4% |
| 15.56 | Toulouse FC | 2 | 1 | 27 | 0% | 0% | <0.1% | 55.9% |
| 16.03 | AJ Auxerre | 2 | 0 | 26 | 0% | 0% | 0% | 66.6% |
| 16.24 | RC Strasbourg Alsace | 2 | 3 | 25 | 0% | 0% | 0% | 71.2% |
The frozen projection from before matchday 1 — kept unchanged all season so you can judge how the model's pre-season read held up.
| Pos | Team | Pld | Pts | Proj Pts | Title % | Top 4 % | Europe % | Releg. % |
|---|---|---|---|---|---|---|---|---|
| 1.1 | Paris Saint-Germain FC | 2 | 2 | 78 | 91.5% | 99.9% | >99.9% | 0% |
| 2.91 | Lille OSC | 2 | 4 | 63 | 5.5% | 88.8% | 96.4% | 0% |
| 3.59 | AS Monaco FC | 1 | 3 | 60 | 2.5% | 78.3% | 91.9% | 0.1% |
| 5.63 | Olympique de Marseille | 1 | 3 | 54 | 0.4% | 44.0% | 70.5% | 0.7% |
| 7.46 | RC Strasbourg Alsace | 2 | 3 | 49 | 0.1% | 22.2% | 46.7% | 2.9% |
| 8.52 | FC Lorient | 2 | 1 | 47 | 0.1% | 14.5% | 35.7% | 5.3% |
| 8.85 | Toulouse FC | 2 | 1 | 46 | 0.1% | 12.9% | 32.4% | 6.2% |
| 9.03 | Racing Club de Lens | 2 | 3 | 46 | <0.1% | 11.5% | 30.6% | 6.8% |
| 9.52 | Stade Rennais FC 1901 | 1 | 1 | 45 | <0.1% | 9.6% | 26.0% | 8.7% |
| 11.6 | Paris FC | 1 | 1 | 41 | 0% | 3.4% | 12.6% | 20.1% |
| 11.9 | AJ Auxerre | 2 | 0 | 41 | <0.1% | 2.9% | 10.5% | 22.2% |
| 12.09 | Olympique Lyonnais | 2 | 4 | 40 | 0% | 2.8% | 9.7% | 23.6% |
| 12.28 | ES Troyes AC | 2 | 4 | 40 | 0% | 2.3% | 8.8% | 25.0% |
| 12.3 | Le Mans FC | 1 | 1 | 40 | 0% | 2.5% | 9.0% | 25.6% |
| 12.68 | OGC Nice | 1 | 1 | 39 | 0% | 1.9% | 7.5% | 29.2% |
| 13.09 | Stade Brestois 29 | 2 | 2 | 39 | 0% | 1.3% | 5.8% | 32.6% |
| 13.98 | Le Havre AC | 2 | 1 | 37 | 0% | 0.7% | 3.5% | 42.5% |
| 14.48 | Angers SCO | 2 | 3 | 36 | 0% | 0.6% | 2.6% | 48.8% |
Every club's current Elo — the same rating our model reads at predict time; higher = stronger, and it moves only with results.
| Rank | Club | Elo | Trend |
|---|---|---|---|
| 1 | Paris SG | 1834 | 53 |
| 2 | Paris Saint-Germain FC | 1830 | 34 |
| 3 | Lens | 1715 | 33 |
| 4 | Lille OSC | 1712 | 13 |
| 5 | AS Monaco FC | 1687 | 17 |
| 6 | Olympique de Marseille | 1650 | 11 |
| 7 | Lyon | 1617 | 26 |
| 8 | Rennes | 1611 | 3 |
| 9 | RC Strasbourg Alsace | 1598 | 10 |
| 10 | Brest | 1588 | 55 |
| 11 | FC Lorient | 1574 | 5 |
| 12 | Stade Rennais FC 1901 | 1568 | 22 |
| 13 | Racing Club de Lens | 1558 | 40 |
| 14 | Paris FC | 1553 | 26 |
| 15 | Toulouse FC | 1552 | 39 |
| 16 | Sochaux | 1547 | 64 |
| 17 | Olympique Lyonnais | 1525 | 51 |
| 18 | FC Nantes | 1516 | 8 |
| 19 | AJ Auxerre | 1512 | 39 |
| 20 | OGC Nice | 1504 | 8 |
| 21 | Gueugnon | 1492 | 61 |
| 22 | Stade Brestois 29 | 1480 | 31 |
| 23 | Le Havre AC | 1478 | 9 |
| 24 | Clermont | 1472 | 22 |
| 25 | Ajaccio GFCO | 1463 | 19 |
| 26 | Angers SCO | 1459 | 21 |
| 27 | Bastia | 1457 | 7 |
| 28 | Clermont Foot | 1457 | 21 |
| 29 | Amiens | 1456 | 10 |
| 30 | Sedan | 1455 | 15 |
| 31 | Istres | 1453 | 14 |
| 32 | St Etienne | 1451 | 22 |
| 33 | Angers | 1450 | 39 |
| 34 | Nimes | 1448 | 19 |
| 35 | Le Mans | 1442 | 21 |
| 36 | Martigues | 1440 | 73 |
| 37 | Chateauroux | 1438 | 8 |
| 38 | Boulogne | 1438 | 8 |
| 39 | Nancy | 1436 | 11 |
| 40 | Saint-Etienne | 1435 | 1 |
| 41 | Reims | 1435 | 38 |
| 42 | Metz | 1434 | 8 |
| 43 | Caen | 1432 | 42 |
| 44 | Evian Thonon Gaillard | 1430 | 61 |
| 45 | Guingamp | 1430 | 23 |
| 46 | Bordeaux | 1429 | 27 |
| 47 | Cannes | 1419 | 52 |
| 48 | Valenciennes | 1419 | 67 |
| 49 | Grenoble | 1412 | 36 |
| 50 | Arles | 1405 | 11 |
| 51 | Ajaccio | 1364 | 20 |
| 52 | Dijon | 1356 | 11 |
| 53 | FC Metz | 1356 | 1 |
| 54 | Troyes | 1354 | 6 |
| 55 | Montpellier | 1323 | 18 |
55 clubs
The last completed season, for context while the new campaign is thin on games.
| Pos | Team | Pld | Pts | GD |
|---|---|---|---|---|
| 1 | Paris Saint-Germain FC | 12 | 25 | +15 |
| 2 | Lille OSC | 11 | 24 | +7 |
| 3 | Stade Rennais FC 1901 | 11 | 22 | +9 |
| 4 | RC Strasbourg Alsace | 12 | 22 | +4 |
| 5 | AS Monaco FC | 10 | 20 | +7 |
| 6 | Paris FC | 10 | 18 | +7 |
| 7 | Olympique de Marseille | 10 | 16 | -2 |
| 8 | Racing Club de Lens | 11 | 15 | +5 |
| 9 | AJ Auxerre | 10 | 15 | +3 |
| 10 | Toulouse FC | 10 | 15 | 0 |
| 11 | FC Lorient | 10 | 13 | +3 |
| 12 | Stade Brestois 29 | 12 | 12 | -7 |
| 13 | Olympique Lyonnais | 10 | 11 | -5 |
| 14 | FC Nantes | 10 | 8 | -3 |
| 15 | OGC Nice | 11 | 8 | -10 |
| 16 | Le Havre AC | 10 | 7 | -5 |
| 17 | Angers SCO | 10 | 6 | -13 |
| 18 | Paris FC | 2 | 4 | +3 |
| 19 | Olympique Lyonnais | 2 | 4 | +2 |
| 20 | Lille OSC | 1 | 3 | +4 |
| 21 | Olympique de Marseille | 2 | 3 | +1 |
| 22 | Racing Club de Lens | 1 | 3 | +1 |
| 23 | Stade Rennais FC 1901 | 1 | 3 | +1 |
| 24 | AS Monaco FC | 2 | 3 | -2 |
| 25 | FC Metz | 10 | 3 | -15 |
| 26 | Le Havre AC | 2 | 2 | 0 |
| 27 | AJ Auxerre | 2 | 2 | 0 |
| 28 | FC Nantes | 2 | 2 | 0 |
| 29 | OGC Nice | 1 | 1 | 0 |
| 30 | Angers SCO | 2 | 1 | -1 |
| 31 | FC Metz | 2 | 1 | -2 |
| 32 | FC Lorient | 2 | 1 | -2 |
| 33 | Toulouse FC | 2 | 0 | -5 |
Every club carries an Elo rating that moves only with results — beat a stronger side and it rises, drop points to a weaker one and it falls. A Poisson goal model (the same engine behind our football totals and handicap predictions, with a shots-on-target-based xG proxy) turns the two teams' ratings into a full scoreline distribution for each remaining fixture.
We then play out the rest of the season 10,000 times, drawing a result for every fixture from those distributions and re-building the table each time. The percentages above are simple counts across those simulated seasons: how often a club finished first, in the top four, in a European spot, or in the relegation places.
The model only knows results and shot data — it cannot see transfers, injuries, managerial changes or squad depth until they show up in performances, so early-season projections lean heavily on last season's level. Probabilities are estimates, not promises: a 5% relegation chance still happens one season in twenty. We publish the projections in full; the value bets our model finds on individual matches are part of the paid plans and are never shown here.
14 settled value bets on Ligue 1 matches so far.
Every club carries a results-driven Elo rating; a Poisson goal model turns both teams' ratings into a scoreline distribution for each remaining fixture. We play out the rest of the season 10,000 times and count how often each club wins the title, finishes in Europe, or gets relegated.
The pre-season projection is frozen shortly before matchday 1 and kept unchanged all season as a reference point. The live projection re-simulates nightly as results come in.
No — the model only knows results and shot data. Squad depth, managerial changes and injuries only show up once they show up in results, so early-season projections lean heavily on last season's level.
Yes — the same Elo and Poisson engine also powers our value bets on individual matches. This table projection is entirely free; the value bets on individual matches are part of the paid plans.