Mainz 05 vs Bayer Leverkusen Prediction & AI Analysis
How It Finished
Final score: Mainz 05 3–4 Bayer Leverkusen in the Bundesliga. The pre-match distribution on this page has not been edited; it is reproduced below against the result.
- Final score — Mainz 05 3–4 Bayer Leverkusen
- Model's leading outcome before kickoff — Bayer Leverkusen win, roughly 43%
- Mainz 05 win — the simulation gives roughly 34%
- Draw — the simulation gives roughly 23%
- Bayer Leverkusen win — the simulation gives roughly 43%
- Verdict — hit: the leading outcome matched the result
Pre-match, the simulation leaned Bayer Leverkusen win at about 43%. Final score 3–4: that lean was right.
Reading the Split
The model leans towards Bayer Leverkusen win at 43%, 9 points ahead of Mainz 05 win at 34%. There is a direction here, but not a wide one.
Across the 320 match pages published on this site, the median favourite carries 51%. This one's 43% sits below it — harder to separate than the fixture we typically publish.
The simulated goal averages are Mainz 05 1.69 and Bayer Leverkusen 1.92, 3.61 between them, with the scoring expectation tilted towards Bayer Leverkusen. That total is above the 3.29 median across our published pages.
One thing 43% is not: a statement that this will happen. The remaining 57% belongs to the same distribution and describes matches that get played too. A 43% call that came in every single time would mean the number had been written wrong, not that the model is strong.
Where the Result Landed in the Distribution
The outcome that landed was Bayer Leverkusen win — the top line of the pre-match distribution, at 43%. Landing does not make that 43% anything close to a certainty: the other 57% described matches that were just as available from the same three numbers.
On goals: the simulation totalled 3.61 across the two sides, and the match produced 7.
Mainz 05 and Bayer Leverkusen on Earlier Pages
Mainz 05 or Bayer Leverkusen has appeared on 4 earlier pages of ours. Each is linked below with the probability split we published at the time and, where the fixture has settled, what the match actually produced.
- 2026-09-20 — Bayer Leverkusen vs RB Leipzig · Bayer Leverkusen 51% / Draw 22% / RB Leipzig 27% · finished 2–0, graded a hit
- 2026-09-19 — Borussia Mönchengladbach vs Mainz 05 · Borussia Mönchengladbach 37% / Draw 22% / Mainz 05 41% · finished 3–4, graded a hit
- 2026-09-16 — Bayer Leverkusen vs Celje · Bayer Leverkusen 80% / Draw 12% / Celje 8% · finished 2–0, graded a hit
- 2026-09-12 — Mainz 05 vs Eintracht Frankfurt · Mainz 05 46% / Draw 22% / Eintracht Frankfurt 32% · finished 1–3, graded a miss
Our Published Bundesliga Pages
Our Bundesliga coverage stands at 42 published pages, of which 36 now carry a result: 22 hit, 14 miss, 0 void. The miss column is printed at the same size as the hit column, and nothing has been filtered out of it. Every page is listed at Predictions.
Reading a Result Honestly
Probabilities are graded in bulk, never one at a time. The useful question after a match is not "was it right" but "does the whole run of calls land where the probabilities said it would" — a run that lands about as often as those numbers implied is a calibrated model, and a run that never misses at all mostly means the numbers were written too timidly. Either way, a single row is a data point, not a verdict.
The Pre-Match Timestamp
Observation timestamp 2026-09-30 02:35 UTC, kickoff 2026-10-10 13:30 UTC. The prediction was published before kickoff and the timestamp is verifiable; the comparison above compares two fixed things, not one fixed thing and one memory.
The Full Ledger
Every live signal from this system goes out on Telegram via @Oddsflowteam_bot with a timestamp attached, and every one is settled afterwards. The weekly ledger on this site is the complete table — wins, losses, halves and voids, all in one place.
Verify This Page Yourself
Both ends of this page are now fixed: the file was written 1 day 15 hours before kickoff (generated 2026-10-08 22:10 UTC, kickoff 2026-10-10 13:30 UTC), and the result was appended only afterwards. An unedited copy of the pre-match numbers sits in the public mirror as record/data/mainz-05-vs-bayer-leverkusen-1575181.json — browse the public record. The commit history is the more interesting half of that repository: it shows when each number was written down, which is the one part of a record that cannot be reconstructed later. The grading rules behind the verdict above are set out in How We Count Our Record.
These pages publish model probabilities for analysis only — they are not advice of any kind. Football outcomes are uncertain by definition; never make a decision on a prediction that you could not afford to get wrong.