Quietly, without a juiced-ball scandal or a rules shakeup to pin it on, scoring is back. Through the games of July 6, the 2026 season is producing 9.04 combined runs per game — both teams together — which is up from 8.89 across all of 2025, up from 8.79 in 2024, and higher than every full season since 2023. If the rate holds, 2026 will be the third-hottest run environment of the last twelve seasons, behind only the 9.66 outlier of 2019 and the pandemic sprint of 2020. That number is the invisible backdrop to every stat you read this year, and it moved.

This piece does three things: puts the 2026 rate in a twelve-season frame, tests whether a July 6 snapshot can be trusted at all (short answer: yes, within about a sixth of a run — I checked four seasons of game logs), and works through what a hotter environment does to the exchange rate between runs and wins.

9.04combined runs/game, 2026 through July 6
8.89the same rate across all of 2025
1,3472026 games in the sample (~90 per team)

What the run environment is, and where 2026 sits

The run environment is just the league’s scoring rate: total runs divided by games played. I’m using the combined form — both teams’ runs in one number — so a “9.04” season means an average game finishes something like 5–4. Divide by two if you prefer the per-team view: about 4.52 runs per team per game right now.

The numbers come from two pulls of the MLB Stats API: full regular-season standings for each season 2015–2025 (which carry every team’s runs scored and games played), and the live 2026 standings as of July 6, with 1,347 games in the books. Total runs over total games, season by season. Nothing modeled, nothing projected.

Bar chart of combined runs per game by MLB season, 2015 through 2026. Values: 8.50 in 2015, 8.96, 9.29, 8.90, then a 9.66 peak in 2019 marked with a dotted reference line, 9.29 in the shortened 2020 season shown in gray, 9.06 in 2021, an 8.57 floor in 2022, 9.23 in 2023, 8.79 in 2024, 8.89 in 2025, and a highlighted red 2026 bar at 9.04 labeled as the season through July 6.
Twelve seasons of scoring rate. 2026 (red, through July 6) is above everything since 2023 — and above the 2015–2025 median season. 2020 (gray) was the 60-game year; a rate stat survives the short schedule fine.
Combined runs per game by season. Data: MLB Stats API regular-season standings, retrieved 2026-07-06.
SeasonGamesRuns/gameNote
20152,4298.50the decade’s floor
20162,4278.96
20172,4309.29the home-run surge
20182,4318.90
20192,4299.66the modern peak
20208989.2960-game season
20212,4299.06
20222,4308.57the recent trough
20232,4309.23new rules year
20242,4298.79
20252,4308.89
20261,3479.04through July 6

Can you trust a July number?

The obvious objection: it’s July 6, roughly 55% of the schedule. Maybe mid-season scoring rates systematically mislead — scoring famously climbs with summer heat, so perhaps a July snapshot lowballs the final number, or the early-season cold drags it some other way. Rather than hand-wave, I pulled the full game log for each of the last four seasons and computed each year’s rate through July 6 against its final rate:

Combined runs per game: season-to-date on July 6 vs. the final full-season rate. Computed from every regular-season game log, MLB Stats API.
SeasonThrough July 6FinalDrift
20228.678.57−0.10
20239.169.22+0.06
20248.778.78+0.01
20258.738.89+0.16

The drift runs both directions and never exceeded 0.16 runs. The summer-heat story shows up some years (2025 added a sixth of a run after July 6) and simply doesn’t in others (2022 fell a tenth). So the honest read is not “9.04 and rising” — it’s that 9.04 is a real reading with an error bar of roughly ±0.15. Even the bottom of that range keeps 2026 above 2024 and 2025.

The cleaner comparison sidesteps the calendar entirely: same date, year over year. On July 6, 2025, the league was scoring 8.73 combined runs a game. On July 6, 2026, it’s 9.04. Apples to apples, scoring is up three tenths of a run per game on last year.

Who is doing the scoring

