Limited-time launch price: $25/year for full access to ELO Ball. Subscribe now →

Subscribe to Access ELO Data

Get full access to daily performance, leaderboards, talent rankings, matchup predictions, and more for $25/year.

Sign Up

Hot Players

High Gainers

Cold Players

Risk Alert

Weekly Hot Players

Cumulative ELO delta over the selected range
Loading...

Weekly Cold Players

Last 7 Days
Loading...
# Player Team ELO (Adj) iConfidence-adjusted ELO rating. Penalizes low-PA players. Baseline: 1500 = league average. Tier iPerformance tier based on ELO. Elite: 1650+, High: 1575+, Avg: 1475-1525, Low: below 1380. EV iAverage exit velocity in mph. MLB average ~88 mph. Higher = harder contact. HH% iHard-hit rate (95+ mph exit velo). MLB average ~35%. Higher = more dangerous hitter. Barrel% iBarrel rate (optimal EV + launch angle). MLB average ~7%. Higher = elite power. Chase% iSwing rate on pitches outside the zone. MLB average ~30%. Lower = better plate discipline. SwStr% iSwinging Strike Rate. MLB average ~11%. Higher = more strikeouts. O-Swing% iChase Rate (swings outside zone). MLB average ~31-32%. Higher = better deception. Z-Contact% iZone Contact Rate. MLB average ~85%. Lower = more in-zone whiffs. O-Contact% iOut of Zone Contact Rate. MLB average ~65%. Lower = better putaway pitches. CSW% iCalled Strikes + Whiffs%. MLB average ~26%. 30%+ = elite command+stuff. FPS% iFirst Pitch Strike%. MLB average ~60%. 62%+ = elite at getting ahead. Pred Score iPredictive breakout score. Higher = better underlying skills. ABS iAdjusted Breakout Score based on skill metrics. 70+ = strong candidate. Last Game
Loading...
Batting
Pitching

Contact

Avoid strikeouts, make contact
Positive 1B, 2B, 3B
Negative K, Out
Binary matchup model: batter contact skill vs pitcher contact suppression.
# Player Team Talent ELO Tier Base ELO
Loading...

⚾ Select Batter

⚽ Select Pitcher


⚽ Select Pitcher

⚾ Select Team

CBS Fantasy Points

📚 Project Abstract

This system uses a V6.1 Dual-Path ELO engine to rate MLB players from plate appearance data. Every PA runs two independent systems simultaneously:

  • Leaderboard ELO — binary outcome scoring (win/loss per PA) with mean-reversion, used for skill rankings and matchup predictions.
  • Matchup ELO — continuous run-value based, strict zero-sum (Pitcher Δ = −Batter Δ), used for head-to-head analysis.

Both systems start at 1,500. The leaderboard path self-centers near 1,500 via mean-reversion; the matchup path is zero-sum so the population mean is always preserved.

🏆 ELO Tiers

Thresholds are role-specific (leaderboard ELO).

Batters
TierRange
Elite≥1,700
High≥1,620
Above Avg≥1,560
Average≥1,480
Below Avg≥1,420
Low≥1,360
Cold<1,360
Pitchers
TierRange
Elite≥1,650
High≥1,575
Above Avg≥1,525
Average≥1,475
Below Avg≥1,425
Low≥1,380
Cold<1,380

⚙ Key Adjustments

  • Run expectancy: Each PA's impact is measured by how much it changes the expected runs scored, sourced from Statcast.
  • State normalization: Ratings account for the base-out situation (24 possible states), so a single with bases loaded is weighted differently than one with bases empty.
  • Park factors: Run values are adjusted for ballpark environment — performances at Coors Field are discounted, while pitcher-friendly parks get a boost.
  • Event weighting: Different outcome types (home runs, strikeouts, walks, etc.) carry different weights calibrated to their real-world impact on run production.
  • Quality of contact: Balls in play are further modulated by Statcast's expected wOBA (xwOBA), rewarding hard contact and penalizing weak contact.
  • Pitcher-batter baseline: The expected score is calibrated to reflect the inherent advantage pitchers have in any given PA (~30% OBP baseline).
  • Population stability: The leaderboard path uses mean-reversion to keep both batter and pitcher populations centered near 1,500. The matchup path is strictly zero-sum.
  • Error handling: Fielding errors are treated as neutral — they don't meaningfully reward or penalize either the batter or pitcher.

🔢 How the V6.1 Engine Works

All players start at 1,500. Each plate appearance runs both paths independently:

Leaderboard Path (skill ranking)

Every PA outcome is scored on a 0–1 scale reflecting how favorable the result is for the batter. Home runs score highest; strikeouts and outs score zero. The system compares this outcome against what was expected given the ELO gap between batter and pitcher, then adjusts both ratings accordingly. A gentle mean-reversion pull keeps the population centered near 1,500 over time.

Matchup Path (head-to-head analysis)

Uses the actual run-value impact of each PA (how much the play changed expected runs scored), adjusted for ballpark and game situation. The batter's gain is exactly the pitcher's loss — strict zero-sum. Higher-impact events (home runs, strikeouts, double plays) carry more weight than lower-impact ones (walks, sacrifice bunts).

Quality of Contact

For balls in play, Statcast's expected wOBA (xwOBA) modulates the rating change. A well-struck line drive that happens to be caught still gets partial credit; a bloop single gets less than a hard-hit single. Non-contact events (strikeouts, walks) bypass this adjustment.

