Statistical analysis of football

Probabilities you can check.

We work out how likely every single scoreline is: 0-0, 1-0, 2-1 and so on. Every goal market comes out of that table, and because they all come from the same place they can never contradict each other. Then we show you how often we got it right.

live data79,438 matches on file8,456 matches with a forecastdata updated 17 minutes ago

How to read it

Three things, one under the other.

If all we give you is a percentage, all you can do is trust us. So under every probability you will find where it comes from, and under that how well it has held up over time.

01
71.4%Over 2.5medium confidence

The number

The probability of the market, next to how much the model knows about that match. When it knows little, it tells you.

02
home2.1
away1.3

expected goals · 90 minutes

The reason

The expected goals of the two sides. Everything else comes from here: read «2.1 against 1.3» and you already know why Over 2.5 sits at 71%.

03

The proof

How well the probabilities we published have held up, counted on forecasts saved before kick-off. You can check this one yourself.

The joint matrix

121 scores, a single distribution

The model does not estimate «the probability of Over 2.5». It estimates how likely each single result is: 0-0, 1-0, 2-1, all the way to 10-10. Eleven by eleven, one cell per score, and they sum to exactly one.

Example with expected goals 1.74 – 1.12. The percentages beside it come out of this matrix, worked out as you watch.

home goalsaway goals
possible scores121
cells add up to100%

What comes out

Sixteen market families, one single origin.

First half and second half get a model each, and full time comes from putting the two together. It costs almost nothing in accuracy, and in exchange the three windows never contradict each other.

Ninety minutes

the main window

  • 1X2 result
  • Over / Under
  • Both teams to score
  • Double chance
  • Goal range
  • Home team goals
  • Away team goals
  • Correct score
  • Result + goals combo
  • Odd / Even

First half

has a model of its own

  • 1X2 result
  • Over / Under
  • Both teams to score

Second half

comes for free, from the other two

  • 1X2 result
  • Over / Under
  • Both teams to score

Consistency, up close

The first half cannot be likelier than the full match.

It sounds obvious, but with one model per window it happens all the time and nobody notices. Here the three rows come from the same table, so it simply cannot happen.

Inter – MonzaOver 1.5
first half45.6%
second half60.3%
full time87.4%

The public record

When we say 70%, does it happen 70% of the time?

We save every forecast before kick-off and then compare it with what happened. If the model is well tuned, the points land on the diagonal.

It does not mean we always get it right: it means that when we write 70%, out of a hundred matches like that one roughly seventy happen. You can count that yourself.

matches assessed
2,179
average probability
52.0%
observed frequency
57.4%
gap
−5.39%

Over 2.5 · all competitions

updated just now
002525505075751001000.10-0.20 · 16.6% → 50.0% · 20.20-0.30 · 26.5% → 43.9% · 410.30-0.40 · 36.2% → 49.6% · 2420.40-0.50 · 45.5% → 52.4% · 6770.50-0.60 · 54.9% → 58.5% · 7450.60-0.70 · 64.4% → 66.7% · 3540.70-0.80 · 74.0% → 69.3% · 880.80-0.90 · 83.8% → 79.3% · 290.90-1.00 · 91.9% → 100.0% · 1probability (%)

Each point is a probability band; its area is how many matches fell into it. The diagonal is perfect calibration.

Calibration error, before and after

We correct the probabilities only where the correction makes things better, and we check that on matches never seen before. Where a market is already well tuned, we leave it alone.

Both teams to score
0.04480.0220
beforeafter
Over 2.5
0.03730.0192
beforeafter
Over 3.5
0.03030.0065
beforeafter

Where we are

These numbers we measured.

0
matches on file

six seasons, rebuilt match by match

0
competitions coveredbeing expanded

the catalogue is growing: more leagues on the way

0.0000
average forecast error

measured on 18,755 matches the model had never seen

0
market families

full time, first half and second half, from the same matrix

How we do against the simpler methods

How much each method gets wrong on average, on the same matches. The shorter the bar, the better. The scale starts at 0.20 because a few thousandths separate a decent model from a good one, and we wanted you to see them.

A1 Dixon-Coles0.2132
Plain Poisson0.2147
Historical frequencies0.2279
Uniform probabilities0.2338

On the calendar

The next ones, already computed.

These probabilities were written before kick-off. We do not touch them afterwards.

1. DivisionRanheim – EgersundFri 2 Oct · 19:00
Segunda DivisiónEldense – OviedoFri 2 Oct · 20:30
Eerste DivisieHelmond Sport – HeraclesFri 2 Oct · 21:00
Serie ASao Paulo – SantosSat 3 Oct · 01:00
League TwoChesterfield – TranmereSat 3 Oct · 13:30
Segunda DivisiónAlbacete – EibarSat 3 Oct · 14:00

Coverage

42 competitions, and the number is climbing.

We are adding more: before a league goes live we rebuild six seasons of its history, or the model has nothing to work with. The list below updates itself.

List updated just now.

BundesligaGermanyPremier LeagueEnglandUEFA Europa Conference LeagueEurope2. BundesligaGermanyCzech LigaCzechiaEerste DivisieNetherlandsJupiler Pro LeagueBelgiumSegunda LigaPortugalPrimeira LigaPortugalSerie C - Girone AItalySüper LigTürkiyeSerie ABrazilMajor League SoccerUnited StatesSuperettanSweden+ more on the way
La LigaSpainSerie AItalyUEFA Europa LeagueEuropeChampionshipEngland1. DivisionDenmarkEredivisieNetherlandsLeague OneEnglandLigue 2FranceSegunda DivisiónSpainSerie C - Girone BItalySuper LeagueSwitzerlandEliteserienNorway1. DivisionNorwayVeikkausliigaFinland
Ligue 1FranceUEFA Champions LeagueEuropeBundesligaAustriaFNLCzechiaSuperligaDenmarkHNLCroatiaLeague TwoEnglandNB IHungarySerie BItalySerie C - Girone CItalyAllsvenskanSwedenLiga MXMexicoPremiershipScotlandYkkösliigaFinland

The boundary

Sports data analysis. Not a betting app.

Worth being clear about what you will find here and what you will not.

  1. No odds

    We publish no odds from any operator and carry no operator advertising. What you get here is probabilities, expected goals and statistics.

  2. No advice

    What to do with them is not a question this site answers. Nowhere will you find a line telling you what to bet.

  3. No number without its uncertainty

    Every forecast also tells you how much the model knows about that match. For a newly promoted side on matchday three it knows little, and it says so.

18+Gambling can lead to addiction. This site does not promote gambling, carries no operator advertising and does not invite anyone to bet.

The matches

See what is on today.

The probabilities for every match on the calendar, and the record of how yesterday’s turned out.