Model performance — last 30 days
125settled predictions
0.1527Brier score (lower = better)
79.2%overall hit rate
Calibration — predicted vs actual
| Confidence bucket | n | Predicted | Actual |
|---|---|---|---|
| 50%-60% | 4 | 57.2% | 75.0% |
| 60%-70% | 19 | 65.6% | 52.6% |
| 70%-80% | 36 | 76.3% | 80.6% |
| 80%-90% | 58 | 84.7% | 84.5% |
| 90%-100% | 8 | 91.3% | 100.0% |
When "actual" tracks "predicted", the probabilities are honest — that's what the nightly recalibration optimizes for.
By market
| Market | n | Hit rate | Brier |
|---|---|---|---|
| 1X2 | 10 | 90.0% | 0.0948 |
| DC | 15 | 93.3% | 0.0691 |
| OU | 100 | 76.0% | 0.1711 |
Ticket ROI (flat ₦100 stakes)
| Tier | Tickets | Wins | ROI |
|---|---|---|---|
| JACKPOT | 1 | 0 | -100.0% |
| MEDIUM | 1 | 0 | -100.0% |
Day by day
| Date | Picks settled | Hit rate | Expected |
|---|---|---|---|
| 2026-06-12 | 125 | 79.2% | 78.9% |
Hit rate above "expected" = the model is beating its own probabilities; consistently below = it's overconfident (the nightly recalibration corrects this).
What the model has learned (self-training state)
No calibration active yet — the nightly settle refits once a market has ≥80 settled picks in the 90-day window, and only activates parameters that improve the Brier score. Until then picks use identity calibration.