Fixture360 only lists fixtures from a curated set of leagues, chosen specifically to keep our prediction model accurate.
Shock result as Grenoble defy the odds to beat Caen 0-1.
📝 Match Report
How It Unfolded
Grenoble beat Caen 0-1 at Stade Michel d'Ornano, Regular Season - 18, in the Ligue 2. The remainder of the report sets that outcome against the pre-match model, the markets and the teams' data profiles.
The Model vs The Result
The Poisson model went into this projecting Caen 1.46 xG and Grenoble 0.99 xG, a combined 2.44. The scoreboard read 0-1 for 1 actual goal. Caen fell 1.5 short of their projected output. Those figures were built on strength ratings of Caen attack 0.92 / defence 1.09 against Grenoble attack 0.86 / defence 1.20, drawn from 55/55 games (CurrentSeason).
On the result, the model split it Caen 47% | Draw 28% | Grenoble 25%, with Caen to win its most likely call at 47%. Instead the game produced a Grenoble win, an outcome the model had rated at just 25% — a clear break from expectation and a genuine upset by the numbers.
Goals & Markets
The model rated Over 2.5 goals at 44%. The game delivered 1, so it stayed under — in line with the projection. Over 1.5 had been 71% and missed. On both teams to score, the model sat at 49% and the match did not — another call in the model's favour. Historically the two sides average 48% Over 2.5 across their same-competition games (Caen 49%, Grenoble 47%), a base rate that agreed with today's under. Their combined BTTS history runs at 46%, which matched the one-sided outcome.
Trading Patterns vs Reality
Caen's trading profile (55 games, 27 home) set some clear expectations: BTTS lands in 47% of their matches — today it did not; they keep a clean sheet 31% of the time, and conceded here; they fail to score in 26% of games, a blank that repeated today.
Grenoble's trading profile (55 games, 27 away) set some clear expectations: BTTS lands in 46% of their matches — today it did not; they keep a clean sheet 31% of the time, and duly kept one.
Form vs Result
The form lines were close — Caen 1.33 PPG, Grenoble 1.31 PPG — offering no strong steer, and the Grenoble win broke the near-deadlock. Caen (home/away splits) managed 0 against a 1.22 scoring average — below par going forward. Grenoble (home/away splits) conceded 0 against a 1.37 average — tighter than their form line.
Verdict
Grading the result against the stored data, 2 of 3 pre-match signals came in: result (miss), Over 2.5 (hit), BTTS (hit). Partial vindication: some calls landed, others slipped.
💡 Key Insights
⚠️ This match report is generated algorithmically from the final score, our prediction model, and each team's historical form and trading data. Analysis is for informational purposes only.