Our Elo Rating Methodology
Full transparency into how we calculate probabilities and find edges. No black box - you understand exactly how every recommendation is made.
What is Elo Rating?
Elo is a rating system originally developed by Arpad Elo for chess. It's now used across many competitive domains, including sports analytics. The core principle is simple:
- Every team starts with a base rating of 1500
- Win a game? Your rating increases
- Lose a game? Your rating decreases
- Beat a strong team? You gain more points
- Lose to a weak team? You lose more points
Over time, Elo ratings converge to reflect true team strength. A team with a 1600 rating is genuinely stronger than a team with a 1400 rating, and we can calculate the exact probability of either team winning.
Our Implementation
We track 800+ teams across all major sports leagues using 3+ months of historical game data. Our system processes results daily to keep ratings current.
Sports Covered
US Sports
- NBA (Basketball)
- NFL (Football)
- NHL (Hockey)
- MLB (Baseball)
- NCAAB (College Basketball)
- NCAAF (College Football)
Soccer Leagues
- Premier League (England)
- La Liga (Spain)
- Bundesliga (Germany)
- Serie A (Italy)
- Ligue 1 (France)
- MLS (USA)
- Champions League (UEFA)
K-Factors by Sport
The K-factor determines how much ratings change after each game. Sports with fewer games need higher K-factors to react quickly:
| Sport | K-Factor | Reason |
|---|---|---|
| NCAAF | 40 | 12 games - highest reactivity |
| NFL / NCAAB | 32 | 17 games (NFL) / fewer games (NCAAB) - needs quick reaction |
| Soccer (all leagues) | 25 | ~38 games - balanced reactivity |
| NBA / NHL | 20 | 82 games - moderate reactivity |
| MLB | 8 | 162 games - very stable |
Recency Weighting
Recent games matter more than games from months ago. We apply sport-specific decay factors before each rating update. Lower decay values ensure bad teams stay appropriately rated instead of being pulled toward the baseline:
- NBA / NHL / Soccer: 0.95 decay (~21% weight at 30 games ago)
- NFL: 0.93 decay (~11% weight at 30 games ago)
- MLB: 0.97 decay (~40% weight at 30 games ago)
- NCAAB: 0.94 decay (~16% weight at 30 games ago)
- NCAAF: 0.92 decay (~8% weight at 30 games ago)
This ensures teams with losing records maintain appropriately low ratings, while hot streaks and cold streaks are still reflected in current ratings.
Home Court/Field Advantage
Home advantage is real and varies significantly by sport. We add Elo points to the home team's rating at prediction time to account for this:
- NCAAB: +80 Elo points (~61-63% home win rate - college home court is strong)
- NCAAF: +65 Elo points (~59-61% home win rate)
- Soccer: +60 Elo points (~55-58% home win rate)
- NBA: +55 Elo points (~56-58% home win rate)
- MLS: +55 Elo points (strong in US soccer)
- NFL: +48 Elo points (~57% home win rate)
- Champions League: +45 Elo points (neutral-ish venues in later rounds)
- MLB: +40 Elo points (~54-56% home win rate)
- NHL: +30 Elo points (~54-55% home win rate)
These values are calibrated against real-world home win rates for each sport. The stored Elo rating is not modified - the advantage is only applied at prediction time.
Margin of Victory Adjustments
Blowout wins should increase ratings more than close wins. This helps ratings converge to true team strength faster. Our MOV formula is based on FiveThirtyEight's methodology:
MOV Multiplier Formula
multiplier = ln(|margin| + 1) x (2.2 / (eloDiff x 0.001 + 2.2))
The logarithmic function rewards larger margins with diminishing returns, while the second term prevents runaway ratings when a strong team blows out a weak team.
Example Multipliers
- 1 point margin: ~0.69x (close game, less rating movement)
- 5 point margin: ~1.0x (normal game)
- 10 point margin: ~1.2x (solid win)
- 20 point margin: ~1.4x (blowout)
- 40 point margin: ~1.6x (dominant, but capped)
MOV is enabled for all US sports (NBA, NFL, NHL, MLB, NCAAB, NCAAF) but disabled for soccer leagues where goals are rare and margin is less reliable as a strength indicator.
Season Regression
At the end of each season (after playoffs), ratings regress toward the 1500 baseline to account for roster changes, coaching changes, and general uncertainty:
Regression Formula
newRating = 1500 + (oldRating - 1500) x (1 - regressionFactor)
- NCAAB / NCAAF: 40% regression (high turnover - players graduate/transfer)
- NFL: 33% regression (significant roster turnover)
- NBA / NHL / MLS: 25% regression (rosters change moderately)
- MLB / Soccer (Europe): 20% regression (rosters more stable)
- Champions League: 15% regression (elite teams, minimal turnover)
Injury Adjustments
We don't just mention injuries - we quantify their impact using real-time ESPN data. These adjustments are applied at prediction time (the stored Elo rating is not modified):
Injury Impact Values
- NFL/NCAAF Starting QB Out: -80 Elo points
- NHL Starting Goalie Out: -30 Elo points
- Top 3 Scorer Out (NBA/NHL): -20 Elo points each
- MLB Ace Pitcher (ERA < 3.0): +20 Elo points
- MLB Good Pitcher (ERA < 3.8): +10 Elo points
Status Multipliers
- Out / Injured Reserve: 100% of adjustment applied
- Doubtful: 70% of adjustment applied
- Questionable: 15% of adjustment applied (they usually play)
- Probable / Day-to-Day: No adjustment
Market Consensus Blending
Raw Elo probabilities are powerful but can be overconfident, especially early in the season. We blend our Elo probability with the market consensus (no-vig average across sportsbooks) using confidence-based weights:
Confidence-Based Blending Weights
| Confidence Level | Games Played | Elo Weight | Market Weight |
|---|---|---|---|
| High | 20+ games | 75% | 25% |
| Medium | 10-19 games | 60% | 40% |
| Low | 5-9 games | 40% | 60% |
| Very Low | < 5 games | 25% | 75% |
This prevents overconfident early-season picks and ensures we lean heavily on the market when our Elo data is thin. As the season progresses and we accumulate more games, the model's weight increases.
Edge Calculation
The "edge" is the difference between our blended model probability and the market's implied probability from the best available price:
Edge Formula
Edge = Blended Probability - Best Price Implied Probability
For example, if our blended model calculates an 86.7% win probability, but the best available odds imply only 68.6%, that's an 18.1% edge.
We only recommend bets when we find a significant edge - where our independent calculation meaningfully disagrees with the market price.
Bet Scoring & Ranking System
Every potential bet is scored on a 100-point scale using three weighted components. The highest-scoring bet becomes the "Best Bet of the Day":
35
Probability Points
Higher win probability = more points
35
Edge Points
Bigger model vs market disagreement = more points
30
ROI Points
Higher expected return = more points
Edge and probability are weighted equally because edge (model vs market disagreement) is the best predictor of long-term profitability, while probability ensures we pick games we expect to win. ROI rewards finding value in the odds.
Spread Betting Intelligence
Spread betting requires additional filters beyond simple edge calculation. We apply sport-specific thresholds to ensure high-quality spread recommendations:
Minimum Margin Edge (Points)
We only recommend spreads when our expected margin differs from the market spread by at least:
- NBA: 3 points
- NFL: 2.5 points
- NCAAB: 4 points (higher variance)
- NCAAF: 3 points
- MLB: 1 run
- NHL: Moneylines only (puck lines too unpredictable)
Variance Filtering
We skip games involving teams with high margin variance (unpredictable scoring patterns):
- NBA: Skip if team variance > 16 points
- NFL: Skip if team variance > 18 points
- NCAAB: Skip if team variance > 18 points
- NCAAF: Skip if team variance > 22 points
These filters ensure we only recommend spreads where we have genuine predictive confidence, not just mathematical edge.
Progressive Filter Relaxation
When strict filters yield no qualifying bets, we progressively relax thresholds across 5 stages to always provide a recommendation rather than a dead-end:
- Stage 1 (Strict): 55%+ probability, 3%+ edge, max -250 juice
- Stage 2: 53%+ probability, 2%+ edge, max -300 juice
- Stage 3: 51%+ probability, 1%+ edge, max -350 juice
- Stage 4: 50%+ probability, 0%+ edge, any juice
- Stage 5 (Value Play): 48%+ probability allowed if ROI is +5% or better
Stage 5 is the "Value Play" exception - it allows slightly sub-50% probability bets when the odds offer enough value to be profitable long-term. This ensures you always get a recommendation, even on days with thin edges.
Situational Factors
Beyond Elo ratings, we analyze situational factors that Vegas often underweights. These adjustments are applied at prediction time to capture real-world context.
Schedule & Rest
- Back-to-Back: -4% NBA, -3% NHL/NCAAB, -1% MLB
- Rest Advantage: +1.5% per day (NBA), +2% per day (NFL), +0.5% per day (MLB), capped at 4.5%
- Recent Form: +2% if hot (last 10 >> season), -2% if cold
External Factors
- Travel: -0.5% short, -1% medium, -1.5% long, -2.5% cross-country
- Weather: -1% moderate, -2% high, -3% severe (outdoor sports)
- Sharp Money: +2% if professional bettors are on your side
- Injuries: Real-time ESPN data with quantified Elo impact
Motivation Factors
- Intense Rivalry: +2.5% boost (Lakers vs Celtics, Cowboys vs Eagles, Duke vs UNC)
- Moderate Rivalry: +1.5% boost (divisional matchups)
- Revenge Games: +1.5% boost (lost to this team recently)
- High Playoff Implications: +2% boost (must-win games)
- Eliminated Teams: -3% penalty (out of playoff contention)
- Clinched Teams: -1.5% penalty (already clinched, less urgency)
- Look-ahead Spots: -2% penalty (big game coming up next - trap game detection)
- Letdown Spots: -2% penalty (just beat a great team - emotional hangover)
- Home Opener / Star Return: +2% boost (extra energy)
- Season Finale: +1% boost
- Coach Hot Seat: +1.5% boost (players rally)
Recommendation Tracking
Every recommendation is logged and tracked against actual outcomes to measure performance over time. We record:
What We Track
- At Pick Time: The odds, our stated probability, confidence score, bet type, and which book has the best price
- At Settlement: Win/loss/push outcome, actual profit in units, and the final result
- Performance Metrics: Win rate, ROI, profit by sport, by bet type, and by confidence level
This data feeds directly into our calibration system and allows us to verify that the model is performing as expected across all sports and bet types.
Player Props Analysis
Beyond team-based bets, we analyze individual player performance to find edges on player props across NBA, NFL, NHL, MLB, NCAAB, and NCAAF.
How Player Props Work
- Historical Performance: We track rolling averages with recency weighting (recent games matter more)
- Statistical Modeling: Normal distribution model calculates probability of hitting over/under lines
- Opponent Adjustments: Factor in how the opposing team defends against specific stats
- Pace Adjustments: High-scoring games boost projections, low-scoring games reduce them
- Usage Adjustments: When key teammates are injured, remaining players often see increased usage
- Correlation Analysis: Identifies correlated props for parlay opportunities
- Line Movement Tracking: Monitors where the line has moved since opening
Stats Covered
NBA / NCAAB
- Points, Rebounds, Assists
- Three Pointers Made
NHL
- Goals, Assists, Shots
- Saves (goalies)
NFL / MLB
- Passing/Rushing/Receiving Yards
- Strikeouts, Hits, Runs
We only recommend props when our model shows significant edge (8%+) and the probability is between 55-85% to avoid extreme predictions.
Self-Correcting Calibration
Our system learns from its mistakes. We track predicted probabilities vs actual outcomes and automatically adjust future predictions.
Calibration Process
- Track Predictions: Every bet records its predicted probability in 5% buckets (50-55%, 55-60%, etc.)
- Compare to Outcomes: Did 65% predictions actually win 65% of the time?
- Auto-Adjust: If we're overconfident, future predictions are adjusted down. Requires 10+ completed picks per bucket.
- Brier Score: Industry-standard metric for probability accuracy (lower = better, 0.25 = random)
After 50+ completed picks, the calibration system kicks in and starts applying corrections. The more games that complete, the more accurate the model becomes. Calibration stats are tracked by sport and by bet type.
Limitations & Honest Disclaimers
- Probabilities, not guarantees: When we say 86%, you should expect to win roughly 86% of similar bets over many trials. Individual bets can and will lose.
- Model limitations: While we now capture motivation, travel fatigue, and many situational factors, some things like coaching changes and locker room dynamics may not be fully reflected.
- Injury data lag: While we use real-time ESPN data, last-minute scratches may not be captured before game time.
- Historical data depth: We use 3+ months of data. Early-season ratings may be less reliable until more games are played - this is why we blend with market consensus at lower confidence early on.
- Market efficiency: Sportsbook lines are set by sharp bettors and algorithms. Edges are real but typically small (3-8%). Bankroll management is essential.
Ready to Find Edges?
Now that you understand our methodology, try it yourself with a free trial.
Start 3-Day Free TrialNo credit card required.