AI model performance
Every resolved StatsAI prediction from 31 Aug 2026 to 29 Oct 2026, scored against the result and against bookmaker odds with the margin removed. Nothing is left out because it went badly.
The short answer
The market is more accurate. On the same events, margin-free bookmaker odds have a better Brier score than the AI model in every market we measure (4), and the gap is larger than random variation.
- 1X2 (full-time result)Market betterBrier: AI 0.630 · market 0.591 · difference +0.040 (95% interval +0.036 to +0.044)
- Goals over/under 2.5Market betterBrier: AI 0.496 · market 0.475 · difference +0.021 (95% interval +0.018 to +0.023)
- Both teams to scoreMarket betterBrier: AI 0.496 · market 0.488 · difference +0.008 (95% interval +0.006 to +0.011)
- StatsAI Elo (1X2)Market betterBrier: AI 0.612 · market 0.591 · difference +0.021 (95% interval +0.016 to +0.028)
Lower Brier is better. The interval comes from resampling whole days, because matches on the same day are not independent.
AI model vs market and base rate
The base rate is the simplest possible forecast: always the same distribution, equal to how often each outcome happened. A bar right of zero beats it, a bar left of zero does worse. Longer is better.
| Market | Events | Brier raw | Brier calibrated | Brier market | Brier base rate | Log loss AI / market | Accuracy AI / market | RPS AI / market |
|---|---|---|---|---|---|---|---|---|
| 1X2 (full-time result) | 22,160 | 0.631 | 0.630 | 0.591 | 0.646 | 1.047 / 0.990 | 45.1 / 52.0 | 0.220 / 0.205 |
| Goals over/under 2.5 | 14,018 | 0.523 | 0.496 | 0.475 | 0.496 | 0.689 / 0.668 | 54.2 / 59.0 | – |
| Both teams to score | 19,846 | 0.522 | 0.496 | 0.488 | 0.496 | 0.689 / 0.681 | 52.6 / 56.0 | – |
| StatsAI Elo (1X2) | 1,779 | 0.612 | 0.612 | 0.591 | 0.646 | 1.021 / 0.990 | 48.5 / 52.1 | 0.212 / 0.202 |
Calibration: does 60% mean 60%?
Predictions are grouped in bins of ten percentage points. For a well-calibrated model the point sits on the diagonal: of all outcomes given about 60%, about 60% happen. The vertical line is the 95% Wilson interval. Bins with fewer than 100 predictions are not drawn.
Expected calibration error (ECE) for 1X2 (full-time result): AI raw 1.30, calibrated 0.64, market 0.75 percentage points.
| Bin (%) | AI model, raw | AI model, calibrated | Market (odds without margin) |
|---|---|---|---|
| 0–10 | 7.5 → 9.7n 547 | 8.4 → 8.8n 170 | 7.0 → 5.9n 1,505 |
| 10–20 | 15.9 → 20.4n 6,756 | 16.9 → 17.2n 4,268 | 16.2 → 15.1n 7,697 |
| 20–30 | 25.2 → 25.6n 19,470 | 25.5 → 25.3n 22,555 | 25.5 → 24.9n 26,534 |
| 30–40 | 34.2 → 33.2n 22,642 | 34.5 → 34.0n 25,008 | 34.4 → 34.5n 12,693 |
| 40–50 | 43.9 → 42.0n 10,748 | 44.1 → 43.8n 9,531 | 44.7 → 45.2n 8,472 |
| 50–60 | 53.8 → 54.1n 4,163 | 54.3 → 57.7n 3,622 | 54.7 → 56.0n 5,242 |
| 60–70 | 63.7 → 63.9n 1,616 | 63.8 → 69.1n 1,122 | 64.4 → 68.1n 2,581 |
| 70–80 | 73.2 → 76.8n 453 | 73.5 → 79.4n 189 | 74.3 → 75.4n 1,236 |
| 80–90 | 82.6 → 89.2n 83 · small sample | 82.0 → 100.0n 15 · small sample | 84.2 → 88.0n 440 |
| ≥ 90 | 91.0 → 100.0n 2 · small sample | – | 92.1 → 95.0n 80 · small sample |
Calibration for the other markets
Expected calibration error (ECE) for Goals over/under 2.5: AI raw 9.43, calibrated 4.57, market 1.67 percentage points.
| Bin (%) | AI model, raw | AI model, calibrated | Market (odds without margin) |
|---|---|---|---|
| 0–10 | 2.2 → 47.4n 114 | 8.8 → 55.6n 9 · small sample | – |
| 10–20 | 15.0 → 47.1n 312 | 18.2 → 66.7n 3 · small sample | – |
| 20–30 | 24.5 → 50.6n 1,027 | 24.9 → 44.1n 59 · small sample | 28.7 → 29.5n 44 · small sample |
| 30–40 | 34.8 → 49.8n 1,732 | 36.7 → 47.7n 235 | 36.5 → 35.7n 1,217 |
| 40–50 | 44.7 → 50.9n 3,680 | 46.3 → 50.5n 6,559 | 45.4 → 47.1n 4,139 |
| 50–60 | 54.4 → 55.6n 3,029 | 53.8 → 58.3n 6,735 | 55.0 → 56.6n 5,147 |
| 60–70 | 63.8 → 58.3n 2,357 | 62.6 → 65.6n 326 | 64.0 → 65.4n 2,844 |
| 70–80 | 73.6 → 62.6n 1,103 | 74.5 → 70.8n 65 · small sample | 73.4 → 77.7n 574 |
| 80–90 | 83.3 → 67.8n 447 | 83.9 → 64.7n 17 · small sample | 82.8 → 82.7n 52 · small sample |
| ≥ 90 | 95.0 → 70.5n 217 | 91.8 → 80.0n 10 · small sample | 90.7 → 100.0n 1 · small sample |
Expected calibration error (ECE) for Both teams to score: AI raw 9.49, calibrated 3.36, market 1.68 percentage points.
| Bin (%) | AI model, raw | AI model, calibrated | Market (odds without margin) |
|---|---|---|---|
| 0–10 | 4.3 → 43.6n 39 · small sample | – | 9.8 → 50.0n 2 · small sample |
| 10–20 | 16.5 → 42.9n 147 | 14.2 → 33.3n 3 · small sample | 18.3 → 20.0n 5 · small sample |
| 20–30 | 25.4 → 46.1n 736 | 26.9 → 40.0n 40 · small sample | 26.2 → 37.5n 56 · small sample |
| 30–40 | 35.1 → 50.6n 1,975 | 36.8 → 42.5n 160 | 37.1 → 40.6n 858 |
| 40–50 | 46.2 → 53.8n 4,928 | 46.5 → 50.8n 4,927 | 46.1 → 48.5n 5,332 |
| 50–60 | 53.8 → 52.4n 4,852 | 52.8 → 55.6n 13,803 | 54.6 → 55.8n 9,514 |
| 60–70 | 64.3 → 57.1n 3,540 | 63.1 → 60.1n 710 | 63.4 → 61.9n 3,793 |
| 70–80 | 74.1 → 58.8n 2,266 | 73.8 → 60.0n 165 | 72.5 → 71.1n 284 |
| 80–90 | 84.0 → 61.9n 1,066 | 83.8 → 62.9n 35 · small sample | 80.2 → 50.0n 2 · small sample |
| ≥ 90 | 93.3 → 62.6n 297 | 90.9 → 100.0n 3 · small sample | – |
Expected calibration error (ECE) for StatsAI Elo (1X2): AI raw 1.04, calibrated 0.93, market 0.89 percentage points.
| Bin (%) | AI model, raw | AI model, calibrated | Market (odds without margin) |
|---|---|---|---|
| 0–10 | 8.3 → 2.9n 34 · small sample | 8.5 → 4.8n 42 · small sample | 7.8 → 6.6n 106 |
| 10–20 | 15.8 → 14.8n 472 | 15.9 → 15.8n 443 | 16.2 → 14.9n 619 |
| 20–30 | 25.9 → 26.1n 2,512 | 26.7 → 25.9n 2,426 | 25.6 → 24.9n 2,181 |
| 30–40 | 34.6 → 35.5n 840 | 35.0 → 34.9n 1,160 | 34.6 → 34.9n 990 |
| 40–50 | 44.3 → 41.7n 756 | 44.4 → 46.0n 700 | 44.5 → 45.1n 681 |
| 50–60 | 53.8 → 54.0n 435 | 54.3 → 55.2n 328 | 54.9 → 55.5n 418 |
| 60–70 | 63.7 → 69.9n 209 | 64.4 → 71.1n 159 | 64.4 → 69.6n 204 |
| 70–80 | 73.6 → 71.0n 69 · small sample | 73.9 → 71.8n 71 · small sample | 74.1 → 77.4n 106 |
| 80–90 | 82.3 → 90.0n 10 · small sample | 82.2 → 87.5n 8 · small sample | 83.5 → 83.9n 31 · small sample |
| ≥ 90 | – | – | 90.9 → 100.0n 1 · small sample |
Where the model is off: by odds (1X2)
Each 1X2 outcome is grouped by its bookmaker odds. For favourites (odds below 1.50) the AI model gives on average 49.3%, the market 70.4%, and they actually win 73.0% of the time. For outsiders (odds 5.00 and above): AI model 24.5%, market 13.4%, observed 12.4%.
| Odds | Outcomes | AI raw % | AI calibrated % | Market % | Observed % |
|---|---|---|---|---|---|
| 1.00–1.49 | 4,040 | 51.5 | 49.3 | 70.4 | 73.0 |
| 1.50–1.99 | 8,747 | 41.9 | 40.8 | 52.4 | 53.5 |
| 2.00–2.99 | 17,000 | 34.5 | 34.3 | 37.2 | 37.5 |
| 3.00–4.99 | 29,529 | 30.1 | 30.5 | 25.2 | 24.6 |
| 5.00+ | 7,164 | 23.1 | 24.5 | 13.4 | 12.4 |
Over time
1X2 Brier score by week (Monday to Sunday). A hollow point means the week is only partly in the measurement.
| Week | Events | AI model, calibrated | Market (odds without margin) |
|---|---|---|---|
| 31 Aug – 6 Sept 2026 * | 2,599 | 0.634 | 0.595 |
| 7 Sept – 13 Sept 2026 | 2,925 | 0.635 | 0.592 |
| 14 Sept – 20 Sept 2026 | 2,964 | 0.626 | 0.585 |
| 21 Sept – 27 Sept 2026 | 2,013 | 0.631 | 0.590 |
| 28 Sept – 4 Oct 2026 | 1,853 | 0.635 | 0.580 |
| 5 Oct – 11 Oct 2026 | 2,782 | 0.634 | 0.595 |
| 12 Oct – 18 Oct 2026 | 3,082 | 0.629 | 0.597 |
| 19 Oct – 25 Oct 2026 | 2,974 | 0.624 | 0.591 |
| 26 Oct – 1 Nov 2026 * | 968 | 0.622 | 0.574 |
Shorter periods
The same calculation over the last 7, 30 and 90 days. Each period is measured in full; nothing is singled out.
| Market | 7 days23 Oct – 29 Oct | 30 days30 Sept – 29 Oct | All31 Aug – 29 Oct |
|---|---|---|---|
| 1X2 (full-time result) | AI 0.625 · market 0.590n 3,308 | AI 0.629 · market 0.592n 11,448 | AI 0.630 · market 0.591n 22,160 |
| Goals over/under 2.5 | AI 0.493 · market 0.473n 2,429 | AI 0.495 · market 0.475n 8,050 | AI 0.496 · market 0.475n 14,018 |
| Both teams to score | AI 0.493 · market 0.482n 2,986 | AI 0.495 · market 0.489n 10,305 | AI 0.496 · market 0.488n 19,846 |
| StatsAI Elo (1X2) | AI 0.612 · market 0.598n 339 | AI 0.604 · market 0.583n 1,061 | AI 0.612 · market 0.591n 1,779 |
By competition tier
A filtered view: the same compared events as in the tables above, split by competition tier. The overall result is above; this only shows where the gap between the AI model and the market is larger or smaller. Groups with at least 1,000 events are shown. 100.0% of events are classified.
Top tier is a country's first division, second tier its second division, and third tier and below everything lower (in England from League One down). Cups, national teams, confederation club competitions, youth, reserve and women's football form a separate group.
| Market | Tier | Events | AI model, calibrated | Market (odds without margin) | Difference (95% interval) |
|---|---|---|---|---|---|
| 1X2 (full-time result) | Top tier | 5,228 | 0.622 | 0.577 | +0.045+0.038 … +0.051 |
| Second tier | 4,361 | 0.647 | 0.607 | +0.040+0.033 … +0.047 | |
| Third tier and below | 8,269 | 0.642 | 0.612 | +0.030+0.022 … +0.037 | |
| Cups, national teams, youth and women | 4,302 | 0.601 | 0.548 | +0.053+0.042 … +0.064 | |
| Goals over/under 2.5 | Top tier | 3,741 | 0.493 | 0.474 | +0.019+0.013 … +0.023 |
| Second tier | 2,896 | 0.497 | 0.487 | +0.010+0.005 … +0.015 | |
| Third tier and below | 5,165 | 0.500 | 0.475 | +0.026+0.020 … +0.032 | |
| Cups, national teams, youth and women | 2,216 | 0.489 | 0.462 | +0.027+0.020 … +0.036 | |
| Both teams to score | Top tier | 4,929 | 0.497 | 0.491 | +0.006+0.003 … +0.011 |
| Second tier | 4,103 | 0.497 | 0.491 | +0.006+0.002 … +0.010 | |
| Third tier and below | 7,225 | 0.495 | 0.486 | +0.008+0.005 … +0.013 | |
| Cups, national teams, youth and women | 3,589 | 0.496 | 0.486 | +0.011+0.005 … +0.017 |
Markets without a full distribution
For half-time/full-time the model gives only the most likely pair, combinations are derived from other predictions, and goals by half come from our own Poisson model. There are no complete odds for them, so only calibration is measured.
| Market | Predictions | Avg. predicted raw / calibrated | Observed | Brier raw / calibrated | ECE raw / calibrated |
|---|---|---|---|---|---|
| Half-time/full-time | 16,434 | 22.7 / 20.9 | 21.3 | 0.165 / 0.165 | 1.59 / 0.46 |
| Combinations (1&GG…) | 46,292 | 26.4 / 25.5 | 26.2 | 0.187 / 0.185 | 3.34 / 0.89 |
| Goals by half | 82,176 | 25.1 / 28.7 | 28.9 | 0.209 / 0.202 | 6.47 / 0.35 |
Our Elo vs the input model
On the same 1,929 matches, StatsAI Elo has a Brier score of 0.614 and the input 1X2 model 0.634; accuracy 48.3% vs 44.0%. Elo covers fewer matches, so it is compared only where both exist.
| Model | Events | Brier | Accuracy |
|---|---|---|---|
| StatsAI Elo | 1,929 | 0.614 | 48.3 |
| Input 1X2 model | 1,929 | 0.634 | 44.0 |
How we measure AI prediction performance
- What is measured
- Probabilities for 1X2, goals over/under 2.5, both teams to score and half-time/full-time come from an external statistical model that StatsAI imports every day. StatsAI adds its own Elo model, a Poisson model for goals by half, derived combinations and a calibration layer. Everything shown and resolved is measured, not selected tickets.
- Unit of measurement
- An event is one match in one market. The three probabilities for 1, X and 2 are one distribution, not three forecasts; over and under are two sides of the same estimate. That is why there are fewer events than predictions.
- Metrics
- Brier score: the sum of squared differences between forecast and outcome (0 is perfect; an even 1X2 forecast scores 0.667, a 50:50 two-way forecast 0.500). Log loss: −ln of the probability given to what happened, floored at 1%. Accuracy: how often the most likely outcome happened. RPS for 1X2 also respects the order 1 < X < 2.
- Market benchmark
- Bookmaker odds recorded before kick-off (the first ones found, never updated afterwards) are turned into probabilities: 1/odds divided by the sum of 1/odds over all outcomes (proportional margin removal). Only events with odds for every outcome and a sum between 1.00 and 1.40 are used; 247 events were excluded.
- Out-of-sample calibration
- The calibration curve for each day is learned only from resolved predictions of the previous 90 days (10 bins, at least 150 predictions per bin, monotonic curve). The day being measured is never part of the learning. The first days without enough history are not compared, so the comparison starts on 1 Sept 2026.
- No look-ahead
- A prediction is stored before the match and never changed after the result. We also checked the source: on 30 Oct 2026 we compared stored probabilities for finished matches with what the source showed at that time – 1,328 identical, 0 changed. Today's matches enter the measurement the next day.
- Nothing is removed afterwards
- Every resolved prediction is measured, good or bad. 9,719 predictions on 1,264 matches older than 2 days have no result (postponed, abandoned or result not found) and are therefore not measured. Filtered views (period, odds, competition tier) are always labelled and never shown as the overall result.
- Dependence and sample size
- Matches on the same day and in the same league are not independent, so intervals come from resampling whole days (1,000 repetitions, fixed seed). Bins with fewer than 100 predictions are marked as small samples. Results for individual leagues are not published because only a few leagues have enough events; leagues are pooled by competition tier instead, and only groups with at least 1,000 events are shown.
- Why there is no profit or ROI
- We do not publish profit or ROI. Hypothetical betting at recorded odds ignores line movement, limits and real bet execution, so such a number would not be a fair measurement.
Limitations
- The period is short (60 days). A few months of football are not enough for conclusions about a whole season.
- Odds come from the pre-match offer, not closing odds. Closing odds are usually even more accurate, so the real market is probably stronger than shown here.
- Some matches have no half-time score, so the half-time/full-time and goals-by-half markets have fewer resolved predictions.
- A good Brier score does not mean profit at a bookmaker. This is statistics, not betting advice.
How to cite
StatsAI (2026). AI model performance: football prediction accuracy vs the betting market. https://statsai.bet/en/ai-model-performance (accessed 30 Oct 2026).
Figures change daily, so include the access date.
The aggregate figures on this page can be downloaded as JSON under the CC BY 4.0 licence (free to use with attribution: StatsAI, statsai.bet). Download the data (JSON)
Monthly reports
Every month the figures for the previous month are frozen in a separate report with findings, tables and downloadable data.
The first report (October 2026) will be published on 2 Nov 2026. All reports