Skip to main content
E90

Transparent by default

How the probability model works

A short account of the current official models — enough to interpret a match page, without pretending the maths is magic.

What is expected goals (xG)?

Expected goals here are the Poisson means for the fixture (λ home and λ away). They are not a shot map. Those two numbers become a full score grid; 1X2, Over 2.5 and BTTS are sums from that grid, not separate hunches.

Expected goals, then a score grid

The model estimates how many goals each side is expected to score in this fixture. A Dixon-Coles adjustment handles low-score dependence. Home win, draw, away win, Over 2.5 and BTTS are all taken from the same matrix.

Elo is team strength, not a headline

Each live league uses a frozen Elo model: Liga Portugal v1.1.0-p1-elo, La Liga la-v1.1.0-elo, Premier League pl-v1.1.0-elo. Ratings update only from matches already finished. A promoted side starts with a conservative prior rather than an invented history. Public tables: all live-league EloLiga Portugal · La Liga · Premier League. The same ratings already feed the match probabilities.

What is 1X2?

1X2 is the three-way result: home win, draw, away win. On Expected90 those three numbers always add to 100%. A 62% favourite is expected to win about 62 similar matches in 100 — the other 38 are draws or upsets.

What is BTTS?

BTTS means both teams to score. It is the sum of every scoreline in the grid where both sides have at least one goal. Over 2.5 is the sum of scorelines with three or more goals.

What we measure

On 909 walk-forward Liga Portugal matches (2023/24–2025/26, pre-lineup), the frozen Elo model recorded log loss 0.9354, RPS 0.1839, ECE 0.0326, favourite 1X2 accuracy 0.5644 and goal MAE 0.8778. On 1,140 walk-forward La Liga matches in the same window, la-v1.1.0-elo recorded log loss 0.9732, RPS 0.1944, ECE 0.026, favourite 1X2 accuracy 0.5316 and goal MAE 0.8507. On 1,140 walk-forward Premier League matches, pl-v1.1.0-elo recorded log loss 0.9796, RPS 0.1997, ECE 0.0326, favourite 1X2 accuracy 0.5421 and goal MAE 0.9366. Accuracy is reported because people ask; it is not the objective. Log loss penalises confident misses. Lower is better.

What we do not do

  • Rewrite a forecast after the match.
  • Hide early-season results because they look noisy.
  • Promise that a 73% favourite will win this evening.

Expected90 publishes probabilistic football forecasts based on statistical models. Predictions are not certainties.

Methodology questions

Is this a betting model?

It is a statistical forecast of match outcomes. We do not publish tips, odds products, or guaranteed picks. Probabilities can be compared with a market, but that is the reader’s choice.

Why not quote a 70% win rate?

Favourite-win accuracy is a poor score for football. A 55% favourite should not win 70% of the time. We report log loss and ranked probability score on a frozen sample.

Can predictions change after kick-off?

No. Each published forecast has a timestamp and model version. Results are appended; the original probabilities stay put.

What is expected goals (xG) here?

On Expected90, expected goals are the Poisson means (λ home and λ away) for this fixture. They drive the whole score grid, not a separate headline.

What is log loss?

Log loss is a proper scoring rule for probability forecasts. It penalises confident misses more than timid ones. Lower is better. The Liga Portugal baseline is 0.9354 on 909 matches.