We use privacy-friendly analytics to understand traffic. With your consent we also load Google Analytics. No analytics cookies are set until you accept. See our privacy policy.
What the rolling-strength model forecast before each kickoff — win/draw/loss probability and expected score — graded against what actually happened. Out-of-sample (the model never saw the result). What do these mean?
The model's forecast for the upcoming fixtures — make your own picks before kickoff and see how you stack up.
Model probabilities are this site's own forecast. Picks lock at kickoff and are graded from the final result — no stakes, just bragging rights.
Every call the model made this season, graded against the result — and, more importantly, whether its probabilities held up.
Accuracy is the wrong lens for a three-way outcome: draws are rarely any side's single most-likely result, so ~25% of games are "wrong" by design. What matters is whether a stated 60% really happens ~60% of the time — that's calibration, and it's the number that actually matters.
Over 305 matches, the model lands within 96.8% of the consensus forecast's accuracy. The consensus wins narrowly — as expected, since it aggregates all available information. Source: football-data.co.uk (closing: Pinnacle/Bet365). Analysis only.
The model favored Strasbourg at 51%, likely weighting factors that pointed home, while the market priced Rennais as favorites at 53%, reflecting information a public-data model may not capture. The result confirmed the market's read, as Rennais won 3-0 with a commanding 3.43 xG to 0.73 and goals at minutes 20, 50, and 52.
The model favored Lens at 45% while the market made Lyon strong home favorites at 60%, a gap suggesting the market priced in information beyond recent xG trends. Lens delivered a 4-0 win despite a modest xG edge (1.77 vs 1.58), scoring across both halves and vindicating the model's read.
The market strongly favored PSG (75% vs the model's 47%), likely pricing in information beyond recent public xG data, while the model kept the home and draw outcomes more live at 29% and 24%. Despite PSG's clear xG edge (1.57 vs 0.25) and quick equalizer at minute 51 after Lorient scored at 49, the match ended level, vindicating the model's less lopsided read.
The model favored Brest at 51% while the market saw Marseille as the more likely winner at 51%, likely pricing in information a public-data model cannot capture. Brest's two early goals (10th and 29th minutes) delivered a 2-0 win despite trailing on xG (1.13 vs 1.45), and the model was closer to the outcome.
The model heavily favored Lyon (58%) while the market saw a more even contest with Rennes as slight favorites (40%), likely pricing in information a public-data model cannot capture. The result validated the market's lean, as Rennes won 3-1 backed by a narrow xG edge (2.17 vs 1.84), pulling away with three goals from the 80th minute onward.
The model gave Lyon a near-even chance (37% home vs 35% away), likely leaning on the more balanced overall picture, while the market strongly favoured PSG at 60% away, information a public-data model may not fully capture. PSG's superior xG (1.45 to 0.67) and the 2-3 result, sealed by a 90th-minute goal, showed the market's read was closer.
The model heavily favored Lille at 59% while the market was far more balanced (home 36% / away 34%), likely pricing in information beyond the recent xG the model relied on. The six-goal draw, with scoring spread across both halves (minutes 11 to 75) and closely matched xG (2.02 vs 1.64), validated the market's more even read.
The market gave PSG a far higher win probability (70% vs the model's 47%), likely pricing in information a public-data model cannot fully capture, while the model's tighter spread reflected a more modest xG gap (2.13 vs 1.63). The 3-0 result, with PSG scoring early (29', 39') and again at 90', validated the market's stronger lean toward the away side.
"closer" = the side that gave the actual result the higher probability. Pick badges: H/D/A = home / draw / away. One-line reads are AI-written strictly from each match's data (xG, red cards, goals, score) — no outside news.