Fixture360 only lists fixtures from a curated set of leagues, chosen specifically to keep our prediction model accurate.
Shock result as Bayer Leverkusen defy the odds to beat Borussia Dortmund 0-1.
📝 Match Report
How It Unfolded
Bayer Leverkusen beat Borussia Dortmund 0-1 at Signal Iduna Park, Regular Season - 29, in the Bundesliga. 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 Borussia Dortmund 2.27 xG and Bayer Leverkusen 1.41 xG, a combined 3.68. The scoreboard read 0-1 for 1 actual goal. Borussia Dortmund fell 2.3 short of their projected output. Those figures were built on strength ratings of Borussia Dortmund attack 1.33 / defence 0.88 against Bayer Leverkusen attack 1.10 / defence 0.99, drawn from 62/62 games (CurrentSeason).
On the result, the model split it Borussia Dortmund 57% | Draw 20% | Bayer Leverkusen 23%, with Borussia Dortmund to win its most likely call at 57%. Instead the game produced a Bayer Leverkusen 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 71%. The game delivered 1, so it stayed under — against the model's lean. Over 1.5 had been 88% and missed. Over 3.5 was 50% and did not. On both teams to score, the model sat at 68% and the match did not — a miss on BTTS. Historically the two sides average 62% Over 2.5 across their same-competition games (Borussia Dortmund 64%, Bayer Leverkusen 60%), a base rate that pointed the other way from today's under. Their combined BTTS history runs at 64%, which did not match the one-sided outcome.
Trading Patterns vs Reality
Borussia Dortmund's trading profile (62 games, 31 home) set some clear expectations: BTTS lands in 61% of their matches — today it did not; they keep a clean sheet 32% of the time, and conceded here.
Bayer Leverkusen's trading profile (62 games, 31 away) set some clear expectations: BTTS lands in 66% of their matches — today it did not.
Form vs Result
The form lines were close — Borussia Dortmund 1.95 PPG, Bayer Leverkusen 1.90 PPG — offering no strong steer, and the Bayer Leverkusen win broke the near-deadlock. Borussia Dortmund (home/away splits) managed 0 against a 2.48 scoring average — below par going forward. Bayer Leverkusen (home/away splits) managed 1 against a 2.00 scoring average — below par going forward and conceded 0 against a 1.45 average — tighter than their form line.
Verdict
Grading the result against the stored data, 0 of 3 pre-match signals came in: result (miss), Over 2.5 (miss), BTTS (miss). This one broke away from the data — most of the pre-match signals were overturned by how the ninety minutes actually played out.
💡 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.