⚽ Tomulator
Overview
◈Dashboard📅Today's games◎State of play
Money
💷Bets & strategies
Explore
⊞Leagues & seasons📐Metrics▤Data sources
Engine room
🎲Simulations🧪Lab≣Catalog?How this works

TSG 1899 Hoffenheim 2–1 Borussia Dortmund

← Bundesliga 2025-26 · Sat, Apr 18, 01:30 PM UTC · ref: Daniel Siebert, Germany

The betting picturemarket vs our model, market by market

“Market” = what bookmaker prices imply after removing their margin — the world's best guess. “Model” = what our machine-learning model said BEFORE this game, replayed honestly (it never saw the result). A bet is only interesting when the model sees something meaningfully more likely than the market does (the edge) — it's never about picking the winner.

Who wins? (90 minutes)

OutcomeMarket saysModel saysBest priceVerdict
TSG 1899 Hoffenheim win44%38%2.15fair
Borussia Dortmund win32%36%3.00value: +7%
Draw24%26%3.90fair

across 1 bookmaker · probabilities de-vigged (bookmaker margin removed)

Asian handicap

OutcomeMarket saysBest price
Borussia Dortmund −0.2550%1.93
TSG 1899 Hoffenheim −0.2550%1.93

across 1 bookmaker · probabilities de-vigged (bookmaker margin removed)

Will there be 3 or more goals?

OutcomeMarket saysModel saysBest priceVerdict
Over66%65%1.44fair
Under34%35%2.75fair

across 1 bookmaker · probabilities de-vigged (bookmaker margin removed)

Timeline

31'🟨Wouter Burger · TSG 1899 Hoffenheim
42'⚽ (pen)Andrej Kramarić · TSG 1899 Hoffenheim
77'🟨Alexander Prass · TSG 1899 Hoffenheim
84'🟨Nico Schlotterbeck · Borussia Dortmund
87'⚽Serhou Guirassy · Borussia Dortmund
90'🟨Samuele Inacio · Borussia Dortmund
90'🟨Julian Ryerson · Borussia Dortmund
90'⚽ (pen)Andrej Kramarić · TSG 1899 Hoffenheim

from ESPN event data · goals, cards and shootout kicks

The match in numberswhat happened + what each side looked like walking in

Match stats

1Half-time score0
13Shots8
4On target3
4Corners3
14Fouls11
2Yellow cards3
0Red cards0

Pre-match form

What each side looked like walking in — computed only from games before this one.

MetricTSG 1899 HoffenheimBorussia Dortmund
accuracy ratio (last 10)0.360.37
accuracy ratio (last 3)0.290.33
accuracy ratio (last 5)0.320.34
blown lead rate (last 20)0.050.10
box share (last 5)0.690.79
cards avg (last 5)1.602.00
Everything else we hold on this match · 1 more recorded fact — tap to expand
venuePreZero Arena
coach days
533.00
441.00
comeback rate (last 20)0.050.05
congestion 21d2.002.00
conversion (last 5)0.100.16
corner diff avg (last 5)3.402.00
corners against avg (last 5)3.204.80
corners for avg (last 5)6.606.80
corners volatility (last 10)4.353.77
defensive leak (last 5)0.240.13
dominance (last 5)0.590.57
elo1709.851852.89
elo momentum (last 5)-27.1414.64
eye test v10.200.67
eye trend v1-0.56-0.05
first sub minute (last 10)62.1058.90
form points (last 5)5.0012.00
goal diff avg (last 5)-0.801.00
goals against avg (last 5)2.400.80
goals for avg (last 5)1.601.80
goals volatility (last 10)1.341.05
h2 goals (last 10)0.801.20
h2h win rate (last 5)0.300.70
ht lead rate (last 20)0.450.55
keeper form v10.590.70
league points51.0064.00
league rank6.002.00
matches since blank2.000.00
matches since clean sheet7.001.00
matches since win4.001.00
pass acc avg (last 5)79.8084.80
possession avg (last 5)59.8055.20
rest days7.797.00
scorer concentration0.180.23
season ppg1.762.21
shot diff avg (last 5)4.404.60
shots for avg (last 5)14.8014.40
skill v10.591.42
solidity v1-0.740.76
sot against avg (last 5)5.203.60
sot for avg (last 10)5.604.30
sot for avg (last 3)3.674.00
sot for avg (last 5)4.804.40
squad age25.8127.59
state index0.031.19
sterile dominance v10.630.56
threat rate (last 10)0.260.24
threat rate (last 3)0.210.26
threat rate (last 5)0.240.25
venue ppg (last 5)1.402.00
xg against avg (last 5)1.520.99
xg for avg (last 5)1.402.50