Under the hood · Walk-forward honest
Moneyline models
The winner model: a walk-forward backtest on the most recent 3033 UFC fights. Every prediction below was trained on data strictly older than the fight it predicted.
Model scoreboard
Walk-forward out-of-sample on 3033 fights. Lower log-loss is better; AUC and accuracy are higher-is-better. ECE is the average reliability-bin miscalibration.
Accuracy
64.6%
Log-loss
0.6313
AUC
0.695
Brier
0.2208
| Model | Family | Features | n OOS | Log-loss | Accuracy | Brier | AUC | ECE |
|---|---|---|---|---|---|---|---|---|
| Ensemble | ensemble | diff | 3033 | 0.6321 | 64.5% | 0.2210 | 0.6964 | 0.0290 |
| Logistic Elo Only | logistic | elo_only | 3033 | 0.6771 | 57.4% | 0.2421 | 0.6007 | 0.0181 |
| Histgb Diff | histgb | diff | 3033 | 0.6441 | 62.4% | 0.2265 | 0.6751 | 0.0199 |
| Logistic L1Best LL | logistic | diff | 3033 | 0.6313 | 64.6% | 0.2208 | 0.6949 | 0.0293 |
Calibration
Predicted probability vs observed win rate, deciles of the served logistic. Diagonal = perfectly calibrated.
EnsembleServed logisticPerfect calibration
Feature importance
Logistic-regression magnitude of standardized coefficients. Right = pushes prediction toward fighter A; left = toward B.
Steady Elo (long-memory)
-0.441
Upset avg
-0.404
Pound-for-pound Elo edge
0.333
Perf raw career
0.316
Age (late-career decline)
-0.302
Recent activity (fights)
0.250
Ring-rust-adjusted Elo
0.210
Recent opponent quality
0.182
UFC experience edge
-0.134
Submission attempts (per 15 min)
-0.121
Recent strikes absorbed (per min)
-0.118
Reach edge in heavy divisions
0.116
Preufc beaten wpct
0.108
Grappling-offense rating edge
0.106
Recent form (win %)
0.101
Takedowns (per 15 min)
0.086
Perf raw recent3
0.079
Win/loss-streak edge
0.078
Partial dependence
How the model's mean prediction shifts when one feature moves, holding others at their data distribution.
Per-segment performance
Where the model is strong, weak, or unstable. Choose a slice:
| Skill gap | n | Log-loss | Accuracy | AUC |
|---|---|---|---|---|
| <25 | 1696 | 0.6539 | 61.0% | 0.6534 |
| 25-75 | 1194 | 0.6101 | 68.3% | 0.7344 |
| 75-150 | 143 | 0.5559 | 72.7% | 0.7933 |
Want to run this model on a matchup of your own? Interactive predictor — it runs in your browser, no API call.

