Home / Statistical Validation
The Numbers Are Measured, Not Assumed
Generated by npm run validate from 2 simulated seasons (4,860 games), every number measured from played games rather than assumed.
This exists because a baseball simulation is only worth as much as its numbers, and asking anyone to take that on trust is exactly the opacity this project exists to avoid. Benchmarks are real MLB figures; the accepted range is deliberately wider than the point estimate, because real seasons vary and a simulation tuned to reproduce one season exactly would be overfit to it.
All 20 benchmarks are within range.
Hitting
The run environment and the shape of it.
| Measure | Simulated | Real | Accepted Range | |
|---|---|---|---|---|
| Batting Average | .251 | .243 | .235 – .262 | ✅ |
| BABIP | .296 | .291 | .275 – .305 | ✅ |
| Walk Rate | 7.8% | 8.2% | 6.8% – 9.5% | ✅ |
| Strikeout Rate | 21.3% | 22.6% | 18.0% – 25.0% | ✅ |
| Runs Per Team Per Game | 4.44 | 4.39 | 3.90 – 4.90 | ✅ |
| Home Runs Per Team Per Game | 1.17 | 1.12 | 0.90 – 1.35 | ✅ |
| Doubles Per Team Per Game | 1.41 | 1.60 | 1.30 – 1.90 | ✅ |
| Triples Per Team Per Game | 0.15 | 0.13 | 0.05 – 0.30 | ✅ |
| Stolen Bases Per Team Per Game | 0.74 | 0.70 | 0.45 – 1.00 | ✅ |
Sources: MLB 2024.
Pitching
Measured from the same played games.
| Measure | Simulated | Real | Accepted Range | |
|---|---|---|---|---|
| ERA | 4.28 | 4.08 | 3.60 – 4.60 | ✅ |
| Runs Allowed Per 9 Above ERA | 0.16 | 0.30 | 0.00 – 0.90 | ✅ |
| Pitches Per Plate Appearance | 3.51 | 3.90 | 3.30 – 4.30 | ✅ |
| Chase Rate | 32.2% | 28.5% | 22.0% – 37.0% | ✅ |
Sources: MLB 2024; MLB: ERA runs roughly 0.3 below RA/9; Baseball Savant 2024.
Batted Ball (Statcast)
Measured off simulated contact, not sampled after the fact.
| Measure | Simulated | Real | Accepted Range | |
|---|---|---|---|---|
| Average Exit Velocity | 89.5 | 89.0 | 86.5 – 92.0 | ✅ |
| Hard-Hit Rate (95+ mph) | 33.4% | 39.0% | 28.0% – 46.0% | ✅ |
| Barrel Rate | 7.8% | 8.0% | 5.0% – 12.0% | ✅ |
| Sweet-Spot Rate (8–32°) | 35.7% | 33.0% | 27.0% – 42.0% | ✅ |
Sources: Baseball Savant 2024.
Defence
Errors are real events with real consequences.
| Measure | Simulated | Real | Accepted Range | |
|---|---|---|---|---|
| Errors Per Game (Both Clubs) | 0.49 | 0.55 | 0.30 – 0.85 | ✅ |
Sources: MLB 2024.
People
Ejections and injuries.
| Measure | Simulated | Real | Accepted Range | |
|---|---|---|---|---|
| Player Ejections Per Club Per Season | 0.80 | 1.50 | 0.40 – 4.00 | ✅ |
| Share Of Big-League Players Injured At Any Moment | 7.9% | 12.0% | 2.0% – 30.0% | ✅ |
Sources: MLB: roughly 60–80 player ejections league-wide a season; MLB: injured lists carry roughly an eighth of a roster.
What is not validated yet
- Platoon splits, park factors and pitch-level sequencing are not modelled at all, so nothing about them is measured here.
- Multi-season drift. A fresh league scores about 4.1 runs a side and settles near 4.8 over eight seasons as selection reaches a steady state. That rise is bounded and decelerating —
leagueStability.test.tsfails if any season leaves the modern historical band (3.6–5.1 runs) or if the late seasons run more than 0.45 runs above the early ones — but it is a real residual, and the numbers above are measured from the first two seasons rather than from equilibrium. - Peak age. Measuring it from a snapshot of qualified hitters reads 24, below the real 26–28 — but that measurement is survivorship-biased: only the good young players reach three hundred plate appearances, while every mediocre thirty-year-old still gets them. A defensible peak-age benchmark needs the same players tracked across seasons, which needs career history (not built yet). Reporting the biased figure as if it validated anything would be worse than saying this.
- Career totals and league history are not archived, so there are no career-shape benchmarks.
- Postseason results are not separately validated against real postseason rates.
Anything in that list is a known gap, not a hidden one.
Is The Simulation Calibrated To Real Baseball?
Yes. Twenty benchmarks from 4,860 simulated games sit inside accepted MLB 2024 ranges, including batting average, ERA, exit velocity, and errors. Known gaps such as platoon splits are listed on the page rather than hidden.
Write The Charter — Play In The Browser
OOTP Alternative · Baseball GM Simulator · Baseball Management Game · Statistical Validation