Model Configs & Validation
Every parameter, every threshold, every p-value. Nothing hidden. These are the exact configs running in production.
Research completed 2026-03-21 · ~500,000 configs tested · 3 sports validated
Combined Portfolio
Boxing
0 negative yearsFavorites — XGBoost no-form + Elo
Backtest Results
Model Configuration
Selection Filters
Feature Groups (28 (no-form set) total)
height, reach, age advantage
ratings + differential
counts, win rates, KO rates
decision rate, avg rounds, KO loss rate, activity
career avg odds, title fight
implied probabilities + diff
Dropped: streak_a, streak_b, recent_winrate_diff (form features removed — reduced noise without losing signal)
Permutation test: 5,000 permutations of model signal. Zero permutations beat the actual model.
Soccer Draw
Highest ROI per betDraw predictions — EPL + Ligue 1 only
Backtest Results
Model Configuration
Selection Filters
Feature Groups (20 total)
home, away, differential
goals, conceded, shots on target
win rates by venue
corners, fouls averages
points per game
implied probabilities (H/D/A)
Permutation test: 5,000 permutations of model signal. Only 0.8% of permutations beat the actual model (p = 0.008).
Note: Draw signal is league-specific. Tested on 11 additional leagues: −5.93% ROI. Only EPL and Ligue 1 show exploitable draw mispricing.
UFC
Highest volumeFavorites — XGBoost + Elo consensus
Backtest Results
Model Configuration
Selection Filters
Feature Groups (33 total)
height, reach, age advantage
ratings + differential
counts, win/KO/sub rates, streak, form
sig strikes, TD, control, knockdowns per fight
Permutation test: 5,000 permutations of model signal. Only 0.3% beat the actual model (p = 0.003). Replicated across 5 L2 values.
Note: 33 features outperform 54 features (bias-variance tradeoff). Adding implied_prob destroys the signal (−1.2% ROI) — the edge comes from non-market information.
What Didn't Work
Transparency means showing failures too. These sports/strategies were tested exhaustively and rejected.
22K+ config sweeps, Elo, XGB, dynamic home advantage, rest days — all negative or near-zero holdout.
Permutation p = 0.44. Best year driven by single outlier (+197%).
−8% to −19% ROI across all configs. Well-calibrated but can’t overcome 5–7% bookmaker margin.
Draw strategy on 11 new leagues: −5.93% ROI, p = 0.75.
Line movement p = 0.10–0.20. Sharp/Soft divergence not reproduced on retest.
Validation Framework
Every strategy must pass ALL four gates before going live:
Train on data before cutoff date, test on remainder. Must show positive ROI on unseen data.
Shuffle model signal across all matches, re-apply filter. Tests if model selection beats random.
Hypothesis stated before seeing results. Max 5 configs per target to prevent data mining.
Positive ROI across multiple regularization values (not dependent on a single hyperparameter).
Questions about our methodology? Read the full methodology guide