Daily Performance
Player ELO fluctuations for the selected date. Daily + Weekly Movers. 2026 Season
Hot Players
High GainersCold Players
Risk AlertWeekly Hot Players
Weekly Cold Players
Last 7 DaysLeaderboard
Top players ranked by ELO rating. 2026 Season
Talent Leaderboard
Players ranked by skill dimension ELO. 2026 Season
Contact
| # | Player | Team | Talent ELO | Tier | Base ELO |
|---|---|---|---|---|---|
| Loading... | |||||
Matchup Predictor
Predict plate appearance outcomes using talent ELO z-scores. 2026 Season
⚾ Select Batter
⚽ Select Pitcher
Pitcher vs Team
Analyze how a pitcher matches up against every batter on a team.
⚽ Select Pitcher
⚾ Select Team
Guide
Understanding the MLB ELO Rating System
📚 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).
| Tier | Range |
|---|---|
| Elite | ≥1,700 |
| High | ≥1,620 |
| Above Avg | ≥1,560 |
| Average | ≥1,480 |
| Below Avg | ≥1,420 |
| Low | ≥1,360 |
| Cold | <1,360 |
| Tier | Range |
|---|---|
| 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
| Stadium | Park Factor | RV 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.00 | 0.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.
⚾ 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