A league rate hides a wide team spread. At the top of the 2026 scoring table sit the Nationals at 5.33 runs per game — a bats-first profile we flagged in the 2026 run-scoring map — with the Dodgers right behind at 5.31. What makes the Dodgers’ season absurd is the other column: they also allow a league-best 3.52 runs per game (the Brewers are second at 3.66). Leading the league in scoring while nearly leading it in prevention is how you get to 59-32, and it’s tracked live in our self-updating 2026 season dashboard.

Why the environment changes the math

The run environment isn’t trivia; it’s the exchange rate every conversion between runs and wins depends on. Two concrete effects:

The Pythagorean exponent moves. The Pythagenpat refinement of the Pythagorean record (David Smyth’s formula) sets the exponent from the run environment itself:

x = ( (RS + RA) / G ) 0.287

Work it through: in the 8.57-run environment of 2022 the exponent is 8.570.287 ≈ 1.85; at 2026’s 9.04 it’s 1.88; at the 2019 peak it was 1.92. For a team scoring 5.0 and allowing 4.0 runs a game, the shift from the 2022 to the 2026 exponent moves the expected record from 97.5 to 97.8 wins — real, but small. It’s worth knowing mostly because people quote “the” Pythagorean exponent as a constant, when it’s an environment-dependent quantity — a wrinkle that also bears on our finding that 1.69 fit recent seasons better than the textbook 1.83.

A win costs more runs. The classic rule of thumb — roughly ten runs of differential per win, which we measured at 10.7 on 2023–24 data — scales with the environment: the more runs get scored league-wide, the more differential each win requires (the logic runs through the Pythagorean derivative; Tango, Lichtman and Dolphin walk it through in The Book’s framework). A hotter 2026 means a +100 run differential buys slightly fewer wins than the identical differential bought in 2024. When you convert a trade target’s projected runs into wins this summer, the denominator got bigger.

What I’m not claiming

  • I’m not naming the cause. Decomposing a scoring change needs component data — home-run rate, BABIP, walk rate, ball-composition testing, park and weather effects — and this piece runs on run totals alone. The candidate explanations (the ball, the second season of ABS challenges, weather, bullpen usage) are checkable questions, not conclusions you can pull out of a standings file, so I won’t pretend to.
  • Half a season is half a season. The four-year check bounds the likely drift at about ±0.15 runs; it doesn’t make the final number known. If 2026 finishes at 8.9, it was still a hotter-than-2024/25 year at every checkpoint; the ranking claim is more robust than the point estimate.
  • 2020’s 9.29 is a 898-game sample with no fans, regional schedules and seven-inning doubleheaders. I show it because omitting it would be cherry-picking, but treat it as its own animal.
  • Environment is not quality. A hotter league isn’t a better or worse one; it’s a different denominator. Every “is X having a great year” take needs the era context before the adjective.

The bottom line

Scoring in 2026 is running at 9.04 combined runs a game — three tenths above last year at the same date, above every full season since 2023, and closer to the 2017/2023 surge years than to the 2022 trough. A four-season audit of July snapshots says that reading is trustworthy to within about a sixth of a run. The league moved the goalposts a few feet; adjust your mental exchange rate between runs and wins accordingly, and read every 2026 batting line with a slightly inflated baseline in mind.

Reproduce it

Both datasets are bundled and re-buildable. data_layer/build_run_environment.py pulls each season’s regular-season standings from statsapi.mlb.com and writes run_environment_2015_2025.json (total runs, games, and rates per season); data_layer/build_mlb_2026.py pulls the live 2026 standings into mlb_2026_standings.json. The season rate is 2 × sum(runsScored) / sum(team games). The July-6-vs-final table comes from the API’s schedule endpoint (/api/v1/schedule?sportId=1&gameTypes=R for each season), summing home plus away runs for final games on either side of July 6. The chart is charts/chart_run_environment.py.

Sources & Further Reading