Model v5 · Updated 08 Nov 2026
Our track record
Every forecast checked against the final 90-minute result, by league, competition and season. Nothing is hand-picked: every graded match counts.
These are the forecasts we actually published. Each one was stored with a timestamp before kickoff and is graded once the final result is confirmed. Records start in Sep 2026 and grow every day. Browse the forecast archive →
Summary
- Graded matches
- 15,211
- Match result hit rate
- 51.7%
- Brier score, 1X2
- 0.593
- Over/Under 2.5 hit rate
- 60.7%
- Both teams to score hit rate
- 56.7%
- Exact score hit rate
- 10.7%
Model v5
Always picking the home side: 44.6%
Lower is better. Guessing scores 0.667.
15,211 matches
15,211 matches
Out of 121 possible scores
Every market
Results by market
| Market | Matches | Hit rate | Brier score | Log loss |
|---|---|---|---|---|
| Match result (1X2) | 15,211 | 51.7% | 0.5930 | 0.9928 |
| Over/Under 1.5 goals | 15,211 | 77.2% | 0.1686 | 0.5154 |
| Over/Under 2.5 goals | 15,211 | 60.7% | 0.2326 | 0.6569 |
| Over/Under 3.5 goals | 15,211 | 67.2% | 0.2111 | 0.6108 |
| Both teams to score | 15,211 | 56.7% | 0.2431 | 0.6792 |
| Exact score | 15,201 | 10.7% | - | 3.0215 |
Hit rate counts the outcome we marked as most likely. Brier score and log loss grade the full probabilities, so a confident miss costs more than a cautious one.
Month by month
Match result hit rate over time
Show as a table
| Period | Matches | Hit rate | Brier score | Over/Under 2.5 | Both teams to score |
|---|---|---|---|---|---|
| Nov 2026 | 1,226 | 51.5% | 0.5922 | 62.8% | 55.0% |
| Oct 2026 | 11,962 | 51.8% | 0.5920 | 60.5% | 56.9% |
| Sep 2026 | 2,023 | 51.6% | 0.5995 | 60.7% | 56.6% |
Paler bars have fewer than 100 matches and move a lot by chance.
Do the percentages mean what they say?
Calibration
Each dot groups home, draw and away probabilities of similar size. Dots close to the diagonal mean that when we say 60%, it happens about 60% of the time.
Where it works best
By competition group
| Group | Matches | Hit rate | Brier score |
|---|---|---|---|
| Major leagues | 1,474 | 54.7% | 0.575 |
| Other men's leagues | 15,211 | 51.7% | 0.593 |
| Cups | 1,853 | 59.0% | 0.532 |
| Women's football | 1,043 | 65.0% | 0.485 |
| Youth & reserves | 1,271 | 53.3% | 0.572 |
| National teams | 496 | 66.1% | 0.461 |
| Friendlies | 378 | 52.6% | 0.587 |
Groups follow the period and model filters. Mismatched competitions such as cups and women's leagues are easier to call than balanced top divisions.
267 leagues with at least 30 matches
By league
| League | Matches | Hit rate | Brier score | Over/Under 2.5 | Both teams to score |
|---|---|---|---|---|---|
|
108 | 50.9% | 0.606 | 73.1% | 63.0% |
|
107 | 58.9% | 0.540 | 57.0% | 59.8% |
|
104 | 44.2% | 0.652 | 62.5% | 59.6% |
|
102 | 61.8% | 0.523 | 60.8% | 58.8% |
|
102 | 50.0% | 0.619 | 52.9% | 55.9% |
|
88 | 58.0% | 0.579 | 67.0% | 52.3% |
|
84 | 53.6% | 0.601 | 57.1% | 52.4% |
|
84 | 44.0% | 0.635 | 58.3% | 60.7% |
|
81 | 65.4% | 0.538 | 69.1% | 61.7% |
|
80 | 42.5% | 0.665 | 56.3% | 65.0% |
|
80 | 51.2% | 0.624 | 68.8% | 52.5% |
|
80 | 58.8% | 0.597 | 51.2% | 47.5% |
|
76 | 42.1% | 0.653 | 59.2% | 65.8% |
|
75 | 48.0% | 0.626 | 68.0% | 68.0% |
|
74 | 55.4% | 0.573 | 56.8% | 56.8% |
|
74 | 56.8% | 0.564 | 60.8% | 51.4% |
|
73 | 60.3% | 0.581 | 52.1% | 54.8% |
|
72 | 54.2% | 0.602 | 61.1% | 61.1% |
|
72 | 63.9% | 0.563 | 61.1% | 63.9% |
|
71 | 50.7% | 0.598 | 53.5% | 49.3% |
|
70 | 52.9% | 0.569 | 64.3% | 52.9% |
|
69 | 66.7% | 0.545 | 71.0% | 63.8% |
|
66 | 34.8% | 0.706 | 56.1% | 56.1% |
|
65 | 40.0% | 0.644 | 56.9% | 55.4% |
|
65 | 49.2% | 0.590 | 61.5% | 58.5% |
|
63 | 38.1% | 0.660 | 57.1% | 60.3% |
|
63 | 46.0% | 0.606 | 57.1% | 60.3% |
|
63 | 63.5% | 0.551 | 57.1% | 60.3% |
|
60 | 46.7% | 0.649 | 43.3% | 51.7% |
|
60 | 50.0% | 0.620 | 50.0% | 55.0% |
|
60 | 38.3% | 0.671 | 53.3% | 50.0% |
|
60 | 40.0% | 0.684 | 50.0% | 46.7% |
|
59 | 54.2% | 0.587 | 66.1% | 54.2% |
|
59 | 45.8% | 0.614 | 55.9% | 59.3% |
|
59 | 50.8% | 0.576 | 59.3% | 54.2% |
|
59 | 35.6% | 0.676 | 62.7% | 45.8% |
|
58 | 34.5% | 0.678 | 65.5% | 46.6% |
|
57 | 49.1% | 0.565 | 73.7% | 57.9% |
|
56 | 60.7% | 0.577 | 62.5% | 60.7% |
|
56 | 58.9% | 0.555 | 58.9% | 62.5% |
|
55 | 50.9% | 0.593 | 69.1% | 63.6% |
|
55 | 45.5% | 0.639 | 47.3% | 47.3% |
|
54 | 35.2% | 0.668 | 53.7% | 44.4% |
|
54 | 51.9% | 0.570 | 61.1% | 57.4% |
|
54 | 50.0% | 0.614 | 64.8% | 51.9% |
|
54 | 42.6% | 0.676 | 57.4% | 59.3% |
|
54 | 40.7% | 0.645 | 61.1% | 57.4% |
|
54 | 50.0% | 0.617 | 66.7% | 57.4% |
|
54 | 50.0% | 0.646 | 55.6% | 63.0% |
|
54 | 50.0% | 0.598 | 51.9% | 53.7% |
With a few hundred matches, a league's hit rate can move by several points from luck alone. Compare leagues with large samples.
Reading the numbers
How we measure accuracy
- Hit rate
- How often the outcome we marked as most likely happened. Simple, but it ignores how confident the forecast was.
- Brier score
- The squared gap between our probabilities and what happened. 0 is perfect; for match results, spreading a third on each outcome scores 0.667.
- Log loss
- Punishes confident mistakes harder than the Brier score. Lower is better.
- Backtest
- The current model run over past matches with only the information available before each kickoff. It shows how the model behaves across many seasons, but it is a simulation, not a record of published forecasts.
- Published forecasts
- Forecasts we actually showed, stored with a timestamp before kickoff and never edited afterwards.
- Result used
- The score after 90 minutes plus stoppage time. Extra time and penalties do not count.
Forecasts are probabilities, not certainties. Past accuracy does not guarantee future results.