Teams that win their opener make the playoffs 53.3% of the time; teams that lose it, 25.3% — a real doubling across 861 team-seasons since 1999. But 43% of the famous record gap is the opener itself sitting in the record, and game 1 predicts the rest of the season no better than any other single game (r = +0.19 vs +0.24). The count, the placebo test, and the honest read.
By C. B. Zakarian · Published July 23, 2026
Every September the same two takes collide. One camp declares the season over after sixty minutes of football ("they're 0-1 and the wheels are off"); the other recites "it's only one game" like a calming mantra. Both takes are checkable, because the nflverse game file records every opener and every final record since 1999. This page counts all of it: 861 team-seasons and 6,967 regular-season games (1999–2025), split by whether the team won or lost its season opener, with the postseason fate of every one of them.
Of the 861 openers, 855 were decided on the field (428 winners, 427 losers — six teams managed to tie theirs). Here is how each group's season ended, next to the all-team base rate:
| Opener result | Team-seasons | Avg final win% | Winning record | Made playoffs |
|---|---|---|---|---|
| Won (1-0) | 428 | .567 | 60.5% | 53.3% |
| Lost (0-1) | 427 | .435 | 31.6% | 25.3% |
| Tied | 6 | .349 | 1 of 6 | 0 of 6 |
| All team-seasons | 861 | .500 | 45.9% | 39.0% |
Read as season pace, the opener winners averaged a 9.6-win pace per 17 games and the losers a 7.4-win pace — a 2.3-win gap from one Sunday. The tails spread even harder: 47.2% of opener winners reached double-digit wins versus 22.2% of opener losers. And the six teams that tied their opener went a combined-average .349 with zero playoff berths, which proves nothing at n=6 but is a fun row to have in the file.
So the "it's only one game" camp is not entitled to a shrug: conditioned on nothing else, a 1-0 team really is about twice as likely to play January football as an 0-1 team. The question is why — and that's where the overreaction camp loses.
Two corrections shrink that headline gap to its honest size.
First, the mechanical part. A 1-0 team's final record contains a win the 0-1 team's record cannot contain — the opener itself is one of the 16 or 17 games being averaged. Of the .132 gap in final win% (2.25 wins per 17), .057 (43.1%) is that single game sitting in the denominator. Strip the opener out and compare only the remaining games: opener winners played .539 football the rest of the way, opener losers .463. Still a real gap — about 1.3 wins per 17 — but a much smaller one than the raw records suggest. Any stat of the form "teams that start 1-0 finish X wins better" is quietly double-counting the start.
Second, the placebo test. If Week 1 carried special information — the "statement game," the "tone-setter" — then the opener's result should predict the rest of the season better than some random mid-season game does. It doesn't. For every game number k, correlate winning game k with the team's win% in all its other games, across all 861 team-seasons:
| Game of season | Correlation with rest-of-season win% |
|---|---|
| Game 1 (the opener) | r = +0.19 |
| Games 2–16, average | r = +0.24 |
| Most predictive single game (game 11) | r = +0.30 |
| Least predictive (game 15, then game 1) | r = +0.19 |
The opener is statistically ordinary — in this sample it's tied for the least informative game of the season, not the most. Winning any single game correlates with winning the others at roughly r = +0.2 to +0.3, for the least mysterious reason in sports: good teams win games, so each win is a small piece of evidence about quality. Week 1's slight edge in noisiness fits what the schedule data show elsewhere — openers are played by rusty teams with new rosters (Week 1 is among the lowest-scoring weeks of the year; see scoring by week). An r of +0.19 squared is 3.7%: the opener explains about one twenty-seventh of the variance in what follows. The other 96% of the season is still up for grabs on Monday morning.
The averages above hide how wide the paths out of Week 1 run. All of these are straight from the game file:
None of this makes 0-1 a good omen — the base rates above say it's a modest negative one. The examples exist to calibrate the tails: a 1-0 start co-existed with the worst season in the sample, and an 0-1 start co-existed with the champion, over and over.
Related machinery on this site: scoring by week (what else is weird about Week 1 football), Pythagorean wins (the better way to read a record of any length), QB continuity (the same symptom-vs-cause trap at season scale), and one-score games (why any single NFL result carries so much noise in the first place).
One public file: games.csv from nflverse nfldata, bundled at /data/games.csv. Build one row per team-game from played regular-season games, flag each team's first game of the season, and aggregate. Playoff appearance means the team shows up in any postseason row (game_type of WC/DIV/CON/SB) that season. The chart and the full console breakdown come from explainer_src/make_week1_chart.py; the core is a dozen lines of pandas:
import pandas as pd, numpy as np
df = pd.read_csv("data_layer/games.csv")
reg = df.dropna(subset=["home_score", "away_score"])
reg = reg[reg.game_type == "REG"] # 6,967 games, 1999-2025
h = reg.rename(columns={"home_team": "team", "home_score": "pf", "away_score": "pa"})
a = reg.rename(columns={"away_team": "team", "away_score": "pf", "home_score": "pa"})
cols = ["season", "week", "gameday", "team", "pf", "pa"]
tg = pd.concat([h[cols], a[cols]])
tg["w"] = np.where(tg.pf > tg.pa, 1.0, np.where(tg.pf == tg.pa, 0.5, 0.0))
tg = tg.sort_values(["season", "team", "gameday", "week"])
tg["g"] = tg.groupby(["season", "team"]).cumcount() + 1 # 1 = opener
ts = tg.groupby(["season", "team"]).agg(games=("w", "size"), pts=("w", "sum"))
ts["opener"] = tg[tg.g == 1].set_index(["season", "team"])["w"]
ts["final"] = ts.pts / ts.games # ties as half a win
ts["rest"] = (ts.pts - ts.opener) / (ts.games - 1)
won, lost = ts[ts.opener == 1.0], ts[ts.opener == 0.0]
print(len(won), len(lost)) # 428 427
print(won.final.mean(), lost.final.mean()) # .5673 .4348
print(won.rest.mean(), lost.rest.mean()) # .5388 .4634
print((won.final > .5).mean(), (lost.final > .5).mean()) # .605 .316
print(np.corrcoef(ts.opener, ts.rest)[0, 1]) # +0.192
All figures on this page were computed 2026-07-23 on the 1999–2025 file (861 team-seasons; the 2026 schedule rows carry no scores yet and drop out of the played-games filter). Numbers will shift slightly as future seasons append.
Data: nflverse/nfldata, public. Playoff fields were 12 teams through 2019 and 14 from 2020; ties count as half a win; the six tied openers (2018 Steelers–Browns, 2019 Cardinals–Lions, 2022 Texans–Colts) are excluded from the won/lost split.
Want the code behind these metrics? Work through the 45-chapter NFL analytics tutorial.
Browse tutorials Free tools