Originally published July 17, at the All-Star break; re-priced through the games of August 15, 2026. Six weeks of season remain, and every fan of a team within shouting distance of a race is doing the same thing: scrolling the schedule and counting the soft spots. I did the counting properly. I pulled every 2026 regular-season game still to be played — 576 of them, from the public MLB Stats API schedule feed — and priced each club’s remaining slate by the current winning percentage of the opponents on it, weighted by how many times they still meet. Two findings, and they pull in opposite directions. First, the honest one: the spread is small, and it shrinks as the season does — the hardest remaining road in baseball (the Reds’ opponents sit at .551) and the softest (the Guardians’ at .454) now differ by under four wins’ worth of schedule, and most contenders live within one win of neutral. Second, the interesting one: the schedule’s clearest thumb on a scale rests, for the second check in a row, on a Central division — but this time it’s the NL, where the Cubs chase the Brewers four games back while facing the hardest contender slate in the league.
The method, and one worked example
Strength of schedule here is the simplest defensible version: for each team, take every opponent left on its slate, weight that opponent’s current winning percentage by the number of remaining meetings, and average. I pulled the full 2026 schedule (2,458 regular-season entries), kept every game not yet decided as of the August 16 snapshot, and dropped the 27 postponed entries whose makeup dates already appear as separate games — after that housekeeping, every club’s completed-plus-remaining games sum back to its 161 or 162. Opponent records come from the site’s live standings snapshot, the same file behind the 2026 season tracker.
The Guardians, end to end — still the league’s softest road, just as they were at the break. They have 38 games left: six against the Royals (.403), four against the Tigers (.488), and three-game sets against the Giants, Rockies, Angels, Blue Jays, Orioles, Twins, White Sox, Athletics and Red Sox, plus a single game against the Padres. Multiply each opponent’s win% by the meetings, sum, and divide: 17.26 expected-opponent-wins’ worth over 38 games, or a weighted opponent win% of .454. To turn that into something a standings-watcher can use, compare it with a neutral all-.500 slate: (.454 − .500) × 38 = −1.7 wins of schedule, the softest figure in baseball. Thirty-one of those 38 games — 82 percent — come against teams currently under .500. The bitter footnote for Cleveland: at the break they were tied for first with that gift of a slate ahead of them; they have since fallen five games back, which is what happens when the schedule is the only thing breaking your way.
The league at a glance
Read the axis before the team names, because the axis is the finding: the entire league fits between −1.7 and +2.0, tighter than the ±2.4 of mid-July for the simple reason that fewer games are left to tilt. The standard deviation of remaining-opponent win% across the 30 clubs is .019, which over a typical 38 remaining games is about 0.7 wins. Schedule tilt in mid-August is real, computable, and mostly worth less than one swing game — while a .500 team’s 38-game record carries a binomial standard deviation of about three wins. Anyone selling you a September narrative built primarily on strength of schedule is selling rounding error — with one exception I’ll get to.
The hardest road in baseball belongs to a non-contender, and it is brutal in a way July’s leader never was: the Reds (.551, +2.0), buried 16 games back, still owe seven games to the Dodgers, six to the Cubs, six to the Brewers and three to the Braves — 22 of their final 40 against teams playing .580 ball or better. One structural note on the other tail: the correlation between a team’s own win% and its remaining opponents’ win% now runs slightly positive (+0.18, up from −0.09 in July) — the soft end of the chart is crowded with American League clubs, contenders included, while the NL’s powers still owe each other a stack of head-to-head games. Either way, a correlation that small is indistinguishable from noise on thirty points.
| Race | Team | W–L | GB | Left | H/R | Opp win% | Tilt (wins) |
|---|---|---|---|---|---|---|---|
| AL East | Rays | 74–48 | — | 40 | 20/20 | .504 | +0.2 |
| AL Central | White Sox | 64–58 | — | 40 | 20/20 | .483 | −0.7 |
| Tigers | 60–63 | 4.5 | 39 | 19/20 | .494 | −0.2 | |
| Guardians | 60–64 | 5.0 | 38 | 20/18 | .454 | −1.7 | |
| Twins | 60–64 | 5.0 | 38 | 19/19 | .489 | −0.4 | |
| AL West | Astros | 63–61 | — | 38 | 20/18 | .484 | −0.6 |
| Rangers | 61–63 | 2.0 | 38 | 22/16 | .497 | −0.1 | |
| Mariners | 58–66 | 5.0 | 38 | 19/19 | .472 | −1.1 | |
| NL East | Braves | 73–50 | — | 39 | 17/22 | .525 | +1.0 |
| NL Central | Brewers | 76–48 | — | 38 | 18/20 | .515 | +0.6 |
| Cubs | 72–52 | 4.0 | 38 | 20/18 | .530 | +1.1 | |
| NL West | Dodgers | 74–50 | — | 38 | 19/19 | .485 | −0.6 |
What changed since the break — and the races that are left
The July version of this piece built its story on a literally tied AL Central, where Cleveland’s soft slate loomed as a 1.7-win thumb on the scale against a White Sox club propped up by close-game luck. The five weeks since have been a lesson in how much more the games matter than the calendar: the White Sox — whose 19–13 one-run record at the break our one-run piece flagged as exactly the kind of edge that evaporates — have played close to .500 since (14–13) and grown the lead anyway, because everyone chasing them collapsed. Chicago now leads the Tigers by 4.5 and the Guardians and Twins by five. Cleveland still holds the league’s softest schedule, and it no longer matters much: a −1.7-win tilt is real, but it does not pay back five games in six weeks against three other clubs.
The races that remain are two, plus a formality check. The AL West is the closest thing to July’s coin-flip: the Astros lead the Rangers by two, and the schedule declines to pick a side — Houston’s tilt is −0.6, Texas’s −0.1, a half-win difference that is smaller than the noise on either. Texas does get a 22/16 home-heavy finish, but at 2026’s home-field advantage that six-game surplus prices out at about a third of a win. That division will be settled by play, not by the calendar. The NL Central is the exception this update inherits from July, with the roles intact and the deficit shrunk: the Cubs sit four back of the Brewers and face the hardest contender slate in baseball (.530, +1.1) while Milwaukee’s is half as tilted (.515, +0.6) — a half-win headwind on a four-game deficit, with the seven remaining head-to-head meetings the only lever that can move it fast. Head-to-head games remain the one part of a schedule no strength number can arbitrate.
Elsewhere the schedule has stopped mattering because the standings did the sorting. The Rays lead the AL East by 6.5 over the Yankees with a dead-neutral slate (+0.2); the Braves’ NL East lead is 7.5 over the Phillies, which makes Atlanta’s league-second-hardest road (.525, +1.0, and a 17/22 road-heavy finish) an inconvenience rather than a risk; and the Dodgers, up eight with a −0.6 tilt, have reduced the NL West to a formality — their remaining interest is the run-differential ledger, not the standings.
Home and road: even smaller than you think
The other thing fans count is home dates, so I priced those too. Home teams have won 973 of 2026’s 1,855 completed games — a .525 rate, on the low side of the historical .530–.540 band. At that rate, each game shifted from road to home is worth about 0.05 wins. The most home-heavy remaining schedule in baseball is the Yankees’ 23 home against 16 road; that seven-game surplus is worth roughly 0.3 wins. The worst deficit — the Cardinals’ 15 home against 24 road — costs about 0.4. Home-road imbalance in a remaining schedule is, at 2026’s home-field advantage, close to a pure nothing: I computed it so you don’t have to.
Limitations, stated plainly
Three honest problems with any remaining-SOS number, including mine. First, it is a snapshot pretending to be a forecast: I priced opponents at their August 15 win%, and while the July 31 trade deadline has at least already reshaped these rosters, September call-ups and injuries will keep remaking them, and season-to-date records only partly predict September play. Second, current win% is itself contaminated by the very luck this site keeps writing about, and it makes no iterative opponent-of-opponent adjustment the way Baseball-Reference’s SRS does; a team also never plays itself, which nudges the own-record correlation noted above. Third, and most important: the spread is small relative to noise. A .500 team’s 38-game record has a binomial standard deviation of about three wins — nearly the entire league-wide schedule spread. Outside the Cubs’ chase, every contender gap in the table is smaller than one swing game, and I would treat it accordingly.
Reproduce it
The bundled snapshot is data_layer/remaining_schedule_2026.json, built by data_layer/build_remaining_schedule.py from the MLB Stats API schedule endpoint (/api/v1/schedule?sportId=1&season=2026&gameType=R across the full season date range), joined to the standings snapshot for opponent records. A game counts as remaining if its status is not Final at retrieval; Postponed entries are dropped because their makeups appear as separate entries. The whole computation is a weighted mean:
for each team T:
opp_pct(T) = sum(win%[opp] * games_left_vs[T][opp]) / remaining_G[T]
tilt_wins(T) = (opp_pct(T) - 0.500) * remaining_G[T]
# Guardians: 17.26 / 38 = .454 -> (.454 - .500) * 38 = -1.7 wins
# league: mean opp_pct = .500, sd = .019 (~0.7 wins over 38 games)
The chart is charts/chart_remaining_sos.py; it reads only the JSON, so re-running the builder any morning re-prices every schedule in the league — which is exactly how this August re-pricing was produced. Home-field value comes from the same snapshot’s completed games (973 home wins in 1,855 decided).
Sources & Further Reading
- 2026 remaining schedule and completed-game results: MLB Stats API schedule endpoint (gameType=R), bundled as
data_layer/remaining_schedule_2026.json(retrieved 2026-08-16; games not yet final at retrieval counted as remaining). - Opponent records: MLB Stats API standings, bundled as
data_layer/mlb_2026_standings.json(1,854 games played at the snapshot). - The weighted mean, and why a distribution’s spread matters as much as its center, are covered in Chapter 6: Numerical Summaries: Center, Spread, and Shape (free, DataField.dev).
- Sports-Reference, “SRS Calculation Details” — the iterative, opponent-adjusted rating this simple snapshot method deliberately is not.