Toulouse v Rennes — Prediction, Odds & Stats
Saturday 3 May 2025 · FRA-Ligue 1 · 2425
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
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.
Rennes are conceding fewer than expected — 3.9 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.33–1.26 | 0% | 0% | 0% | 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 |
|---|---|---|---|---|---|---|---|
| 6' |
|
Jaydee Canvot | 0.02 | From Corner | — | Missed Shot | Aron Dønnum |
| 13' |
|
Yann Gboho | 0.09 | Open Play | Right Foot | Missed Shot | — |
| 15' |
|
Frank Magri | 0.02 | Open Play | — | Missed Shot | Aron Dønnum |
| 21' |
|
Mohamed Meïté | 0.04 | Open Play | Right Foot | Missed Shot | Adrien Truffert |
| 23' |
|
Djaoui Cissé | 0.02 | Open Play | Right Foot | Saved Shot | — |
| 25' |
|
Ludovic Blas | 0.03 | Open Play | Left Foot | Saved Shot | Kazeem Olaigbe |
| 27' |
|
Yann Gboho | 0.63 | Open Play | Right Foot | Goal | Djibril Sidibe |
| 29' |
|
Lorenz Assignon | 0.07 | Open Play | Left Foot | Blocked Shot | Christopher Wooh |
| 36' |
|
Ludovic Blas | 0.02 | Open Play | Left Foot | Blocked Shot | Jordan James |
| 42' |
|
Aron Dønnum | 0.03 | From Corner | Left Foot | Missed Shot | — |
| 44' |
|
Jordan James | 0.07 | Open Play | Right Foot | Missed Shot | Lorenz Assignon |
| 44' |
|
Mohamed Meïté | 0.44 | Open Play | — | Saved Shot | Kazeem Olaigbe |
| 47' |
|
Ludovic Blas | 0.05 | Open Play | Left Foot | Missed Shot | — |
| 48' |
|
Joshua King | 0.05 | Open Play | Right Foot | Missed Shot | Warren Kamanzi |
| 54' |
|
Kazeem Olaigbe | 0.02 | Open Play | Right Foot | Blocked Shot | Jordan James |
| 54' |
|
Mohamed Meïté | 0.06 | Open Play | — | Saved Shot | Adrien Truffert |
| 64' |
|
Arnaud Kalimuendo Muinga | 0.62 | Open Play | Right Foot | Goal | Adrien Truffert |
| 71' |
|
Lilian Brassier | 0.06 | Set Piece | — | Missed Shot | Ludovic Blas |
| 79' |
|
Aron Dønnum | 0.05 | Open Play | Left Foot | Missed Shot | Rafik Messali |
| 81' |
|
Aron Dønnum | 0.05 | Open Play | Left Foot | Goal | Guillaume Restes |
| 86' |
|
Arnaud Kalimuendo Muinga | 0.06 | From Corner | Right Foot | Missed Shot | — |
| 92' |
|
Ismaël Koné | 0.01 | Open Play | Right Foot | Saved Shot | — |
| 93' |
|
Joshua King | 0.07 | Open Play | Right Foot | Saved Shot | Rafik Messali |
| 94' |
|
Adrien Truffert | 0.02 | From Corner | Left Foot | Missed Shot | — |
Players
Rennes
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Mohamed Meïté FW | 90 | 0 | 0 | 3 | 0 | 0.54 | 0.00 | 0.60 |
| Ludovic Blas FWR | 90 | 0 | 0 | 3 | 1 | 0.11 | 0.06 | 0.67 |
| Lorenz Assignon DMR | 90 | 0 | 0 | 1 | 1 | 0.07 | 0.07 | 0.23 |
| Lilian Brassier DC | 90 | 0 | 0 | 1 | 0 | 0.06 | 0.00 | 0.18 |
| Adrien Truffert DML | 90 | 0 | 1 | 1 | 3 | 0.02 | 0.72 | 0.86 |
| Brice Samba GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Anthony Rouault DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.61 |
| Jordan James MC | 69 | 0 | 0 | 1 | 2 | 0.07 | 0.04 | 0.68 |
| Kazeem Olaigbe FWL | 69 | 0 | 0 | 1 | 2 | 0.02 | 0.47 | 1.24 |
| Djaoui Cissé MC | 60 | 0 | 0 | 1 | 0 | 0.02 | 0.00 | 0.64 |
| Christopher Wooh DC | 60 | 0 | 0 | 0 | 1 | 0.00 | 0.07 | 0.62 |
| Arnaud Kalimuendo Muinga Sub | 30 | 1 | 0 | 2 | 0 | 0.68 | 0.00 | 0.62 |
| Ismaël Koné Sub | 30 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.01 |
| Mousa Al Tamari Sub | 21 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Azor Matusiwa Sub | 21 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Andrés Gómez Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Toulouse
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Aron Dønnum DMR | 90 | 1 | 0 | 3 | 2 | 0.14 | 0.04 | 0.76 |
| Joshua King AMC | 90 | 0 | 0 | 2 | 0 | 0.11 | 0.00 | 0.11 |
| Jaydee Canvot DC | 90 | 0 | 0 | 1 | 0 | 0.02 | 0.00 | 0.10 |
| Djibril Sidibe DC | 90 | 0 | 1 | 0 | 1 | 0.00 | 0.63 | 0.73 |
| Guillaume Restes GK | 90 | 0 | 1 | 0 | 1 | 0.00 | 0.05 | 0.12 |
| Cristian Cásseres Jr. MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.70 |
| Charlie Cresswell DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Vincent Sierro MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.05 |
| Yann Gboho AMC | 89 | 1 | 0 | 2 | 0 | 0.72 | 0.00 | 0.79 |
| Warren Kamanzi DML | 79 | 0 | 0 | 0 | 1 | 0.00 | 0.05 | 0.05 |
| Frank Magri FW | 75 | 0 | 0 | 1 | 0 | 0.02 | 0.00 | 0.02 |
| Rafik Messali Sub | 15 | 0 | 0 | 0 | 2 | 0.00 | 0.12 | 0.12 |
| Miha Zajc Sub | 11 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Ümit Akdag Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |