NBA
82-game grind, star-driven, back-to-backs.
- Rest-day deltas + B2B penalties
- Altitude bonus for Denver
- Pace mismatch + injury weighting
- Cross-year season handling (Oct--Jun)
ELOEdge is an Elo-only prediction engine that fits 22+ adjusters per sport (rest, travel, altitude, goalie starts, starting pitchers, weather, division) and squashes raw rating gaps through a Platt-scaled logistic to produce honest win probabilities. Walk-forward backtested. Block-bootstrapped p-values. MIT.
82-game grind, star-driven, back-to-backs.
17 games, weather rules, division grudges.
162 games, starter swings, park factors.
Goalie is everything. 82 games, brutal travel.
Classic Arpad Elo with margin-of-victory scaling and home-court adjustment. Initial K-factor and home advantage are tuned per sport via differential evolution.
Layered on top: rest days, back-to-backs, travel distance, altitude, division rivalry, season phase, win streaks, scoring consistency, mean reversion, plus sport-specific (goalie / starter / weather).
Train on 2015--2022, hold out 2023--2024. Fit Platt scaler on residuals. ISO-week-within-season block bootstrap for honest p-values on every adjuster.
An adjuster KEEPS its spot only if it improves log-loss by Δ ≤ -0.003 with p < 0.05. No "felt right" features. No vibes. Receipts or it gets cut.
git clone https://github.com/JerkyJesse/ELOEdge.git
cd ELOEdge/NBA # or NFL / MLB / NHL
pip install -r requirements.txt
python main.py
> refresh # pull two years of games + injuries
> backtest # walk-forward + Platt fit
> today # generate today's predictions HTML
python run_optimize.py # refit all 22 adjusters