Real Madrid v Real Betis — Prediction, Odds & Stats
Sunday 4 January 2026 · ESP-La Liga · 2526
La Liga
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
Real Madrid have scored 25 from 25.2 expected and conceded 10 from 11.3 — both ends in line with the chances, so the recent record is a fair reflection.
Real Betis are finishing below their chances — 2.2 goals fewer than expected across 10 matches, despite creating the openings. They are also 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 | 2.13–0.98 | 0% | 0% | 0% | Home ✓ | |
| dc-xg-oos | 2.38–1.19 | 2-1 9% | 69% | 63% | 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 |
|---|---|---|---|---|---|---|---|
| 2' |
|
Federico Valverde | 0.01 | Open Play | Right Foot | Missed Shot | — |
| 4' |
|
Vinícius Júnior | 0.10 | Open Play | Right Foot | Blocked Shot | Jude Bellingham |
| 11' |
|
Federico Valverde | 0.04 | Direct Freekick | Right Foot | Blocked Shot | — |
| 12' |
|
Eduardo Camavinga | 0.05 | Set Piece | Right Foot | Missed Shot | — |
| 16' |
|
Rodrygo | 0.03 | Open Play | Right Foot | Missed Shot | Jude Bellingham |
| 19' |
|
Gonzalo García | 0.50 | Set Piece | — | Goal | Rodrygo |
| 21' |
|
Antony | 0.02 | Open Play | Left Foot | Missed Shot | Aitor Ruibal |
| 23' |
|
Nelson Deossa | 0.02 | Open Play | Left Foot | Missed Shot | Antony |
| 25' |
|
Aurelien Tchouameni | 0.04 | Open Play | Right Foot | Missed Shot | Jude Bellingham |
| 25' |
|
Eduardo Camavinga | 0.09 | Open Play | Right Foot | Blocked Shot | Álvaro Fernández |
| 33' |
|
Nelson Deossa | 0.02 | Open Play | Left Foot | Missed Shot | Antony |
| 39' |
|
Rodrygo | 0.08 | Open Play | Right Foot | Missed Shot | — |
| 41' |
|
Juan Camilo Hernández | 0.06 | Open Play | — | Blocked Shot | Ángel Ortiz |
| 43' |
|
Nelson Deossa | 0.02 | From Corner | Left Foot | Missed Shot | — |
| 49' |
|
Gonzalo García | 0.06 | Open Play | Right Foot | Goal | Federico Valverde |
| 55' |
|
Raúl | 0.33 | From Corner | — | Goal | Rodrygo |
| 57' |
|
Eduardo Camavinga | 0.02 | Open Play | Left Foot | Saved Shot | — |
| 62' |
|
Marc Roca | 0.05 | From Corner | Right Foot | Saved Shot | Pablo Fornals |
| 63' |
|
Aitor Ruibal | 0.05 | Open Play | Right Foot | Saved Shot | Juan Camilo Hernández |
| 63' |
|
Rodrygo | 0.09 | Open Play | Right Foot | Saved Shot | — |
| 64' |
|
Jude Bellingham | 0.08 | Open Play | Right Foot | Blocked Shot | Vinícius Júnior |
| 65' |
|
Juan Camilo Hernández | 0.55 | Open Play | Right Foot | Goal | Aitor Ruibal |
| 67' |
|
Rodrigo Riquelme | 0.06 | Open Play | Right Foot | Saved Shot | — |
| 69' |
|
Antony | 0.07 | Open Play | Left Foot | Saved Shot | Rodrigo Riquelme |
| 72' |
|
Aurelien Tchouameni | 0.18 | Set Piece | — | Saved Shot | Rodrygo |
| 73' |
|
Antony | 0.02 | Open Play | Left Foot | Blocked Shot | Giovani Lo Celso |
| 75' |
|
Rodrigo Riquelme | 0.02 | Open Play | Right Foot | Shot On Post | Natan |
| 76' |
|
Giovani Lo Celso | 0.02 | From Corner | Left Foot | Missed Shot | Pablo Fornals |
| 81' |
|
Franco Mastantuono | 0.10 | Open Play | Left Foot | Blocked Shot | Federico Valverde |
| 81' |
|
Gonzalo García | 0.65 | Open Play | Left Foot | Goal | Arda Güler |
| 90' |
|
Federico Valverde | 0.14 | Open Play | Right Foot | Saved Shot | Franco Mastantuono |
| 92' |
|
Fran García | 0.41 | From Corner | Left Foot | Goal | Federico Valverde |
Players
Real Betis
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Juan Camilo Hernández FW | 90 | 1 | 0 | 2 | 1 | 0.61 | 0.05 | 0.68 |
| Antony AMR | 90 | 0 | 0 | 3 | 2 | 0.11 | 0.04 | 0.15 |
| Ricardo Rodríguez DL | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Álvaro Vallés GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.63 |
| Marc Bartra DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Natan DC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 0.67 |
| Pablo Fornals AMC | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.07 | 0.12 |
| Marc Roca DMC | 69 | 0 | 0 | 1 | 0 | 0.05 | 0.00 | 0.10 |
| Aitor Ruibal AML | 69 | 0 | 1 | 1 | 2 | 0.05 | 0.57 | 0.63 |
| Nelson Deossa DMC | 48 | 0 | 0 | 3 | 0 | 0.05 | 0.00 | 0.04 |
| Ángel Ortiz DR | 48 | 0 | 0 | 0 | 1 | 0.00 | 0.06 | 0.10 |
| Giovani Lo Celso Sub | 42 | 0 | 0 | 1 | 1 | 0.02 | 0.02 | 0.09 |
| Héctor Bellerín Sub | 42 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.07 |
| Rodrigo Riquelme Sub | 21 | 0 | 0 | 2 | 1 | 0.09 | 0.07 | 0.15 |
| Sergi Altimira Sub | 21 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Pablo García Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Real Madrid
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Gonzalo García FW | 90 | 3 | 0 | 3 | 0 | 1.21 | 0.00 | 0.81 |
| Raúl DC | 90 | 1 | 0 | 1 | 0 | 0.33 | 0.00 | 0.75 |
| Federico Valverde DR | 90 | 0 | 2 | 3 | 3 | 0.20 | 0.57 | 0.97 |
| Eduardo Camavinga MC | 90 | 0 | 0 | 3 | 0 | 0.16 | 0.00 | 0.16 |
| Jude Bellingham ML | 90 | 0 | 0 | 1 | 3 | 0.08 | 0.16 | 0.46 |
| Thibaut Courtois GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.29 |
| Álvaro Fernández DL | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.09 | 0.31 |
| Antonio Rüdiger DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.65 |
| Aurelien Tchouameni MC | 83 | 0 | 0 | 2 | 0 | 0.22 | 0.00 | 0.26 |
| Rodrygo MR | 79 | 0 | 2 | 3 | 3 | 0.20 | 1.01 | 0.25 |
| Vinícius Júnior FW | 79 | 0 | 0 | 1 | 1 | 0.10 | 0.08 | 0.27 |
| Franco Mastantuono Sub | 11 | 0 | 0 | 1 | 1 | 0.10 | 0.14 | 0.90 |
| Arda Güler Sub | 11 | 0 | 1 | 0 | 1 | 0.00 | 0.65 | 0.75 |
| Dani Ceballos Sub | 7 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.75 |
| Fran García Sub | 1 | 1 | 0 | 1 | 0 | 0.41 | 0.00 | 0.00 |
| Ferland Mendy Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |