Baseball’s last two weeks are the quietest scoring stretch of the season, and the margin is not close. Across the fifteen regular seasons from 2010 through 2025, with 2020 left out, games played from September 16 to the end of the schedule produced 8.526 combined runs a game. The 33,165 games before that date produced 8.849. The difference is 0.323 runs a game, 3.65 percent of the league’s scoring, and it puts the closing fortnight below April — the cold month everyone already discounts — by a sixth of a run.

What makes that worth writing down is the half-month immediately before it. September 1 through 15 is the highest-scoring period of the entire season: 8.976 runs a game, ahead of August’s 8.947 and every other stretch of the calendar. September is not a cold month. It is two months stapled together, and as of today, September 17, the league has just crossed the seam.

8.526combined runs per game from Sept. 16 to season’s end, 2010–2025 (3,280 games)
8.976September 1–15, the highest-scoring period of the year (3,060 games)
−0.325mean gap per season, t = −4.89, lower in 13 of 15 seasons
1452026 games left after Sept. 16, all of them inside the window

The shape of a season

Here is the whole calendar, pooled across the fifteen seasons. Every figure comes from Retrosheet’s regular-season game logs, and every club’s wins, losses, runs scored and runs allowed in the parse were checked against the MLB Stats API’s own final standings before any of it was tallied.

Combined runs per game by period, 2010–2025 (2020 omitted). Data: Retrosheet game logs, reconciled against the MLB Stats API.
PeriodGamesRuns/gameHR/gameK/game
March2599.0352.2717.44
April5,5618.6852.0716.22
May6,2868.7422.1615.88
June6,0388.8972.2415.92
July5,6728.8892.2316.01
August6,2898.9472.3015.98
Sept. 1–153,0608.9762.2716.43
Sept. 16–end3,2808.5262.1016.57

March is 259 games of season openers and we show it for completeness, not for weight. The full months tell a tidy story: scoring climbs out of April, plateaus through midsummer, peaks in the first half of September, and then falls off a step no other month matches.

Two-panel chart titled baseball's last two weeks, scoring falls 0.323 runs a game, 2010 to 2025. Left panel: combined runs per game by period, with a navy line for the 2010 to 2025 pooled average and a gold dashed line for 2026 through September 16. The navy line reads 9.04 in March, 8.69 in April, 8.74 in May, 8.90 in June, 8.89 in July, 8.95 in August, a labeled peak of 8.976 for September 1 to 15, and a red highlighted endpoint of 8.526 for September 16 to the end of the season, below a dashed reference line at the 8.849 average through September 15. The 2026 line is more volatile, running 8.62, 9.11, 8.61, 9.35, 9.01, 8.70, a 9.51 spike for September 1 to 15, and 8.47 for its single day inside the late window. Right panel: bars showing each season's late-window rate minus that season's rate through September 15. Thirteen of the fifteen bars are negative and drawn in red, from minus 0.589 in 2013 and minus 0.581 in 2025 to minus 0.083 in 2015; two are positive and drawn in navy, plus 0.230 in 2011 and plus 0.059 in 2018. A dashed line marks the mean of minus 0.325 runs a game, and the panel title reads down in 13 of 15 seasons, t equals minus 4.89.
Left: the season’s scoring curve peaks in the first half of September, then drops to its floor. 2026 (gold) has been noisier than the pooled history all year and entered the window on a 9.51 tear. Right: the same gap measured inside each season, so no era effect can manufacture it.

It is not an artifact of where we cut

The obvious objection is that September 15 is a line we drew. So we moved it. Cutting after September 10 gives a gap of −0.284 runs a game; after the 13th, −0.291; after the 15th, −0.323; after the 16th, −0.348; after the 18th, −0.315; after the 20th, −0.390. Every cut lands between a quarter and two-fifths of a run. The boundary moves the number a little and the conclusion not at all.

