Method

How it works

The model estimates probabilities from the statistics of played matches. It is not a prediction of the result and not a promise of winnings — it is a way to see which outcome looks most likely, and why.

01Data

Three recent seasons across 100+ competitions: results, corners, cards, shots, possession, referees. Statistics refresh every four hours, injury data every two, bookmaker odds twice a day.

02Goals

At the core is the Dixon-Coles model: each team gets an attacking and a defensive rating, with home advantage estimated separately. A match loses weight as it ages, so recent form counts for more than last year. A low-score correction fixes the well-known weakness of simple models, which overstate draws.

Every goal market is derived from the same score distribution. That is why the result, the totals and both-teams-to-score always agree with each other.

03Play quality

Goals are not the only signal: a team can create plenty of chances without scoring, or score from very few. xG, shots on target and possession from recent form combine into a play-quality index that adjusts attacking strength in the model beyond goals scored and conceded. Shots and shots on target also get their own count model — like corners — with separate total markets.

04Corners and cards

These work similarly but follow a different distribution: their spread is wider than Poisson, and a simple model understates the extreme totals. Cards have a third factor — the referee. It is measured as the ratio of actual cards to those expected from the matches he worked, not as a plain average: a strict referee assigned to quiet games would otherwise look lenient.

The referee layer is switched on only where the data supports it. In some leagues the referee is known for fewer than three quarters of matches — there the layer is off.

05Team strength

Alongside the goals model there is a second, independent estimate of strength — an Elo rating. It works differently: instead of being fitted across the whole history at once, it is updated after every match by a step, larger the more surprising the result was. It is computed as a single global pool across all competitions rather than inside each league, so teams from different championships are comparable. On the match page this rating is shown on its own scale from zero to five.

Outcome probabilities are a blend of the two estimates, not one of them: Elo and the goals model look at a team in different ways, and together they miss less often than either alone. On 4,545 matches the blend lowered the average forecast error from 0.2166 to 0.2145 RPS — the third decimal place. Treat that as optimistic: the blend weight was tuned on the same matches. The current model uses a different weight, and the gain is smaller still.

For national-team tournaments the blend is switched off. There a team collects about a dozen matches across the whole history of the competition instead of dozens per season in a club league, and on such a sample the rating turns noisy: in one review it pushed Turkey's chance of beating France to 47% — while both estimates agreed that France was stronger. The rating is still computed and displayed for those competitions, but it does not enter the probabilities.

06What else we show

Rest days, fixture congestion across all competitions and a European tie just before or after the match are shown on the match page: a Champions League Wednesday often explains a tired Saturday. They do not enter the probabilities yet. Line-ups and injuries are shown as well, but not modelled.

07Calibration

Every night the model is checked against past matches: if it said 60%, such events should happen roughly 60% of the time. Probabilities are corrected from those checks. The average shift across leagues stays within three percentage points.

Limits

08What we do not do

We do not claim to beat bookmakers. The main markets at large firms are priced very sharply, and an honest backtest confirms it. The value here is different: a full breakdown across every market in one place, with the factors you would otherwise collect by hand across several sites.

We also do not display invented success rates. A pick enters the public Pick of the Day archive before kick-off, and once the match starts neither the pick nor its price changes. Results are settled automatically from the score; they are corrected by hand only when the match data was wrong.

↑ Back to top