📊 Data Source

  • Statcast pitch-level data aggregated to plate appearances via MLB Stats API
  • Run expectancy changes sourced directly from Statcast for each PA
  • Expected wOBA (xwOBA) from Statcast for quality-of-contact adjustments
  • Historical run expectancy baselines for all 24 base-out game states

🎯 What Moves Elo

  • High RV plays in leverage states (bases loaded, fewer outs)
  • Outperforming a strong opponent in a difficult state
  • Run-suppressing outcomes by pitchers in high-expectancy states

The same event can produce very different Elo changes depending on state and opponent quality.

🏡 Park Factor Examples

StadiumPark FactorRV Adjustment
Coors Field (COL)1.13-0.013 (run-friendly, RV adjusted down)
T-Mobile Park (SEA)0.91+0.009 (run-suppressing, RV adjusted up)
Yankee Stadium (NYY)1.000.000 (neutral)

Hitter-friendly parks reduce credited run value; pitcher-friendly parks increase it.

📚 What is ELO?

The ELO Rating System is a method originally designed to calculate the relative skill levels of chess players. Players start at 1,500 (league average). This system runs two ELO paths per plate appearance: a leaderboard path (binary outcome + expected score, mean-reverting) and a matchup path (continuous run-value, strict zero-sum). Elite batters reach roughly 1,700+; elite pitchers around 1,650+.

⚖ How Updates Work

Leaderboard path: Each PA outcome is compared against what was expected given the batter-pitcher ELO gap. Outperforming expectations raises your rating; underperforming lowers it. A mean-reversion mechanism keeps both populations centered near 1,500 over time.

Matchup path: Driven by how much the actual run value exceeded or fell short of the average for that game situation. Strictly zero-sum: batter gain equals pitcher loss, exactly.

⚡ Run Value & State Normalization

Each PA's impact is measured by how much it changed expected runs scored (sourced from Statcast). This raw value is adjusted for the ballpark environment and then normalized against the average run value for the specific game situation (runner positions and outs). This ensures a bases-loaded single is properly weighted compared to a leadoff single, and that Coors Field home runs aren't inflated relative to pitcher-friendly parks.

In run-friendly parks, positive outcomes are discounted to avoid rating inflation.

⚖ Pitcher-Batter Context

Batter and pitcher ELO are on the same 1,500-based scale. The expected score is calibrated to reflect the inherent pitcher advantage in any given PA — at equal ratings, the batter is expected to reach base roughly 30% of the time, matching real MLB on-base rates. High-ELO pitchers consistently suppress run value; high-ELO batters do the opposite.

💡 Interpreting Ratings Across Roles

Ratings are most meaningful within role (batters vs pitchers). Use percentiles within each role when comparing talent tiers, especially for edge cases like relievers vs everyday hitters.

Key Takeaway: When comparing players across roles, use role-relative rankings (percentile within batters or within pitchers) rather than raw ELO values.

⚾ Two-Way Players

Players who both bat and pitch have two independent ELO ratingsโ€”one for batting and one for pitching. Each rating only changes when the player acts in that role. Switch between Batting/Pitching tabs for separate OHLC charts. Marked with TWP badge in search results and leaderboards.

📊 Reading OHLC Charts

  • Open: ELO at start of day (first PA)
  • High: Highest ELO during day
  • Low: Lowest ELO during day
  • Close: ELO at end of day (last PA)

■ Green candles indicate ELO rose that day (close > open)
■ Red candles indicate decline (close < open)

Moving averages (MA5, MA15) smooth daily noise.

🔭 What is the Matchup Predictor?

Forecasts the outcome distribution of a single plate appearance using a logistic model that maps the leaderboard ELO differential between batter and pitcher to event probabilities.

Input: Leaderboard ELO Differential (Batter lb_ELO − Pitcher lb_ELO) + Context Adjustments.
Output: Probabilities for K, BB, 1B, 2B, 3B, HR. Outs = 1 − Σ(all events).

🔢 How Predictions Work

Each event type (strikeout, walk, single, double, triple, home run) is modeled independently using a probability curve driven by the ELO differential between batter and pitcher. The larger the gap, the more the probabilities shift in favor of the higher-rated player.

At equal ELO ratings, the predicted probabilities closely match MLB league averages — roughly 23% strikeout rate, 8.5% walk rate, 3.4% home run rate, and so on. As the batter's ELO advantage grows, hit and walk probabilities increase while strikeout probability decreases.

Out probability is always the complement: P(Out) = 1 minus the sum of all individual event probabilities.

⚖ Expected wOBA

The predicted outcome probabilities are combined into a single Expected wOBA metric using standard linear weights (the same ones used across the baseball analytics community). This gives a single number summarizing how productive the matchup is expected to be for the batter, making it easy to compare across different batter-pitcher pairings.

⚙ Context Adjustments

The prediction model supports contextual adjustments that account for external factors without changing the core ELO ratings.

  • Park Factors: Adjusts event probabilities based on venue (e.g., higher HR prob at Coors).
  • Platoon Splits: Adjustments for L/R matchups.
  • Weather: Temperature/Wind impacts.

⚠ Disclaimer

This project is for demonstration and analytical purposes. ELO ratings represent one approach to player evaluation and do not capture defense, baserunning, or game context beyond run expectancy. Data sourced from MLB Statcast via Baseball Savant. Should not be considered definitive skill assessments.

ELO methodology inspired by FanGraphs PlayerELO