Cut finer and the slide is visible day by day. September 1–5 runs 9.394, then 8.824, then 8.708, then 8.685, then 8.608, then 8.492 over the 26th through the 30th — six consecutive five-day blocks, each one lower than the last. The handful of regular-season games that spill into October, 333 of them across the fifteen seasons, produced 7.880. Measure the same thing by each season’s own finish line rather than by the calendar and it holds: the last five days of a season score 8.247, the lowest block on the board.

Nor is it one or two strange years carrying the average. Measuring inside each season — that season’s late window against that season’s own rate through September 15 — the gap is negative in 13 of 15, with a mean of −0.325 and a standard deviation of 0.256, which puts the mean 4.89 standard errors from zero. The two exceptions are 2011 (+0.230) and 2018 (+0.059); the deepest are 2013 (−0.589), 2025 (−0.581) and 2019 (−0.562). One caveat we will not bury: pooled, the late window is the season’s floor, but season by season it finishes last among the full periods only 8 times in 15. The signal is a league-level one, and individual seasons are noisy enough to hide it.

What actually disappears

Runs are a compound of things, and the components move in a way that is at least legible. Set the season through September 15 against the closing window:

Per-game rates, both clubs combined, 2010–2025. Data: Retrosheet game logs.
MeasureThrough Sept. 15Sept. 16–endChange
Runs8.8498.526−0.323
Home runs2.2062.104−4.6%
Strikeouts16.04816.571+0.52
Walks6.2406.271+0.03
Batting average.2511.2467−4 points
Pitchers used8.249.15+0.91

Fewer homers, more strikeouts, four points off the batting average, and walks unchanged. That is the signature of contact getting worse rather than of hitters getting more passive, which is roughly what the home-run-to-run-scoring relationship would predict if the ball stopped carrying. It is also what you would expect from colder air, and the season’s other cold end supports the reading: April sits at 8.685 with the year’s second-lowest home-run rate. We have no temperature data in this dataset, so that is a consistency, not a proof.

The mechanism people usually reach for is the roster. Clubs may carry 28 players in September instead of 26, and before 2020 they could activate anyone on the 40-man. Pitchers used per game does jump, from 8.24 to 9.15. But it jumps in both halves of September — the September 1–15 figure is 8.97, and that is the highest-scoring stretch of the year — so extra arms cannot explain a direction change. The era split closes the door. Under the old 40-man Septembers of 2010–2019, pitcher usage rose from 8.07 to 9.23 and the gap was −0.308. Under the 28-man cap of 2021–2025, usage rose only from 8.57 to 9.01 and the gap was larger, −0.355. Cap the call-ups and the slide gets no smaller.

Whose runs go missing

Split the 450 team-seasons by final winning percentage and the loss is not evenly shared. Clubs that finished at .550 or better scored 4.807 runs a game through September 15 and 4.790 after it — a change of 0.017, which is nothing. Clubs between .450 and .550 dropped 0.198. Clubs under .450 dropped 0.261. Meanwhile every group allowed fewer runs late, the good clubs most of all (−0.199).

Good offenses do not fade in the last two weeks; bad ones do, and everyone’s pitching plays better. This site has already tested the nearby claim that out-of-contention clubs stop competing and found that they do not stop winning — a quarter of a win per September, well inside the noise. Runs are a finer instrument than wins, and they show something the win column cannot: the bottom of the league scores less in the closing fortnight while the top of it does not. Whether that is rested regulars, a young lineup, or a September schedule that hands contenders the weaker end of the pitching pool, run totals alone cannot say.

A worked example: Houston’s cold fortnight

The practical use of a league-wide effect is to subtract it before you blame anybody. Take the Astros, who through the games of September 15 had scored 673 runs in 151 games, a rate of 673 ÷ 151 = 4.457 per game, and who then scored 43 runs in their 13 games from September 1 to 15: 43 ÷ 13 = 3.308. That is a fall of 1.149 runs a game, the largest in baseball over that stretch, and it arrived exactly when a team with something to play for least wants it.

