NewArticles & analysisRead more about our story

Methodology

A prediction on Soccer Stats Hub is one chain of steps: completed matches in the competition, attack and defence strengths, expected goals for each side, then a score grid you can read into 1X2, BTTS and Over 2.5. This page is that chain in order. Figures refresh through the day as results and odds land.

What we load

Match and league data come from the feeds that power the fixture browser: schedules, results, season and team fields, and bookmaker prices where we show them. Rankings and some competition pages pull extra metrics when that competition has a feed.

Predictions are built from completed fixtures in the same competition as the match you are looking at. We do not blend league results with cup ties or friendlies when we shape a club's attacking or defensive picture for a league game. That like-for-like rule is deliberate, and it matches the walkthrough in How we predict a game.

What the model reads

Before kick-off, typical inputs include:

  • Recent form and home or away performance windows
  • xG for, xG against and rolling xG difference
  • Points per game, win-draw-loss rates and league position
  • BTTS, Over 2.5, Under 2.5 and clean sheet rates
  • Market odds and implied probability, shown for comparison on the page
  • Correct score probabilities from the goal expectation step below

Expected goals (lambda)

If you expand a fixture, the expected goals rate for each team is what we call lambda: one number for the home side, one for the away side. The predicted scoreline and the home-draw-away percentages all come from the same score grid those lambdas produce. There is no second guess sitting alongside the matrix.

Baselines

We start from the league scoring environment. Season averages are split into home and away baselines so a typical home attack is not treated like a typical away attack. Attack strength for the fixture is weighed against the opponent's defensive record to produce a raw goal expectation for each side.

Adjustments

Raw expectations are tuned before they enter the grid:

  • Fewer than ten completed matches in the competition: pull strengths toward the league average so early-season spikes do not dominate.
  • Missing players or lineup absences: small nudges to attack or defence lambdas when the data supports it.
  • xG efficiency: light regression when goals scored diverge from chance quality over the sample we hold.
  • Rolling xG and recent results: shift the final multiplier within fixed bounds.
  • New manager flag: short-lived lift while the squad settles, when flagged in the data.

Continental and international fixtures

For continental and international matches we lean more on market odds in the blend, because rotation, travel and knockout context can pull results away from domestic league form. Every lambda is clamped to a floor and ceiling before it enters the probability engine.

The score grid

Once home and away lambdas are set, goals for each side are treated as a Poisson process. A lambda of 1.6 means the model assigns separate probabilities to 0, 1, 2, 3 and more goals. Home and away distributions are combined into a score matrix up to five goals each way.

Low-scoring cells (0-0, 1-0, 0-1, 1-1) get a Dixon-Coles style adjustment. Draws and tight games occur a bit more often than a naive independent Poisson grid would imply.

The matrix is normalised to 100% and lightly calibrated so extreme long shots do not swamp the output. From that one grid we read:

  • Home win, draw and away win probabilities
  • Both teams to score (BTTS) yes and no
  • Over and Under 2.5 goals
  • The most likely correct score

On the fixture page those model probabilities sit next to bookmaker implied prices. The headline predicted score is the highest-probability cell in the same matrix, not a separate model.

Using it on the site

This is close to how Soccer Stats Hub is used in practice: one match, one model read, one market price. Open the fixture, compare model probability with the bookmaker-implied price, then decide whether the tip deserves more attention. League hubs and tables give you the wider picture; the match view is where the model meets the market for that kick-off.

Customise Tips narrows the board by odds range, value edge, form, probability or preset when you want a shorter list to work through. For a longer narrative of the same pipeline, read How we predict a game. For how selections have behaved when replayed at scale, see Backtest results.

When numbers refresh

Fixture and league data refresh as source feeds update through the day. Competition pages and tournament previews may move more slowly when the underlying season or editorial copy changes.

Responsible use

Soccer Stats Hub is an analytical tool. Predictions are statistical estimates and can be wrong. The aim is probability beside price, context beside prediction, and enough detail for you to disagree with the tip if the match picture does not convince you.

If you use football stats for betting research, follow local laws, only stake what you can afford to lose, and keep it to adults aged 18 and over. See BeGambleAware for support.