Le Havre v Toulouse — Prediction, Odds & Stats
Sunday 15 February 2026 · FRA-Ligue 1 · 2526
Ligue 1
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
Le Havre are conceding sharply fewer than expected — 5.6 goals saved beyond what the chances suggest.
Toulouse are finishing below their chances — 3.6 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding more than the chances against them merit — 2.3 goals above expected, which tends to correct.
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.27 | 0% | 0% | 0% | Away ✗ | |
| dc-xg-oos | 1.13–1.15 | 1-1 13% | 40% | 46% | 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 |
|---|---|---|---|---|---|---|---|
| 4' |
|
Aron Dønnum | 0.09 | Open Play | Left Foot | Blocked Shot | — |
| 9' |
|
Djibril Sidibe | 0.03 | Open Play | Right Foot | Missed Shot | Pape Diop |
| 9' |
|
Yann Gboho | 0.52 | Open Play | Right Foot | Saved Shot | Rafik Messali |
| 11' |
|
Pape Diop | 0.05 | Open Play | — | Blocked Shot | Aron Dønnum |
| 16' |
|
Rasmus Nicolaisen | 0.03 | Open Play | Left Foot | Saved Shot | Aron Dønnum |
| 22' |
|
Sofiane Boufal | 0.01 | Open Play | Right Foot | Missed Shot | Yanis Zouaoui |
| 35' |
|
Rassoul Ndiaye | 0.03 | Open Play | Right Foot | Blocked Shot | Simon Ebonog |
| 36' |
|
Aron Dønnum | 0.03 | Open Play | Left Foot | Saved Shot | Cristian Cásseres Jr. |
| 38' |
|
Charlie Cresswell | 0.09 | From Corner | — | Missed Shot | Cristian Cásseres Jr. |
| 42' |
|
Issa Soumaré | 0.49 | Open Play | Left Foot | Goal | — |
| 47' |
|
Djibril Sidibe | 0.66 | From Corner | Left Foot | Goal | Charlie Cresswell |
| 52' |
|
Issa Soumaré | 0.34 | Open Play | Right Foot | Goal | Sofiane Boufal |
| 56' |
|
Yann Gboho | 0.02 | Open Play | Right Foot | Blocked Shot | Pape Diop |
| 59' |
|
Aron Dønnum | 0.06 | Open Play | Left Foot | Blocked Shot | — |
| 61' |
|
Santiago Hidalgo | 0.09 | Open Play | Right Foot | Saved Shot | Yann Gboho |
| 63' |
|
Pape Diop | 0.05 | Open Play | Right Foot | Saved Shot | Aron Dønnum |
| 65' |
|
Jacen Russell-Rowe | 0.36 | From Corner | Right Foot | Saved Shot | Pape Diop |
| 66' |
|
Charlie Cresswell | 0.03 | From Corner | — | Missed Shot | Djibril Sidibe |
| 78' |
|
Yann Gboho | 0.02 | Open Play | Right Foot | Blocked Shot | Pape Diop |
| 79' |
|
Charlie Cresswell | 0.07 | From Corner | — | Missed Shot | Pape Diop |
| 79' |
|
Pape Diop | 0.02 | From Corner | Right Foot | Blocked Shot | Jacen Russell-Rowe |
| 88' |
|
Pape Diop | 0.02 | Open Play | Right Foot | Missed Shot | Yann Gboho |
| 89' |
|
Mário Sauer | 0.05 | Open Play | Right Foot | Blocked Shot | Aron Dønnum |
| 89' |
|
Pape Diop | 0.07 | Open Play | — | Missed Shot | Julián Vignolo |
| 91' |
|
Aron Dønnum | 0.03 | Open Play | Left Foot | Blocked Shot | Pape Diop |
| 92' |
|
Julián Vignolo | 0.58 | From Corner | — | Saved Shot | Mark McKenzie |
| 92' |
|
Mark McKenzie | 0.08 | From Corner | — | Blocked Shot | Pape Diop |
| 93' |
|
Rassoul Ndiaye | 0.11 | Open Play | Right Foot | Missed Shot | Mbwana Samatta |
| 95' |
|
Aron Dønnum | 0.06 | Open Play | Left Foot | Saved Shot | Yann Gboho |
| 96' |
|
Julián Vignolo | 0.06 | Open Play | Right Foot | Blocked Shot | Pape Diop |
Players
Le Havre
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Issa Soumaré FW | 90 | 2 | 0 | 2 | 0 | 0.82 | 0.00 | 0.86 |
| Rassoul Ndiaye AMC | 90 | 0 | 0 | 2 | 0 | 0.14 | 0.00 | 0.14 |
| Stephan Zagadou DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Yanis Zouaoui ML | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.01 | 0.04 |
| Lucas Gourna Douath MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Loïc Négo MR | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Gautier Lloris DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Sofiane Boufal FW | 71 | 0 | 1 | 1 | 1 | 0.01 | 0.34 | 0.38 |
| Simon Ebonog MC | 71 | 0 | 0 | 0 | 1 | 0.00 | 0.03 | 0.04 |
| Mory Diaw GK | 52 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Lionel Mpasi Sub | 38 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Mbwana Samatta Sub | 19 | 0 | 0 | 0 | 1 | 0.00 | 0.11 | 0.11 |
| Daren Mosengo Sub | 19 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Timothee Pembele Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Arouna Sangante DC | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Yassine Kechta Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Toulouse
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Yann Gboho AMC | 90 | 0 | 0 | 3 | 3 | 0.56 | 0.17 | 0.87 |
| Aron Dønnum AMC | 90 | 0 | 0 | 5 | 4 | 0.27 | 0.18 | 0.98 |
| Pape Diop MC | 90 | 0 | 0 | 5 | 8 | 0.22 | 0.67 | 0.53 |
| Charlie Cresswell DC | 90 | 0 | 1 | 3 | 1 | 0.19 | 0.66 | 0.32 |
| Mark McKenzie DC | 90 | 0 | 0 | 1 | 1 | 0.08 | 0.58 | 0.26 |
| Guillaume Restes GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Djibril Sidibe DML | 89 | 1 | 0 | 2 | 1 | 0.69 | 0.03 | 0.65 |
| Rasmus Nicolaisen DC | 68 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.08 |
| Emersonn FW | 68 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Cristian Cásseres Jr. MC | 68 | 0 | 0 | 0 | 2 | 0.00 | 0.12 | 0.08 |
| Santiago Hidalgo Sub | 61 | 0 | 0 | 1 | 0 | 0.09 | 0.00 | 0.09 |
| Rafik Messali DMR | 29 | 0 | 0 | 0 | 1 | 0.00 | 0.52 | 0.63 |
| Jacen Russell-Rowe Sub | 22 | 0 | 0 | 1 | 1 | 0.36 | 0.02 | 0.00 |
| Mário Sauer Sub | 22 | 0 | 0 | 1 | 0 | 0.05 | 0.00 | 0.18 |
| Dayann Methalie Sub | 22 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.25 |
| Julián Vignolo Sub | 1 | 0 | 0 | 2 | 1 | 0.64 | 0.07 | 0.22 |