The calendar adjustment is one multiplication. The closing window historically runs at 8.526 ÷ 8.849 = 0.9635 of the pre-September-16 rate, so the Astros’ season-long rate translates to an expected:

4.457 × 0.9635 = 4.294 runs per game over their last 10 games, against 44.57 runs at the naive rate — a difference of 1.6 runs across the stretch.

So the calendar is worth 0.163 runs a game to Houston, about one-seventh of the 1.149 they actually lost. Six-sevenths of that slump is Houston. Run the same arithmetic on the other end — the Brewers scored 97 runs in 13 games from September 1 to 15, a 7.462 rate against a season figure of 5.185 — and the adjustment expects 4.996 a game from them the rest of the way, a long way under what the last fortnight would suggest. The effect documented here is real, statistically clean, and far too small to explain any single club’s two weeks. That is the honest use of it.

2026 crosses the line today

These numbers were pulled on the morning of September 17, before any of that day’s games, and run through the games of September 16: 2,285 decided games and 20,526 runs, a season rate of 8.983. Through September 15 the season sat at 8.986, and its September 1–15 stretch was extraordinary — 9.512 runs a game over 201 games, more than half a run above the 15-season norm for that window, with home runs at 2.44 a game against a season figure of 2.30. The first day inside the window, September 16, produced 8.467 across 15 games, which is one day and means nothing yet.

What is left is 145 games, every one of them after September 15, through a final scheduled day of September 27. If the historical gap holds, 2026’s rate through September 15 translates to 8.986 × 0.9635 = 8.658 runs a game the rest of the way, and the league scores roughly 47 fewer runs over those 145 games than its own season rate implies. That is the backdrop for every remaining race — the strength-of-schedule map prices opponents, this prices the calendar — and for every September batting line that is about to look worse than the season that produced it. The live table is in the 2026 dashboard, and the season-long scoring context in the run-environment piece, which flagged the summer-heat question this one answers.

Limitations, stated plainly

This runs on run totals and game logs, which bounds what it can claim. There is no temperature, wind or park-mix data in it, so “cold weather” stays a plausible reading rather than a finding; the share of day games actually falls slightly in the window (34.9% to 32.3%), which rules that out as the driver but not much else. The period boundaries are this piece’s choice, and while the sweep above shows the result survives every reasonable cut, October games are only 333 of 3,280 and they are the most extreme; drop them entirely and the September 16–30 window still comes in at 8.599, a gap of −0.250. The t-statistic treats fifteen seasons as fifteen independent draws, which overstates precision if scoring regimes persist across years — and they plainly do, which is exactly why the gap is measured inside each season rather than against a pooled mean. The .550 and .450 splits are bright lines chosen after seeing the monotone pattern, not before. And a league-average factor applied to one club assumes the effect scales with a team’s own rate, which is an assumption, not a measurement. It is a small adjustment used as a small adjustment; a club’s own thirteen games carry several times more noise than the entire calendar effect.

Reproduce it

Two frozen files from one pull. data_layer/late_scoring_2010_2026_2026-09-17.json carries, for every season 2010–2025 plus 2026, a day-level league table (games, runs, home runs, strikeouts, walks, at-bats, hits, pitchers used, day games) and a team-by-period table of games, wins, runs scored and runs allowed. It is built by data_layer/build_late_scoring_2010_2026.py from Retrosheet game logs and the MLB Stats API, and every club’s W, L, runs scored and runs allowed must match the API’s standings exactly or the build aborts; 2026’s component rates come from the API’s byDateRange endpoint and are cross-checked against the schedule feed in all four windows. The second file is data_layer/mlb_2026_standings_2026-09-17.json. The chart-and-verification script charts/chart_late_scoring.py recomputes every figure above from those two files and asserts each against the published value — the period table, the component table, all fifteen season gaps, the six boundary cuts, the September blocks, the blocks before each season’s final day, the era split, the three club groups, the 2026 figures and both worked examples.

Sources & Further Reading