xgEdge

Saturday, 19/09/2026 at 18:30

Full time
Match report · Bundesliga

VfB Stuttgart 0:1 Borussia Dortmund

VfB Stuttgart Home 1.15 xG · 12 shots
Borussia Dortmund Away 1.33 xG · 13 shots
01 The chances were evenly matched

VfB Stuttgart were the model's likeliest winner before kick-off at 42%. Borussia Dortmund won 1–0. The biggest difference was VfB Stuttgart's attack: 1.15 xG against 1.76 projected (−0.61).

Goals

  1. 70' Maximilian Beier Borussia Dortmund · 0.29 xG chance 0–1

The model against the result

priced before kick-off
VfB Stuttgart
42%
Draw
27%
Borussia Dortmund
32% What happened

Data coverage Both teams have the full 20-match model window available.

Projected vs produced

Expected goals
VfB Stuttgart The model projected 1.76 Produced 1.15 Difference -0.61
Borussia Dortmund The model projected 1.53 Produced 1.33 Difference -0.20

VfB Stuttgart produced 0.61 xG less than projected

Projected before kick-off Produced on the night

The shots behind it

VfB Stuttgart Borussia Dortmund
Shots
12
13
On target
5
2
Inside the box
8
10
xG per shot
0.07
0.10
Open play xG
0.79
0.80
Set-piece xG
0.09
0.53
Penalties
—
—
Shot-level xG may differ from the published match total

The provider publishes the match total separately from its shot-by-shot values. Those values are rounded to two decimals and, leaving out penalties and own goals, add up to its non-penalty xG: 0.87 for VfB Stuttgart.

Shot map

Both teams shown attacking the same goal for comparison.

Borussia Dortmund · Maximilian Beier · 70' · Goal · 5 m · 0.29 xG Borussia Dortmund · Maximilian Beier · 4' · No goal · 6 m · 0.25 xG Borussia Dortmund · Felix Nmecha · 40' · No goal · 14 m · 0.15 xG Borussia Dortmund · Konstantinos Karetsas · 73' · No goal · 15 m · 0.15 xG VfB Stuttgart · Grischa Prömel · 75' · No goal · 8 m · 0.14 xG VfB Stuttgart · Leo Sauer · 90' · No goal · 8 m · 0.14 xG Borussia Dortmund · Nico Schlotterbeck · 18' · No goal · 7 m · 0.13 xG VfB Stuttgart · Dženan Pejčinović · 90' · No goal · 14 m · 0.12 xG VfB Stuttgart · Deniz Undav · 31' · No goal · 6 m · 0.11 xG VfB Stuttgart · Bilal El Khannouss · 34' · No goal · 6 m · 0.10 xG Borussia Dortmund · Serhou Guirassy · 27' · No goal · 7 m · 0.09 xG Borussia Dortmund · Maximilian Beier · 63' · No goal · 13 m · 0.09 xG Borussia Dortmund · Joey Veerman · 29' · No goal · 22 m · 0.07 xG VfB Stuttgart · Bilal El Khannouss · 72' · No goal · 5 m · 0.07 xG VfB Stuttgart · Bilal El Khannouss · 77' · No goal · 18 m · 0.07 xG VfB Stuttgart · Ermedin Demirović · 16' · No goal · 16 m · 0.05 xG Borussia Dortmund · Konstantinos Karetsas · 70' · No goal · 16 m · 0.03 xG VfB Stuttgart · Josha Vagnoman · 77' · No goal · 9 m · 0.03 xG Borussia Dortmund · Fábio Silva · 81' · No goal · 10 m · 0.03 xG VfB Stuttgart · Maximilian Mittelstädt · 8' · No goal · 22 m · 0.02 xG VfB Stuttgart · Josha Vagnoman · 16' · No goal · 23 m · 0.02 xG Borussia Dortmund · Serhou Guirassy · 62' · No goal · 26 m · 0.02 xG Borussia Dortmund · Serhou Guirassy · 65' · No goal · 12 m · 0.02 xG Borussia Dortmund · Ethan Nwaneri · 22' · No goal · 23 m · 0.01 xG VfB Stuttgart · Maximilian Mittelstädt · 48' · No goal · 21 m · 0.01 xG

