Werder Bremen v Bochum — Prediction, Odds & Stats
Saturday 19 April 2025 · GER-Bundesliga · 2425
Bundesliga
xG Prediction generated
AI prediction
ai-blend-oos No snapshot has been taken for this fixture yet; this is the stored price.Probabilities, not certainties. How they are made: the methodology.
Was this pick made in advance?
-oos is out of sample: it was fitted only on matches
played before this one, so its pick is a genuine forecast rather than hindsight.
Anything without that suffix was fitted on all available data.What the chances say
Werder Bremen are finishing above their chances — 2.7 goals more than expected across 10 matches, which usually cools off. They are also conceding fewer than expected — 3.4 goals saved beyond what the chances suggest.
Bochum are finishing below their chances — 2.5 goals fewer than expected across 10 matches, despite creating the openings.
Finishing swings far more than chance creation, so a gap this size usually narrows. Over ten matches it is suggestive, not settled — a genuinely elite finisher beats expected goals for years.
What the model said
| Model | Home / Draw / Away | Expected goals | Likeliest score | O2.5 | BTTS | Outcome |
|---|---|---|---|---|---|---|
| ai-blend-oos | 1.82–1.15 | 0% | 0% | 0% | Home ✓ |
A model whose name ends -oos was produced by the walk-forward backtest:
it was fitted only on matches played before this one, so the pick is genuinely out of sample.
Reading the xG timeline
Expected goals by minute
Reading the shot map
Shot map
Every shot
| Min | Team | Player | xG | Situation | Body part | Result | Assisted by |
|---|---|---|---|---|---|---|---|
| 4' |
|
Marvin Ducksch | 0.34 | Open Play | Right Foot | Missed Shot | Oliver Burke |
| 7' |
|
Philipp Hofmann | 0.04 | Open Play | Left Foot | Missed Shot | Gerrit Holtmann |
| 8' |
|
Amos Pieper | 0.02 | Set Piece | — | Saved Shot | Marvin Ducksch |
| 10' |
|
Gerrit Holtmann | 0.01 | From Corner | Left Foot | Missed Shot | — |
| 18' |
|
Philipp Hofmann | 0.06 | Open Play | Left Foot | Blocked Shot | Felix Passlack |
| 19' |
|
Marvin Ducksch | 0.08 | Open Play | Right Foot | Missed Shot | Oliver Burke |
| 21' |
|
Maximilian Wittek | 0.02 | Open Play | Left Foot | Blocked Shot | — |
| 22' |
|
Maximilian Wittek | 0.04 | Direct Freekick | Left Foot | Missed Shot | — |
| 27' |
|
Philipp Hofmann | 0.03 | From Corner | — | Blocked Shot | Maximilian Wittek |
| 27' |
|
Philipp Hofmann | 0.10 | From Corner | Left Foot | Saved Shot | — |
| 31' |
|
Marco Friedl | 0.50 | Set Piece | — | Blocked Shot | Marvin Ducksch |
| 31' |
|
Mitchell Weiser | 0.02 | From Corner | — | Missed Shot | Marvin Ducksch |
| 46' |
|
Marvin Ducksch | 0.04 | Direct Freekick | Right Foot | Missed Shot | — |
| 48' |
|
Philipp Hofmann | 0.03 | From Corner | — | Missed Shot | Maximilian Wittek |
| 59' |
|
Gerrit Holtmann | 0.03 | Open Play | Left Foot | Blocked Shot | Ibrahima Sissoko |
| 60' |
|
Philipp Hofmann | 0.05 | Open Play | Left Foot | Blocked Shot | Tom Krauß |
| 69' |
|
Justin Njinmah | 0.43 | Open Play | Right Foot | Saved Shot | — |
| 72' |
|
Marco Grüll | 0.07 | Open Play | Right Foot | Missed Shot | Justin Njinmah |
| 75' |
|
Leonardo Bittencourt | 0.03 | From Corner | Left Foot | Blocked Shot | Amos Pieper |
| 79' |
|
Mitchell Weiser | 0.71 | Open Play | Right Foot | Goal | Justin Njinmah |
| 89' |
|
Keke Maximilian Topp | 0.04 | Open Play | Right Foot | Missed Shot | Justin Njinmah |
| 90' |
|
Justin Njinmah | 0.10 | Open Play | Right Foot | Missed Shot | Felix Agu |
| 91' |
|
Justin Njinmah | 0.06 | Open Play | — | Missed Shot | Mitchell Weiser |
| 94' |
|
Tim Oermann | 0.03 | Open Play | Right Foot | Blocked Shot | — |
| 96' |
|
Samuel Bamba | 0.05 | Direct Freekick | Right Foot | Blocked Shot | — |
| 96' |
|
Leonardo Bittencourt | 0.27 | Open Play | Right Foot | Saved Shot | Justin Njinmah |
Players
Werder Bremen
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Mitchell Weiser DMR | 90 | 1 | 0 | 2 | 1 | 0.73 | 0.06 | 0.77 |
| Marco Friedl DC | 90 | 0 | 0 | 1 | 0 | 0.50 | 0.00 | 0.07 |
| Amos Pieper DC | 90 | 0 | 0 | 1 | 1 | 0.02 | 0.03 | 0.07 |
| Niklas Stark DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.07 |
| Felix Agu DML | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.10 | 0.14 |
| Senne Lynen MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.07 |
| Michael Zetterer GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Romano Schmid MC | 89 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Marvin Ducksch FW | 68 | 0 | 0 | 3 | 3 | 0.47 | 0.54 | 0.42 |
| Oliver Burke FW | 68 | 0 | 0 | 0 | 2 | 0.00 | 0.42 | 0.42 |
| Jens Stage MC | 68 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Justin Njinmah Sub | 22 | 0 | 1 | 3 | 4 | 0.59 | 1.09 | 1.68 |
| Leonardo Bittencourt Sub | 22 | 0 | 0 | 2 | 0 | 0.30 | 0.00 | 0.34 |
| Marco Grüll Sub | 22 | 0 | 0 | 1 | 0 | 0.07 | 0.00 | 0.07 |
| Keke Maximilian Topp Sub | 1 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.10 |
Bochum
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Tim Oermann DC | 90 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.03 |
| Tom Krauß MC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.05 | 0.13 |
| Jakov Medic DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Bernardo DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Timo Horn GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Maximilian Wittek DML | 88 | 0 | 0 | 2 | 2 | 0.06 | 0.07 | 0.13 |
| Ibrahima Sissoko MC | 86 | 0 | 0 | 0 | 1 | 0.00 | 0.03 | 0.09 |
| Philipp Hofmann FW | 78 | 0 | 0 | 6 | 0 | 0.31 | 0.00 | 0.15 |
| Giorgos Masouras FWR | 78 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Felix Passlack DMR | 78 | 0 | 0 | 0 | 1 | 0.00 | 0.06 | 0.11 |
| Gerrit Holtmann FWL | 63 | 0 | 0 | 2 | 1 | 0.04 | 0.04 | 0.17 |
| Myron Boadu Sub | 27 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Samuel Bamba Sub | 12 | 0 | 0 | 1 | 0 | 0.05 | 0.00 | 0.00 |
| Moritz Broschinski Sub | 12 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Erhan Masovic Sub | 12 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Mats Pannewig Sub | 2 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |