Model Performance
A probability model is judged by calibration over samples, not by single-match hits. Every engine change must move these numbers on out-of-sample matches — or it gets cut.
2026-27 Season · Cumulative (pregame predictions, no hindsight)
Matches scored
80
Model log loss
0.9043
League-prior baseline
1.0511
Edge vs baseline
+0.1468
Brier score
0.5263
Modal picks correct
49/80
Lower log loss = better. Baseline = constant league base rates (home 42%, draw 27%, away 31%). Sample is still tiny (80 matches): treat every number here as noise until at least a half-season has accumulated.
Over 2.5 Calibration
Matches scored
80
Actual Over 2.5 rate
58.8%
Model avg Over 2.5
53.1%
Over 2.5 Brier
0.2449
Over 2.5 log loss
0.6824
Hits (3+ goals)
47/80
Pregame Over 2.5 probability (same number as on each match analysis page) vs whether the final score actually had 3+ goals.
| Model said | n | Model avg | Actual Over rate | Δ |
|---|---|---|---|---|
| 30–40% | 4 | 39.2% | 50.0% (2/4) | +10.8 pp |
| 40–50% | 24 | 46.3% | 58.3% (14/24) | +12.0 pp |
| 50–60% | 39 | 54.4% | 59.0% (23/39) | +4.6 pp |
| 60–70% | 12 | 64.7% | 58.3% (7/12) | -6.4 pp |
| 70–80% | 1 | 77.6% | 100.0% (1/1) | +22.4 pp |
Well-calibrated bands sit near Δ ≈ 0 (actual rate ≈ model average). Positive Δ = model under-called Over; negative = over-called.
Per Gameweek
| GW | Matches | Model log loss | Baseline | Δ | Picks |
|---|---|---|---|---|---|
| GW 1 | 10 | 0.8502 | 1.0939 | +0.2437 | 6/10 |
| GW 2 | 10 | 0.7779 | 1.0193 | +0.2415 | 8/10 |
| GW 3 | 10 | 0.9487 | 1.0912 | +0.1425 | 6/10 |
| GW 4 | 10 | 0.9303 | 1.0470 | +0.1167 | 5/10 |
| GW 5 | 10 | 1.1078 | 1.0608 | -0.0471 | 4/10 |
| GW 6 | 10 | 0.8562 | 1.0304 | +0.1742 | 7/10 |
| GW 7 | 10 | 0.9838 | 1.0193 | +0.0355 | 5/10 |
| GW 8 | 10 | 0.7796 | 1.0470 | +0.2673 | 8/10 |