Public beta
Accuracy
When our closing price implied 25 %, it happened about 25 % of the time.
- Average miss, 1X2 · 2,942 matches
- 0.9 pts
- Finished matches with a figure
- 73 %
- Median price age at kick-off
- < 2 min
Past measurement, not a forecast. Kick-offs 10–18 Oct. Next update after the 30-day re-run, around 11 Nov 2026.
Limits
- Short window: 3,093 matches, 10–18 Oct; the 30-day re-run replaces them.
- Coverage: lower leagues get a figure less often than top competitions.
- Both teams to score is the weakest market (2.4 points average miss).
- Error scores cannot see small price differences.
Implied vs observed
Every 1X2 selection, grouped by the implied probability of the consensus close (2,942 matches, 10–18 Oct). Ring = implied, dot = observed; close together means well calibrated.
| Implied band | Selections | Implied | Observed |
|---|---|---|---|
| 0.0–0.1 | 309 | 7 % | 7 % |
| 0.1–0.2 | 1,198 | 16 % | 14 % |
| 0.2–0.3 | 3,350 | 25 % | 25 % |
| 0.3–0.4 | 1,496 | 34 % | 34 % |
| 0.4–0.5 | 1,054 | 45 % | 45 % |
| 0.5–0.6 | 688 | 54 % | 55 % |
| 0.6–0.7 | 386 | 64 % | 71 % |
| 0.7–0.8 | 218 | 74 % | 76 % |
| 0.8–0.9 | 110 | 84 % | 84 % |
| 0.9–1.0 | 17 * | 92 % | 88 % |
* fewer than 100 selections: too few to read.
Error scores by marketBrier and log-loss are error scores; lower is better. Average miss: 1X2 0.9, O/U 2.5 1.5, BTTS 2.4 points.
| Market | Brier | Log-loss | Miss, pts |
|---|---|---|---|
| 1X22,942 matches | 0.5741 | 0.9666 | 0.9 |
| O/U 2.52,448 matches | 0.4812 | 0.6740 | 1.5 |
| BTTS2,326 matches | 0.4910 | 0.6843 | 2.4 |
Average miss = the selection-weighted average gap between implied probability and observed frequency over 10 probability bands.
Compared with the prices it is built from
Same matches (10–18 Oct): the consensus close against the average single bookmaker among its inputs (margin removed the same way), and against those bookmakers' plain average with the margin left in. The differences are small.
1X2
Slightly lower error than the average single input bookmaker (log-loss 0.9668 vs 0.9672).
2,939 matches · difference −0.0004 (95 % range −0.0005 to −0.0003) · holds after correction
Lower error than the market average with the margin left in (Brier 0.5743 vs 0.5771).
2,939 matches · difference −0.0028 (95 % range −0.0031 to −0.0026) · holds after correction
O/U 2.5
Slightly lower error than the average single input bookmaker (log-loss 0.6737 vs 0.6738).
2,446 matches · difference −0.0001 (95 % range −0.0002 to −0.0001) · holds after correction
Lower error than the market average with the margin left in (Brier 0.4809 vs 0.4841).
2,446 matches · difference −0.0031 (95 % range −0.0034 to −0.0028) · holds after correction
BTTS
Slightly lower error than the average single input bookmaker (log-loss 0.6841 vs 0.6842).
2,324 matches · difference −0.0002 (95 % range −0.0002 to −0.0002) · holds after correction
Lower error than the market average with the margin left in (Brier 0.4908 vs 0.4937).
2,324 matches · difference −0.0029 (95 % range −0.0032 to −0.0025) · holds after correction
Averaging probabilities lowers these error scores almost automatically, so the first line shows the consensus is not worse than a typical input, not that it is lower than every bookmaker.
Details
How fresh, how many sourcesNewest input typically 104 s old at kick-off; a median of 4 independent sources.
- 1X2
- Newest input: 104 s median, 6.2 min at the 90th percentile
- Oldest input: 9.1 min median, 23.3 min at the 90th percentile
- Sources: median 4 (3: 702 · 4: 1,024 · 5: 854 · 6+: 362)
- O/U 2.5
- Newest input: 102 s median, 5.9 min at the 90th percentile
- Oldest input: 8.9 min median, 23.3 min at the 90th percentile
- Sources: median 4 (3: 819 · 4: 825 · 5: 594 · 6+: 210)
- BTTS
- Newest input: 97 s median, 5.7 min at the 90th percentile
- Oldest input: 9.1 min median, 23.3 min at the 90th percentile
- Sources: median 4 (3: 578 · 4: 750 · 5: 718 · 6+: 280)
Ages at kick-off, 10–18 Oct. Brands that share one trading desk count as one source. The served price_age_sis the newest input's age.
Coverage by market1X2 73 %, over/under 2.5 68 %, both teams to score 67 % of finished matches (12–26 Oct).
| Market | Of finished | Of priced | Top comps |
|---|---|---|---|
| 1X2 | 73 % | 92 % | 94 % |
| O/U 2.5 | 68 % | 85 % | 94 % |
| BTTS | 67 % | 84 % | 94 % |
7,144 finished matches; 1,452 (20 %) were not priced by any bookmaker we read. Of priced = of the matches at least one bookmaker we read priced. Top competitions = the five biggest European leagues and their second tiers, five more top leagues, the UEFA club competitions and senior internationals. See the coverage list.
How we measured itWritten down before any figure was computed; no match removed after the fact.
- What is measured: the final consensus closing price the API serves (
consensus_close) for 1X2, over/under 2.5 and both teams to score, full time (90 minutes). Implied probability = 1 ÷ the closing price. - Which matches: every finished match with a served closing figure and a 90-minute score, kicked off at least 3 hours before the run.
- Error scores: Brier (squared distance between the probabilities and the result) and log-loss (minus the log of the probability given to what happened). Lower is better.
- Calibration: selections grouped into 10 equal probability bands; implied vs observed in each.
- Comparisons:built from the same bookmakers' own closing prices on the same matches, with the same 45-minute freshness rule and margin removal as the consensus.
- Uncertainty:95 % ranges by resampling whole matches 2,000 times. The tests were fixed in advance; "holds after correction" means the difference stays clear after correcting for multiple tests (all the tests are taken together).
The method behind the figure itself is in the docs. Report run 18 Oct 2026; data file written 26 Oct 2026.