Torino v Roma — Prediction, Odds & Stats
Sunday 18 January 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
Torino are finishing above their chances — 3.5 goals more than expected across 10 matches, which usually cools off.
Roma are finishing below their chances — 2.5 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding sharply fewer than expected — 6.3 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 | 0.85–1.60 | 0% | 0% | 0% | Away ✓ | |
| dc-xg-oos | 1.29–1.53 | 1-1 12% | 54% | 57% | Away ✓ |
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' |
|
Donyell Malen | 0.03 | Open Play | Right Foot | Blocked Shot | Lorenzo Pellegrini |
| 10' |
|
Lorenzo Pellegrini | 0.14 | Open Play | Right Foot | Missed Shot | Gianluca Mancini |
| 12' |
|
Bryan Cristante | 0.01 | Open Play | Right Foot | Blocked Shot | Mario Hermoso |
| 19' |
|
Donyell Malen | 0.07 | Open Play | Right Foot | Saved Shot | Paulo Dybala |
| 19' |
|
Paulo Dybala | 0.04 | Open Play | Right Foot | Blocked Shot | Gianluca Mancini |
| 19' |
|
Paulo Dybala | 0.04 | Open Play | Left Foot | Blocked Shot | Gianluca Mancini |
| 21' |
|
Paulo Dybala | 0.06 | Open Play | Left Foot | Missed Shot | Donyell Malen |
| 25' |
|
Donyell Malen | 0.44 | Open Play | Right Foot | Goal | Paulo Dybala |
| 25' |
|
Cyril Ngonge | 0.02 | Open Play | Left Foot | Saved Shot | Adrien Tameze |
| 34' |
|
Gvidas Gineitis | 0.01 | Open Play | Left Foot | Missed Shot | Adrien Tameze |
| 39' |
|
Cyril Ngonge | 0.01 | Open Play | Left Foot | Saved Shot | Che Adams |
| 46' |
|
Bryan Cristante | 0.05 | Open Play | Right Foot | Missed Shot | Paulo Dybala |
| 47' |
|
Valentino Lazaro | 0.08 | Open Play | Right Foot | Saved Shot | Nikola Vlasic |
| 49' |
|
Cesare Casadei | 0.04 | Open Play | — | Saved Shot | Marcus Pedersen |
| 62' |
|
Che Adams | 0.09 | Set Piece | Right Foot | Missed Shot | Saúl Coco |
| 71' |
|
Paulo Dybala | 0.08 | Open Play | Left Foot | Saved Shot | Gianluca Mancini |
| 71' |
|
Paulo Dybala | 0.60 | Open Play | Left Foot | Goal | Devyne Rensch |
| 74' |
|
Donyell Malen | 0.32 | Open Play | Left Foot | Missed Shot | Wesley |
| 79' |
|
Che Adams | 0.09 | Open Play | Right Foot | Missed Shot | Nikola Vlasic |
| 83' |
|
Saúl Coco | 0.04 | Open Play | Right Foot | Missed Shot | Faustino Anjorin |
| 89' |
|
Robinio Vaz | 0.10 | Open Play | Right Foot | Saved Shot | Niccolò Pisilli |
| 92' |
|
Konstantinos Tsimikas | 0.04 | Open Play | Right Foot | Missed Shot | Kouadio Kone |
Players
Torino
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Che Adams FW | 90 | 0 | 0 | 2 | 1 | 0.18 | 0.01 | 0.12 |
| Valentino Lazaro MR | 90 | 0 | 0 | 1 | 0 | 0.08 | 0.00 | 0.12 |
| Saúl Coco DC | 90 | 0 | 0 | 1 | 1 | 0.04 | 0.09 | 0.15 |
| Adrien Tameze DC | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.04 | 0.05 |
| Nikola Vlasic MC | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.18 | 0.19 |
| Alberto Paleari GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Ardian Ismajli DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Cyril Ngonge FW | 79 | 0 | 0 | 2 | 0 | 0.04 | 0.00 | 0.16 |
| Emirhan Ilkhan DMC | 79 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Marcus Pedersen Sub | 58 | 0 | 0 | 0 | 1 | 0.00 | 0.04 | 0.12 |
| Gvidas Gineitis MC | 49 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.01 |
| Cesare Casadei Sub | 41 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.12 |
| Zakaria Aboukhlal ML | 32 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Faustino Anjorin Sub | 11 | 0 | 0 | 0 | 1 | 0.00 | 0.04 | 0.13 |
| Alieu Njie Sub | 11 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Roma
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Bryan Cristante MC | 90 | 0 | 0 | 2 | 0 | 0.06 | 0.00 | 0.81 |
| Wesley DML | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.32 | 1.01 |
| Evan Ndicka DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.18 |
| Gianluca Mancini DC | 90 | 0 | 0 | 0 | 4 | 0.00 | 0.31 | 1.59 |
| Kouadio Kone MC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.04 | 0.82 |
| Mile Svilar GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.24 |
| Donyell Malen FW | 79 | 1 | 0 | 4 | 1 | 0.86 | 0.06 | 1.10 |
| Paulo Dybala AMC | 79 | 1 | 1 | 5 | 3 | 0.82 | 0.56 | 1.55 |
| Devyne Rensch DMR | 79 | 0 | 1 | 0 | 1 | 0.00 | 0.60 | 0.78 |
| Daniele Ghilardi Sub | 68 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.52 |
| Lorenzo Pellegrini AMC | 55 | 0 | 0 | 1 | 1 | 0.14 | 0.03 | 0.65 |
| Matìas Soulè Malvano Sub | 35 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.13 |
| Mario Hermoso DC | 22 | 0 | 0 | 0 | 1 | 0.00 | 0.01 | 0.21 |
| Robinio Vaz Sub | 11 | 0 | 0 | 1 | 0 | 0.10 | 0.00 | 0.14 |
| Konstantinos Tsimikas Sub | 11 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.14 |
| Niccolò Pisilli Sub | 11 | 0 | 0 | 0 | 1 | 0.00 | 0.10 | 0.10 |