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 Dunkerque 0-1.
📝 Match Report
How It Unfolded
Grenoble beat Dunkerque 0-1 at Stade Marcel Tribut, Regular Season - 33, in the Ligue 2. That is the final score; the rest of this report grades it against what the data forecast beforehand.
The Model vs The Result
The Poisson model went into this projecting Dunkerque 1.25 xG and Grenoble 1.03 xG, a combined 2.28. The scoreboard read 0-1 for 1 actual goal. Dunkerque fell 1.2 short of their projected output. Those figures were built on strength ratings of Dunkerque attack 0.89 / defence 0.97 against Grenoble attack 0.87 / defence 1.15, drawn from 66/66 games (CurrentSeason).
On the result, the model split it Dunkerque 39% | Draw 33% | Grenoble 28%, with Dunkerque to win its most likely call at 39%. The actual Grenoble win had been the model's second-ranked read at 28%, so the result diverged from the top call without being a shock.
Goals & Markets
The model rated Over 2.5 goals at 40%. The game delivered 1, so it stayed under — the model's lean was correct. Over 1.5 had been 69% and missed. On both teams to score, the model sat at 48% and the match did not — another call in the model's favour. Historically the two sides average 46% Over 2.5 across their same-competition games (Dunkerque 44%, Grenoble 48%), a base rate that agreed with today's under. Their combined BTTS history runs at 54%, which did not match the one-sided outcome.
Trading Patterns vs Reality
Dunkerque's trading profile (66 games, 33 home) set some clear expectations: BTTS lands in 53% of their matches — today it did not.
Grenoble's trading profile (66 games, 33 away) set some clear expectations: BTTS lands in 54% of their matches — today it did not.
Form vs Result
The form lines were close — Dunkerque 1.55 PPG, Grenoble 1.20 PPG — offering no strong steer, and the Grenoble win broke the near-deadlock. Dunkerque (home/away splits) managed 0 against a 1.61 scoring average — below par going forward. Grenoble (home/away splits) conceded 0 against a 1.58 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). A mixed scorecard — the data caught the broad shape of the game but not every market.
💡 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.