Live
AI football software for correct scoreOver 2.5 goals tipsBTTS tipsCorners tipsLive goals tipsFree football predictions updated dailyAI football software for correct scoreOver 2.5 goals tipsBTTS tipsCorners tipsLive goals tipsFree football predictions updated daily

Methodology

How the model works

This page describes the statistical model used for the free website predictions. Paid software products have their own features and coverage; the website model's results are not evidence of their accuracy. Check each product's documentation and genuine demonstrations before buying.

The model: weighted Poisson, attack and defence

Goals in football follow a Poisson distribution reasonably well: most matches have a small, predictable range of possible scorelines, and the chance of any exact score can be calculated once you know how many goals each side is expected to score. Our model estimates two numbers for every team — an attack strength and a defence strength — plus one shared home-advantage term for the league. Combining a team's attack rating with their opponent's defence rating (and the home-advantage term, for the home side) gives an expected-goals figure for each team in a fixture.

Those two expected-goals numbers are then fed into a Poisson probability calculation to get a full matrix of scoreline probabilities — the chance of 0-0, 1-0, 2-1, and so on — which is where every market shown on the site comes from: the correct-score picks are the highest-probability cells in that matrix, and 1X2, over/under and BTTS are all just that same matrix summed the relevant ways.

Fitting the model: how attack and defence ratings are calculated

Attack, defence and home-advantage aren't set by hand — they're fitted per competition from real results, using gradient ascent to find the values that best explain the goals actually scored in that league. A small shrinkage term pulls unproven teams (promoted sides, or ones early in a season) toward the league average, rather than letting a handful of results swing their rating wildly.

Recency matters: older results still inform the fit, but their influence decays on a 180-day half-life, so a result from six months ago carries half the weight of one from today, and a result from a year ago carries a quarter. The fit uses the current season plus the previous one, to increase the available sample early in a season, without letting last year's form dominate once enough of the current season exists.

The data

Results and fixtures come from football-data.org. The free predictions and the six default leagues currently covered are the Premier League, Bundesliga, Serie A, La Liga, Ligue 1 and Campeonato Brasileiro Série A — the same competitions the model is fitted against. Coverage can change with data availability. This description does not establish the model or coverage of any paid product.

Forecast timing and results

Upcoming forecasts may change as the model receives new results. Where recorded, each match page shows when its current forecast was generated, its model version and the number of league matches used for fitting. Older forecasts with missing evidence are labelled accordingly; their original probabilities and generation times cannot be reconstructed from a row creation date.

The public track record includes recorded wins and losses for the free website model. Its picks are captured when a forecast is first inserted; a later forecast on the match page can differ. Grading can be delayed by missing results or processing issues. Inspect the period, settled sample and outstanding matches before interpreting a percentage. A successful example alone does not demonstrate general accuracy or the performance of a paid product.

What the model doesn't know

Being direct about the limits matters as much as explaining how it works. The model is built from historical goals data only — it has no information about injuries, suspensions, lineups, weather, or anything else that happens in the days before kickoff. It can be unreliable early in a season, or for a team on an unusual run, before enough recent data exists to separate a real change in form from noise. And fundamentally: a probability is not a certainty. A model estimate of 70% assigns 30% to the alternatives; actual frequencies can differ if the model is poorly calibrated.

See it for yourself

The best way to judge a model is to watch it make calls in public and check the results yourself, rather than take a claim on trust.

Predictions are statistical probabilities, not guarantees. 18+ · begambleaware.org