Pisa v Cagliari — Prediction, Odds & Stats
Sunday 15 March 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
Pisa are finishing sharply below their chances — 5.2 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding sharply more than the chances against them merit — 7.9 goals above expected, which tends to correct.
Cagliari are finishing sharply below their chances — 5.0 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding fewer than expected — 4.0 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.01–1.42 | 0% | 0% | 0% | Away ✗ | |
| dc-xg-oos | 1.34–1.20 | 1-1 13% | 47% | 52% | 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' |
|
Rafiu Durosinmi | 0.06 | Set Piece | — | Missed Shot | Samuele Angori |
| 8' |
|
Stefano Moreo | 0.76 | Right Foot | Goal | — | |
| 10' |
|
Adam Obert | 0.08 | Open Play | — | Shot On Post | Marco Palestra |
| 10' |
|
Sulemana | 0.54 | Open Play | — | Missed Shot | — |
| 17' |
|
Michael Folorunsho | 0.05 | Open Play | Right Foot | Blocked Shot | — |
| 19' |
|
Matteo Tramoni | 0.12 | Open Play | Right Foot | Blocked Shot | — |
| 19' |
|
Michel Aebischer | 0.02 | Open Play | Right Foot | Saved Shot | — |
| 42' |
|
Gianluca Gaetano | 0.02 | Open Play | Right Foot | Blocked Shot | Adam Obert |
| 43' |
|
Adam Obert | 0.02 | From Corner | Left Foot | Saved Shot | — |
| 50' |
|
Malthe Højholt | 0.57 | Open Play | Left Foot | Saved Shot | Stefano Moreo |
| 51' |
|
Antonio Caracciolo | 0.44 | Open Play | Right Foot | Goal | — |
| 52' |
|
Samuele Angori | 0.14 | Open Play | Left Foot | Blocked Shot | Stefano Moreo |
| 53' |
|
Antonio Caracciolo | 0.70 | From Corner | Right Foot | Goal | Raúl Albiol |
| 57' |
|
Adam Obert | 0.03 | Open Play | Left Foot | Saved Shot | — |
| 57' |
|
Semih Kiliçsoy | 0.01 | Open Play | Right Foot | Saved Shot | Sulemana |
| 62' |
|
Gabriele Zappa | 0.04 | From Corner | Right Foot | Missed Shot | Gianluca Gaetano |
| 66' |
|
Leonardo Pavoletti | 0.26 | Open Play | Right Foot | Goal | Alberto Dossena |
| 69' |
|
Sulemana | 0.01 | Open Play | Left Foot | Blocked Shot | Leonardo Pavoletti |
| 69' |
|
Yael Trepy | 0.30 | Open Play | Left Foot | Missed Shot | — |
| 73' |
|
Alberto Dossena | 0.07 | From Corner | — | Missed Shot | Adam Obert |
| 75' |
|
Stefano Moreo | 0.01 | Open Play | Right Foot | Missed Shot | Ebenezer Akinsanmiro |
| 89' |
|
Stefano Moreo | 0.12 | Open Play | — | Saved Shot | Samuele Angori |
| 93' |
|
Leonardo Pavoletti | 0.08 | Open Play | — | Missed Shot | Michael Folorunsho |
| 95' |
|
Luca Mazzitelli | 0.05 | Direct Freekick | Right Foot | Blocked Shot | — |
Players
Cagliari
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Sulemana ML | 90 | 0 | 0 | 2 | 1 | 0.55 | 0.01 | 0.59 |
| Alberto Dossena DC | 90 | 0 | 1 | 1 | 1 | 0.07 | 0.26 | 0.29 |
| Michael Folorunsho FW | 90 | 0 | 0 | 1 | 2 | 0.05 | 0.08 | 0.14 |
| Elia Caprile GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.08 |
| Marco Palestra MR | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.08 | 0.11 |
| Adam Obert DL | 86 | 0 | 0 | 3 | 2 | 0.13 | 0.09 | 0.69 |
| Zé Pedro DR | 81 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Gianluca Gaetano MC | 69 | 0 | 0 | 1 | 1 | 0.02 | 0.04 | 0.10 |
| Semih Kiliçsoy FW | 69 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.01 |
| Ndary Adopo MC | 51 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Yerry Mina DC | 51 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Leonardo Pavoletti Sub | 39 | 1 | 0 | 2 | 1 | 0.34 | 0.01 | 0.35 |
| Gabriele Zappa Sub | 39 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.01 |
| Yael Trepy Sub | 21 | 0 | 0 | 1 | 0 | 0.30 | 0.00 | 0.30 |
| Luca Mazzitelli Sub | 21 | 0 | 0 | 1 | 0 | 0.05 | 0.00 | 0.09 |
| Agustín Albarracín Sub | 9 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Pisa
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Antonio Caracciolo DC | 90 | 2 | 0 | 2 | 0 | 1.13 | 0.00 | 0.44 |
| Stefano Moreo FWR | 90 | 1 | 0 | 3 | 2 | 0.89 | 0.71 | 0.85 |
| Samuele Angori DML | 90 | 0 | 0 | 1 | 2 | 0.14 | 0.18 | 0.26 |
| Michel Aebischer MC | 90 | 0 | 0 | 1 | 0 | 0.02 | 0.00 | 0.14 |
| Simone Canestrelli DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Nícolas GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Mehdi Leris DMR | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Matteo Tramoni FWL | 77 | 0 | 0 | 1 | 0 | 0.12 | 0.00 | 0.69 |
| Malthe Højholt Sub | 75 | 0 | 0 | 1 | 0 | 0.57 | 0.00 | 0.69 |
| Arturo Calabresi DC | 51 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Raúl Albiol Sub | 39 | 0 | 1 | 0 | 1 | 0.00 | 0.70 | 0.00 |
| Rafiu Durosinmi FW | 36 | 0 | 0 | 1 | 0 | 0.06 | 0.00 | 0.00 |
| Marius Marin MC | 15 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Ebenezer Akinsanmiro Sub | 13 | 0 | 0 | 0 | 1 | 0.00 | 0.01 | 0.13 |
| Idrissa Touré Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |