Rennes v Toulouse — Prediction, Odds & Stats
Saturday 28 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
Rennes are conceding fewer than expected — 3.9 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.51–1.18 | 0% | 0% | 0% | Home ✓ | |
| dc-xg-oos | 1.59–1.24 | 1-1 12% | 54% | 56% | 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 |
|---|---|---|---|---|---|---|---|
| 0' |
|
Quentin Merlin | 0.02 | Open Play | Left Foot | Missed Shot | — |
| 10' |
|
Mousa Al Tamari | 0.03 | Open Play | Left Foot | Blocked Shot | Sebastian Szymanski |
| 12' |
|
Esteban Lepaul | 0.03 | Open Play | — | Missed Shot | Arnaud Nordin |
| 21' |
|
Quentin Merlin | 0.07 | Direct Freekick | Left Foot | Saved Shot | — |
| 21' |
|
Santiago Hidalgo | 0.02 | Open Play | — | Missed Shot | Julián Vignolo |
| 26' |
|
Arnaud Nordin | 0.06 | Open Play | — | Goal | — |
| 30' |
|
Mousa Al Tamari | 0.07 | Open Play | Left Foot | Missed Shot | — |
| 38' |
|
Mahdi Camara | 0.28 | Open Play | Right Foot | Missed Shot | Valentin Rongier |
| 41' |
|
Charlie Cresswell | 0.02 | Open Play | Right Foot | Blocked Shot | Alexis Vossah |
| 46' |
|
Emersonn | 0.21 | Open Play | Right Foot | Missed Shot | Djibril Sidibe |
| 55' |
|
Yann Gboho | 0.04 | Open Play | Right Foot | Missed Shot | — |
| 56' |
|
Emersonn | 0.06 | Open Play | Right Foot | Saved Shot | Yann Gboho |
| 64' |
|
Mousa Al Tamari | 0.02 | From Corner | Left Foot | Blocked Shot | Sebastian Szymanski |
| 73' |
|
Mahamadou Nagida | 0.01 | Open Play | Left Foot | Missed Shot | — |
| 75' |
|
Santiago Hidalgo | 0.01 | Open Play | Left Foot | Missed Shot | — |
| 77' |
|
Pape Diop | 0.01 | Set Piece | Right Foot | Missed Shot | — |
| 79' |
|
Esteban Lepaul | 0.13 | Open Play | Right Foot | Missed Shot | — |
| 86' |
|
Jacen Russell-Rowe | 0.03 | Open Play | Left Foot | Missed Shot | — |
| 91' |
|
Charlie Cresswell | 0.26 | Open Play | — | Saved Shot | Mark McKenzie |
Players
Rennes
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Mahdi Camara MC | 90 | 0 | 0 | 1 | 0 | 0.28 | 0.00 | 0.28 |
| Quentin Merlin DL | 90 | 0 | 0 | 2 | 0 | 0.08 | 0.00 | 0.33 |
| Arnaud Nordin FWL | 90 | 1 | 0 | 1 | 1 | 0.06 | 0.03 | 0.37 |
| Mahamadou Nagida DR | 90 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.32 |
| Anthony Rouault DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.31 |
| Valentin Rongier MC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.28 | 0.31 |
| Lilian Brassier DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.31 |
| Brice Samba GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Esteban Lepaul FW | 83 | 0 | 0 | 2 | 0 | 0.15 | 0.00 | 0.47 |
| Mousa Al Tamari FWR | 75 | 0 | 0 | 3 | 0 | 0.12 | 0.00 | 0.38 |
| Sebastian Szymanski MC | 75 | 0 | 0 | 0 | 2 | 0.00 | 0.05 | 0.34 |
| Ludovic Blas Sub | 15 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.13 |
| Djaoui Cissé Sub | 15 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Breel Embolo Sub | 7 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Nordan Mukiele Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Toulouse
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Charlie Cresswell DC | 90 | 0 | 0 | 2 | 0 | 0.29 | 0.00 | 0.49 |
| Yann Gboho AMC | 90 | 0 | 0 | 1 | 1 | 0.04 | 0.06 | 0.09 |
| Santiago Hidalgo FW | 90 | 0 | 0 | 2 | 0 | 0.04 | 0.00 | 0.04 |
| Pape Diop MC | 90 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.10 |
| Dayann Methalie DML | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Mark McKenzie DC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.26 | 0.47 |
| Guillaume Restes GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Djibril Sidibe DC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.21 | 0.21 |
| Warren Kamanzi DMR | 83 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.21 |
| Alexis Vossah MC | 76 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 0.23 |
| Julián Vignolo AMC | 48 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 0.02 |
| Emersonn Sub | 42 | 0 | 0 | 2 | 0 | 0.27 | 0.00 | 0.27 |
| Mário Sauer Sub | 14 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jacen Russell-Rowe Sub | 7 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.03 |