All shots

25 shots · 2.21 xG

Hover, focus or tap a shot to read it.

  • VfB Stuttgart
  • Borussia Dortmund
  • Filled = goal
  • Dot area = xG (the smallest chances drawn at a minimum size)

Recent form

Last 6 · xG per match
VfB Stuttgart

2.06 xG created 2.54 xGA

  • D 1.57 created, 2.47 conceded against TSG Hoffenheim
  • W 3.04 created, 0.54 conceded against Bayer 04 Leverkusen
  • D 1.32 created, 2.56 conceded against Eintracht Frankfurt
  • L 0.79 created, 4.06 conceded against FC Bayern München
  • W 3.47 created, 2.86 conceded against 1. FC Köln
  • L 2.16 created, 2.76 conceded against TSG Hoffenheim
Borussia Dortmund

1.75 xG created 1.06 xGA

  • L 0.49 created, 2.20 conceded against Borussia M'gladbach
  • W 1.94 created, 1.12 conceded against Eintracht Frankfurt
  • W 2.74 created, 0.49 conceded against SV Werder Bremen
  • W 1.53 created, 0.91 conceded against Hamburger SV
  • W 2.02 created, 1.17 conceded against TSG Hoffenheim
  • W 1.76 created, 0.49 conceded against SC Paderborn 07

xG created xG conceded (xGA) W / D / L: the match result

Head to head

VfB Stuttgart: 0 won · 1 drawn · 1 lost

Pre-match model & market record

5 opportunities flagged2 won3 lost

  • Won
  • Lost
  • Lost
  • Won
  • Lost
View pre-match record
The outcomes the model flagged on VfB Stuttgart against Borussia Dortmund before kick-off, in the order they ranked, with the price, the edge and what became of each.
Selection Price Edge Result
Borussia Dortmund at most 1 goal 2.00 +6.4% Won
Borussia Dortmund not to score 5.50 +4.0% Lost
VfB Stuttgart to win 2.45 +2.2% Lost
Under 2.5 goals 3.00 +1.7% Won
Draw 3.75 +0.3% Lost

Pre-match model vs market

Outcome Model Market Difference Fair odds
VfB Stuttgart 41.7% 38.7% +3.1 pp 2.40
Draw 26.7% 25.3% +1.5 pp 3.74
Borussia Dortmund 31.5% 36.1% −4.6 pp 3.17

Other markets

Outcome Model Market Difference Fair odds
VfB Stuttgart to score 85.1% 82.8% +2.3 pp 1.17
VfB Stuttgart not to score 14.9% 17.2% −2.3 pp 6.73
Borussia Dortmund to score 81.1% 82.8% −1.7 pp 1.23
Borussia Dortmund not to score 18.9% 17.2% +1.7 pp 5.29
Both teams to score 70.4% 68.7% +1.7 pp 1.42
Both teams not to score 29.6% 31.3% −1.7 pp 3.38
VfB Stuttgart 2+ goals 54.4% 53.7% +0.8 pp 1.84
VfB Stuttgart at most 1 goal 45.6% 46.3% −0.8 pp 2.19
Borussia Dortmund 2+ goals 46.8% 53.7% −6.8 pp 2.14
Borussia Dortmund at most 1 goal 53.2% 46.3% +6.8 pp 1.88
Over 1.5 goals 87.7% 85.4% +2.3 pp 1.14
Under 1.5 goals 12.3% 14.6% −2.3 pp 8.10
Over 2.5 goals 66.1% 68.2% −2.1 pp 1.51
Under 2.5 goals 33.9% 31.8% +2.1 pp 2.95

Prices and probabilities are the ones stored before kick-off; nothing here is recalculated. Edge is the model's probability times the price, minus one, so a flagged outcome that lost is the ordinary case rather than a contradiction.

Model details

Show
Fit window
the last 20 matches, recency weighted (a match 107 days old counts half)
VfB Stuttgart sample
20 matches
Borussia Dortmund sample
20 matches
Computed
9 hours before kick-off
Prices taken
9 hours before kick-off

Limitations

The model reads expected goals and nothing else. It does not know the lineups, who is injured or suspended, what either side has to play for, the weather, or how congested the schedule around this match is.