Moneyball Labs

Era comparison, spread of talent

Four seasons, four run environments

2003, 2010, 2025 and this season side by side: how offence has moved, and whether the gap between the league's best and worst hitters has narrowed.

Computed on request from the record book (Oct 13, 2026) and 720 finals in the game log.

The finding

This season's clubs are scoring 5.07 runs a game each, the most of the 4 seasons on disk (2003, 2010, 2025, 2026). Against last season that is +0.34 runs a game, a change too large to be the noise of one season's games (z = 2.6, p = 0.008); the strikeout rate moved −0.2 points (p = 0.39). The longer arc is in how plate appearances end: strikeouts went from 14.8% of them in 2003 to 19.5% now, walks from 9.1% to 9.4%, home runs from 2.58% to 2.41%, while batting average on balls in play went from .296 to .317. Fewer balls are put in play, and more of those that are fall for hits.

The gap between the league's best and worst regulars, measured as the standard deviation of qualified hitters' wRC+, was 39.9 in 2003 and is 30.5 this season. Stephen Jay Gould argued that as a league's talent pool deepens, the spread between its best and worst shrinks. The KBO's spread has narrowed, though with 40-odd qualified hitters a season the difference is inside the sampling error: each season's standard deviation is uncertain by about ±6 points.

Runs per team-game, 2026

5.07

2003: 4.64

Strikeout rate

19.5%

2003: 14.8%

Spread of regulars' wRC+ (SD)

30.5

2003: 39.9

Qualified hitters

48

2003: 40

Nine measures, four seasons

League-wide figures for each season on disk, evenly spaced: these are snapshots, not a continuous series. The scales differ panel to panel; read the direction, not the height.

Runs per team-game

4.665.05’03’10’25’262003: 4.642010: 4.982025: 4.732026: 5.07

Batting average

.262.269’03’10’25’262003: .2692010: .2702025: .2622026: .268

On-base percentage

.339.350’03’10’25’262003: .3452010: .3512025: .3382026: .346

Slugging percentage

.390.413’03’10’25’262003: .4142010: .4062025: .3892026: .404

Home runs per PA

2.15%2.56%’03’10’25’262003: 2.58%2010: 2.38%2025: 2.13%2026: 2.41%

Strikeout rate

15.1%19.4%’03’10’25’262003: 14.8%2010: 16.9%2025: 19.7%2026: 19.5%

Walk rate

9.1%9.7%’03’10’25’262003: 9.1%2010: 9.7%2025: 9.1%2026: 9.4%

BABIP

.297.316’03’10’25’262003: .2962010: .3082025: .3122026: .317

League ERA

4.294.64’03’10’25’262003: 4.272010: 4.582025: 4.312026: 4.66

The spread of regulars, season by season

Histograms of qualified hitters' wRC+ in bins of ten, with a normal curve at each season's mean and standard deviation. wRC+ is measured against each season's own league, so 100 is average in every panel.

2003n 40 · SD 39.9 · IQR 59 · skew 0.30

051030: 03040: 250: 060: 170: 27080: 690: 4100: 4110: 2110120: 4130: 3140: 3150: 2150160: 2170: 1180: 2190: 2190100

2010n 45 · SD 30.2 · IQR 41 · skew 0.39

051030: 03040: 050: 160: 170: 17080: 590: 5100: 5110: 6110120: 6130: 5140: 4150: 4150160: 0170: 0180: 1190: 1190100

2025n 43 · SD 28.0 · IQR 32 · skew 0.66

051030: 03040: 050: 060: 170: 07080: 190: 6100: 7110: 6110120: 9130: 5140: 0150: 3150160: 2170: 1180: 1190: 1190100

2026n 48 · SD 30.5 · IQR 44 · skew 0.62

051030: 03040: 050: 160: 070: 17080: 1090: 4100: 6110: 8110120: 2130: 5140: 5150: 2150160: 1170: 0180: 2190: 1190100
Measure2003201020252026
Clubs · team games8 · 1338 · 13310 · 14410 · 144
Runs per team-game4.644.984.735.07
Batting average.269.270.262.268
On-base percentage.345.351.338.346
Slugging percentage.414.406.389.404
Home runs per PA2.58%2.38%2.13%2.41%
Strikeout rate14.8%16.9%19.7%19.5%
Walk rate9.1%9.7%9.1%9.4%
BABIP.296.308.312.317
League ERA4.274.584.314.66
wRC+ SD, qualified39.930.228.030.5

Method

Every league figure is rebuilt from the clubs' batting and pitching totals in each snapshot, the same way the rest of the site builds this season's environment. wRC+ is measured against each season's own league average, so the histograms compare spread, not level. Qualified means 3.1 plate appearances per team game.

The season-on-season test on runs treats each team-game as one draw with this season's per-game standard deviation of 3.44 runs; last season's game log is not on disk, so its spread is assumed to match. The strikeout test is a two-proportion z-test on plate appearances. The standard deviation's uncertainty uses the normal approximation SD ÷ √(2(n − 1)).

Four seasons are four snapshots, not a trend line: anything between them — rule changes, the ball, the league growing from eight clubs to ten in 2013 and 2015 — is invisible here. The current season is incomplete. The archived snapshots come from the same record centre but were scraped years after the fact, and team games per season changed with the schedule. No park factors in any era.