Fixture360 only lists fixtures from a curated set of leagues, chosen specifically to keep our prediction model accurate.
Shock result as Grasshoppers defy the odds to beat FC Lugano 1-0.
📝 Match Report
How It Unfolded
Grasshoppers beat FC Lugano 1-0 at Letzigrund Stadion, Regular Season - 27, in the Super League. With the result on the board, the sections below measure it against everything the model and the numbers projected in advance.
The Model vs The Result
The Poisson model went into this projecting Grasshoppers 1.02 xG and FC Lugano 1.44 xG, a combined 2.45. The scoreboard read 1-0 for 1 actual goal. FC Lugano landed 1.4 under their projected return. Those figures were built on strength ratings of Grasshoppers attack 0.77 / defence 1.02 against FC Lugano attack 0.92 / defence 0.76, drawn from 59/59 games (CurrentSeason).
On the result, the model split it Grasshoppers 23% | Draw 33% | FC Lugano 43%, with FC Lugano to win its most likely call at 43%. Instead the game produced a Grasshoppers win, an outcome the model had rated at just 23% — 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 — a call the model got right. Over 1.5 had been 74% and missed. On both teams to score, the model sat at 52% and the match did not — a miss on BTTS. Historically the two sides average 52% Over 2.5 across their same-competition games (Grasshoppers 52%, FC Lugano 52%), a base rate that pointed the other way from today's under. Their combined BTTS history runs at 62%, which did not match the one-sided outcome.
Trading Patterns vs Reality
Grasshoppers's trading profile (64 games, 32 home) set some clear expectations: BTTS lands in 59% of their matches — today it did not.
FC Lugano's trading profile (64 games, 32 away) set some clear expectations: BTTS lands in 66% of their matches — today it did not.
Form vs Result
On form, FC Lugano arrived the stronger side — 1.56 PPG against 0.97. Form was overturned, with Grasshoppers winning despite arriving in poorer recent shape. Grasshoppers (home/away splits) conceded 0 against a 1.34 average — tighter than their form line. FC Lugano (home/away splits) managed 0 against a 1.22 scoring average — below par going forward.
Verdict
Grading the result against the stored data, 1 of 4 pre-match signals came in: result (miss), Over 2.5 (hit), BTTS (miss), form (miss). The data was on the wrong side of this result more often than not — a reminder that a single match sits well inside the model's variance.
💡 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.