Fixture360 only lists fixtures from a curated set of leagues, chosen specifically to keep our prediction model accurate.
RB Leipzig and Bayer Leverkusen share the spoils in a 2-2 draw.
📝 Match Report
How It Unfolded
The points were shared at Red Bull Arena, Regular Season - 19, as RB Leipzig and Bayer Leverkusen drew 2-2 in the Bundesliga. 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 RB Leipzig 1.58 xG and Bayer Leverkusen 1.92 xG, a combined 3.50. The scoreboard read 2-2 for 4 actual goals. Both sides finished within a goal of their individual projections, so the scoreline sat close to the model's expected shape. Those figures were built on strength ratings of RB Leipzig attack 1.09 / defence 1.00 against Bayer Leverkusen attack 1.32 / defence 0.81, drawn from 52/52 games (CurrentSeason).
On the result, the model split it RB Leipzig 32% | Draw 22% | Bayer Leverkusen 46%, with Bayer Leverkusen to win its most likely call at 46%. Instead the game produced a draw, an outcome the model had rated at just 22% — a clear break from expectation and a genuine upset by the numbers.
Goals & Markets
The model rated Over 2.5 goals at 68%. The game delivered 4, so it went over — the model's lean was correct. Over 1.5 had been 87% and landed. Over 3.5 was 46% and came in. On both teams to score, the model sat at 68% and the match saw both sides score — another call in the model's favour. Historically the two sides average 69% Over 2.5 across their same-competition games (RB Leipzig 65%, Bayer Leverkusen 73%), a base rate that agreed with today's over. Their combined BTTS history runs at 62%, which matched the both-scored outcome.
Trading Patterns vs Reality
RB Leipzig's trading profile (52 games, 25 home) set some clear expectations: BTTS lands in 62% of their matches — today it did; they keep a clean sheet 35% of the time, and conceded here.
Bayer Leverkusen's trading profile (52 games, 25 away) set some clear expectations: BTTS lands in 64% of their matches — today it did; they keep a clean sheet 36% of the time, and conceded here.
Form vs Result
On form, Bayer Leverkusen arrived the stronger side — 2.52 PPG against 1.85. The form guide was only half-right: the stronger side did not lose, but could not convert the edge into a win. RB Leipzig (home/away splits) shipped 2 against a 0.84 concession average — a leakier day than usual. Bayer Leverkusen (home/away splits) shipped 2 against a 0.92 concession average — a leakier day than usual.
Verdict
Grading the result against the stored data, 2 of 4 pre-match signals came in: result (miss), Over 2.5 (hit), BTTS (hit), form (miss). 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.