BetriX

Method

How the model works

No black box. This page describes exactly what is computed and where it breaks down.

Where the data comes from

Every fixture, scoreline and result on this site comes from live football data providers — football-data.org, API-Football and TheSportsDB. Nothing is generated, seeded or filled in. When the feeds return nothing for a competition, the page says so rather than showing something that looks like a match but is not one.

Feeds overlap, so records are merged rather than ranked: the same fixture arriving from two sources is de-duplicated on the club pair and kickoff day, with the more detailed record kept and any gaps filled from the other.

The model: Dixon-Coles

Goals in football are close to Poisson-distributed, so each side gets a scoring rate and the scoreline distribution follows. For a fixture between home side i and away side j:

λ = exp(intercept + attacki − defencej + homeAdvantage)
μ = exp(intercept + attackj − defencei)

λ is the home side's expected goals and μ the away side's. Attack and defence are per-club ratings on a log scale, centred so that zero means exactly league average.

Pure Poisson gets low-scoring matches wrong: 0-0, 1-0, 0-1 and 1-1 all happen more often than independent scoring rates imply, because teams change how they play when a game is tight. Dixon and Coles (1997) correct exactly those four scorelines with a dependency parameter, ρ, which the model fits alongside everything else.

How the ratings are fitted

Ratings are estimated by weighted maximum likelihood — the parameter set that makes the actual observed results most probable. Because the log-likelihood of a Poisson model with a log link is concave, and an L2 penalty makes it strictly concave, there is a single best answer and the optimiser reaches it.

Two choices matter for football specifically. Recent matches are weighted more heavily, with the weight halving roughly every six months, so a squad's current level counts for more than what it did eighteen months ago. And the penalty pulls thinly-observed clubs toward league average, which is what stops a newly promoted side with three games played from being handed an extreme rating off a fluke result.

Where the markets come from

The two fitted rates expand into a full grid of scoreline probabilities. Every market is then read off that one grid — the match result, over/under at each line, both teams to score, double chance and correct score. Because they all come from the same distribution, they cannot contradict each other, which is a failure mode you will find on plenty of prediction sites.

Odds, margin and value

The odds shown next to a probability are fair odds: simply the inverse, with no margin added. A real bookmaker prices in a margin, which is why the implied probabilities on a betting slip add up to more than 100%.

The value finder on each match page removes that margin before comparing anything. This is not a detail — comparing a model probability against a raw bookmaker price will flag "value" on bets that are actually break-even or worse. Staking guidance uses the Kelly criterion at a quarter stake and is capped at 5% of bankroll.

Where it breaks down

The model knows results. It does not know that a first-choice striker is suspended, that a side has a cup final in midweek, or that the pitch is waterlogged. Those things move real matches and this model cannot see any of them.

It is also only as good as its sample. Every prediction shows how many completed matches it was fitted on and a data-quality score. Where that sample is too thin — a competition with fewer than fifteen results, or a club with almost no appearances — no pick is published at all. The numbers are still shown, with a warning, because dressing up a guess as analysis is the exact thing this site exists to avoid.

Finally: a probability is not a prediction. A 65% home win means the model expects that result about two times in three, which also means it will be wrong about one time in three. That is the model working correctly, not failing.

See it on a real match

Every match page shows the fitted ratings, the sample size and the parameters used.

Open today's predictions