Loading…
One moment while the latest numbers come in.
One moment while the latest numbers come in.

Baseball is the most over-counted sport in the world and the most under-explained. This site does the opposite: a simulator replays every game to estimate what should have happened, and every number is anchored against the league — so you can read at a glance whether what you just watched was normal or remarkable.
After every game we ask one question: did the right team win? A 110 mph line drive gets caught; a weak grounder finds a hole. We strip that randomness out in four steps.
We pull each plate appearance from the game — every batted ball's exit velocity, launch angle, and spray angle, plus the walks, strikeouts, hit-by-pitches, and stolen bases that never become contact.
A model trained on millions of historical batted balls turns that contact into probabilities: how often a ball hit that hard, at that angle, in that direction becomes an out, a single, a double, or a home run.
We replay the game ten thousand times, re-rolling each batted ball against those probabilities while keeping the walks, strikeouts, and baserunning fixed. A 110 mph line drive that got caught now falls for a hit in most of the reruns.
The share of those 10,000 reruns each team wins is its simulated win probability. 0.62 means “given how the bats sounded, you should have won 62 out of 100 games like this one.”
Stack those per-game numbers across a season and you get expected wins (xW) — the win total the schedule should have produced. Actual wins minus xW is a team’s luck differential, charted on every team page. Mid-season gaps tend to shrink: a team running five wins above xW in June usually gives some back, and one trailing xW often makes some up.
Six hubs, all built on the same simulated numbers.
Every metric on the site, in plain language — with the direction that counts as “better” spelled out.
The building block of the whole site. Given a ball's exit velocity, launch angle, and direction, the model estimates its average value in bases — a scorched liner might be worth 1.4 EB even if it's caught, a bloop single only 0.3 even though it fell in.
How many bases a hitter generated on contact, on average, every time they came to the plate. Higher is better. Strips out the luck of where the ball happened to land.
The same idea from the pitcher's side — how many bases the average hitter would generate against this pitcher, given the contact they allow. Lower is better.
The game-page view of offense: each batted ball's estimated bases stacked with the walks and hit-by-pitches that put the hitter on for free. Higher is better — it credits the quality of contact, not where the ball happened to land.
The pitcher's mirror image of bases created: how many fewer estimated bases the pitcher allowed than a typical pitcher would have over the same batters faced. Higher is better — it rewards weak contact and strikeouts, not lucky defense.
Used on the Best/Worst performance boards: a player's estimated bases minus what a readily available fill-in would have produced in the same opportunities. Big positive numbers need both quality and volume — a great night in six trips beats a great night in three.
The game-page luck ledger: what a ball actually earned (out = 0, single = 1, ... home run = 4) minus its estimated bases. Positive means the hitter got more than the contact deserved; negative means a well-struck ball died in a glove. Distinct from a team's season-level luck differential.
Combines how strongly the simulator favored the loser with the gap in team quality. A juggernaut out-hitting a rebuilder and still losing scores high; a coin-flip game going either way barely registers.
Hitters improve with each look at the same pitcher. The pitcher-page section shows strikeouts, walks, and estimated bases allowed by trip through the lineup — a steep dropoff the third time through is the classic argument for an earlier hook.
What share of a hitter's at-bats end in a walk. For hitters higher is better (patience and pitch selection). For pitchers it's the opposite — walks given up.
What share of plate appearances end in a strikeout. For hitters lower is better (more balls in play). For pitchers higher is better (more dominant stuff).
What share of plate appearances end in a home run. Rises when bat tech, ball construction, or hitter approach favor power; the league-wide rate is a leading indicator of the era's offensive character.
The single most legible 'how high-scoring is the era' number. Combines power, contact, and on-base into one rate — the team-level scoreboard, averaged across the league.
A power-of-contact stat. Hard-hit balls fall in for hits more often than soft contact, so the percentage is a leading indicator that survives small-sample noise.
How often a hitter (or league) lifts the ball into the air on the productive part of the launch-angle curve. Fly balls turn into doubles, triples, and home runs; ground balls almost never do. League FB% sits around 23% in the Statcast era.
How often contact stays on the ground. High-GB% pitchers limit damage by suppressing extra-base hits. League GB% sits around 45%.
A 'barrel' is a Statcast-defined sweet spot: at least 98 mph exit velocity and a launch angle that widens as the ball is hit harder. Barreled balls are hits about 80% of the time and homers about half. League Barrel% sits around 8%.
The free-base rate: walks the hitter earns plus times he gets plunked. Slightly higher than pure BB% because HBP is folded in, but useful for daily rolling views where separating the two adds noise without insight.
The gap between a team's real win-loss record and how many wins the underlying play would predict. Positive means a team has banked more wins than they've earned; negative means the opposite.
The simplest 'are they good?' number. Everything else on the Standings page is context for why this number is what it is — luck, schedule strength, run differential, or genuine team quality.
A team can be 24-20 by winning blowouts and losing squeakers (high diff) or vice versa. The gap usually predicts second-half record better than win % alone does — it's the cleanest 'are these wins real?' signal that fans can read directly.
Most teams play noticeably better at home. The size of the gap tells you whether a team is travel-fragile or has a real road profile that should hold up in the playoffs.
The simulator runs the rest of the season thousands of times with each team's true quality drawn from its posterior. Playoff probability is how often this team gets in across those simulated seasons.
The simulator's best guess at a team's final win total, plus the range it lands in 90% of the time. A 90-win team with a [82–98] band is less certain than a 90-win team with an [87–93] band — the band width is the uncertainty.
For each game, the simulator estimates a win probability from the contact quality both teams produced. Expected wins (xW) is the sum of those per-game probabilities across the season — the win total the schedule should have produced. The gap between actual wins and xW is the team's luck differential.
Independent of what the standings say today. Early in the season the standings are noisy; latent strength accounts for who they've played and how lucky they've been, then reports a posterior distribution over true team quality.
Unlike a confidence interval, a credible interval is a direct probability statement about the value itself. That's the thing fans actually want to know: how wide is the range the team could realistically end up in?
Long-form write-ups on the methodology, plus short explainer threads on the ideas behind the numbers.
The original methodology, motivation, and results — how the game simulator was built and what it found.
Rolling the per-game deserve-to-win results up into an estimate of each team's true, underlying strength.
See how it’s built, or follow along.
Want a chart, a metric, or a view that isn’t here yet? Tell me — it goes straight to my inbox.
Game-level data comes from MLB’s public Stats API; player and team totals come from this project’s own data store. No paywall, no login, no scraping.