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?
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 306 matches, the model lands within 95.3% 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 gave Le Havre a 43% edge, likely weighting home-side factors, while the market priced PSG as heavy favorites at 67%, information the public-data model did not capture. The 1-4 result and the huge xG gap (0.21 vs 2.89) validated the market, with PSG scoring early (3') and pulling away late.
The model heavily favored PSG (69%) based on their xG edge (1.77 vs 0.8), while the market gave Strasbourg a much higher chance (41% vs 13%), likely pricing in factors a public-data model cannot capture. Despite being out-shot on xG, Strasbourg's goals at minutes 20 and 46 secured a 2-1 win, vindicating the market's more cautious read.
The model favored Angers at 43% likely by weighting home advantage, while the market strongly backed Lens at 62%, possibly pricing in information a public-data model cannot see. Lens's early goal at minute 28 and superior xG (1.26 vs 0.39) delivered the away win, vindicating the market's read.
The model already leaned toward Auxerre at 40%, likely reflecting an xG balance that later favored the visitors (2.66 vs 1.89), whereas the market priced Marseille as heavy favorites at 67%. Auxerre's early and repeated goals, including one just before half-time, produced a 1-3 result that vindicated the model's more cautious view of the home side.
The model rated Strasbourg the clear favourite (57%), likely reflecting recent xG trends, while the market installed Marseille as favourites (43% vs 31%), possibly pricing in information a public-data model cannot see. Strasbourg's first-half goal (40') and superior xG (1.35 vs 0.51) backed the model's read on the day.
The model heavily favored Le Havre (64%) based on their superior xG (2.75 vs 1.7), while the market was far more cautious (39%), likely pricing in information a public-data model cannot see. Despite generating the better chances, Le Havre could only draw 1-1, validating the market's more balanced assessment.
The model strongly favored Monaco (63%) while the market was far more balanced, suggesting it priced in information the public-data model could not capture. Marseille's win aligned with their superior xG (2.0 vs 1.02), and their late 89th-minute goal proved decisive, validating the market's closer read.
The model gave Monaco only a 43% chance while the market priced them at 70%, likely because the model weighs recent xG more heavily and the market may have factored in information a public-data model cannot capture. Monaco's dominant 1.97-0.47 xG advantage and the 28th-minute goal delivered the win, vindicating the market's stronger lean toward the home 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.