Bologna v Udinese — Prediction, Odds & Stats
Monday 23 February 2026 · ITA-Serie A · 2526
Serie A
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
Bologna are finishing below their chances — 3.7 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding more than the chances against them merit — 2.2 goals above expected, which tends to correct.
Udinese are conceding sharply fewer than expected — 5.5 goals saved beyond what the chances suggest.
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.57–1.06 | 0% | 0% | 0% | Home ✓ | |
| dc-xg-oos | 1.64–1.09 | 1-1 12% | 51% | 54% | 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 |
|---|---|---|---|---|---|---|---|
| 5' |
|
Nicolo Zaniolo | 0.13 | Open Play | Right Foot | Blocked Shot | — |
| 21' |
|
Riccardo Orsolini | 0.05 | From Corner | Left Foot | Blocked Shot | Santiago Castro |
| 21' |
|
Tommaso Pobega | 0.04 | From Corner | — | Missed Shot | Juan Miranda |
| 27' |
|
Christian Kabasele | 0.03 | Open Play | Right Foot | Missed Shot | Kingsley Ehizibue |
| 34' |
|
Tommaso Pobega | 0.02 | Open Play | Left Foot | Saved Shot | Jonathan Rowe |
| 37' |
|
Santiago Castro | 0.01 | Open Play | Right Foot | Saved Shot | Juan Miranda |
| 38' |
|
Santiago Castro | 0.08 | Open Play | Right Foot | Missed Shot | João Mário |
| 50' |
|
Juan Miranda | 0.07 | Open Play | Left Foot | Saved Shot | Remo Freuler |
| 53' |
|
Jonathan Rowe | 0.11 | Open Play | Right Foot | Blocked Shot | Juan Miranda |
| 53' |
|
Jonathan Rowe | 0.06 | Open Play | Right Foot | Blocked Shot | — |
| 53' |
|
Riccardo Orsolini | 0.24 | Open Play | Left Foot | Saved Shot | Juan Miranda |
| 58' |
|
Jakub Piotrowski | 0.02 | Open Play | Right Foot | Missed Shot | Jordan Zemura |
| 64' |
|
Jesper Karlström | 0.01 | Open Play | Right Foot | Blocked Shot | Jordan Zemura |
| 66' |
|
Juan Miranda | 0.02 | Open Play | Left Foot | Missed Shot | Federico Bernardeschi |
| 74' |
|
Federico Bernardeschi | 0.76 | Left Foot | Goal | — | |
| 80' |
|
Idrissa Gueye | 0.04 | Open Play | Right Foot | Saved Shot | — |
| 83' |
|
Nicolo Zaniolo | 0.04 | From Corner | Left Foot | Missed Shot | Arthur Atta |
| 89' |
|
Jakub Piotrowski | 0.04 | Direct Freekick | Right Foot | Saved Shot | — |
| 90' |
|
Nicolo Zaniolo | 0.09 | Open Play | Left Foot | Blocked Shot | Jakub Piotrowski |
| 94' |
|
Oier Zarraga | 0.04 | Open Play | Right Foot | Saved Shot | Arthur Atta |
| 95' |
|
Idrissa Gueye | 0.07 | Set Piece | Right Foot | Blocked Shot | — |
Players
Bologna
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Martin Vitík DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.22 |
| Jhon Lucumí DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.39 |
| Remo Freuler MC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.07 | 0.22 |
| João Mário DR | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.08 | 0.21 |
| Lukasz Skorupski GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Simon Sohm MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.08 |
| Santiago Castro FW | 87 | 0 | 0 | 2 | 1 | 0.09 | 0.05 | 0.21 |
| Juan Miranda DL | 84 | 0 | 0 | 2 | 4 | 0.09 | 0.40 | 0.45 |
| Riccardo Orsolini FWR | 58 | 0 | 0 | 2 | 0 | 0.28 | 0.00 | 0.31 |
| Jonathan Rowe FWL | 58 | 0 | 0 | 2 | 1 | 0.18 | 0.02 | 0.21 |
| Tommaso Pobega MC | 58 | 0 | 0 | 2 | 0 | 0.06 | 0.00 | 0.25 |
| Federico Bernardeschi Sub | 32 | 1 | 0 | 1 | 1 | 0.76 | 0.02 | 0.02 |
| Nikola Moro Sub | 32 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Nicolò Cambiaghi Sub | 32 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Nadir Zortea Sub | 6 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Thijs Dallinga Sub | 3 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Udinese
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Nicolo Zaniolo FW | 90 | 0 | 0 | 3 | 0 | 0.27 | 0.00 | 0.31 |
| Jakub Piotrowski MC | 90 | 0 | 0 | 2 | 1 | 0.06 | 0.09 | 0.13 |
| Maduka Okoye GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Kingsley Ehizibue DMR | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.03 | 0.03 |
| Jordan Zemura DML | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.03 | 0.10 |
| Thomas Thiesson Kristensen DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Arthur Atta MC | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.08 | 0.15 |
| Christian Kabasele DC | 82 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.03 |
| Jesper Karlström MC | 82 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.01 |
| Nicolò Bertola Sub | 81 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Adam Buksa FW | 73 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.04 |
| Jurgen Ekkelenkamp Sub | 17 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Oumar Solet DC | 9 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Idrissa Gueye Sub | 8 | 0 | 0 | 2 | 0 | 0.12 | 0.00 | 0.04 |
| Oier Zarraga Sub | 8 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.13 |