The season opens across four days: a Wednesday Super Bowl rematch in Seattle, the league's first regular-season game in Melbourne, and five division games all kept out of the 1:00 window. The 16 pairings carry 393 prior regular-season meetings since 1999 — five annual series with 54 apiece, New England–Seattle just six — and the extremes run from Miami's 13-3 ledger over Las Vegas to Cleveland's 3-23-1 opener record. Every head-to-head computed from the file.
By C. B. Zakarian · Published August 12, 2026
The 2026 season opens with 16 games across four days: one on Wednesday, September 9, one on Thursday, thirteen on Sunday the 13th, one on Monday the 14th. Sunday splits into eight kickoffs at 1:00 PM ET, four at 4:25, and a night game at 8:20; the week's earliest start is that 1:00 window, its latest the 8:35 PM Thursday game. Five of the 16 are division games — and none kicks off at 1:00: all five sit in standalone or late windows (Thursday, two 4:25s, Sunday night, Monday night). This page walks the slate game by game with each pairing's head-to-head ledger from the file; the rest of the preview machinery lives at the 2026 season hub, and the model's frozen week-1 numbers — a win probability for each of these 16 games, locked before kickoff and graded after — live on the prediction ledger.
The two oddities up front. Per the schedule file, the season's first row is New England at Seattle on Wednesday, September 9, 8:20 PM ET at Lumen Field — the schedule-quirks page already covers the calendar side: both clubs get 11 days before week 2, so the odd opener costs neither side anything later. The file doesn't say why it's a Wednesday; league announcements and schedule-release coverage (ESPN, Sky Sports) do: the opener is a rematch of February's Super Bowl, moved up a day to clear the broadcast window for Thursday's game in Melbourne, Australia: the NFL's first regular-season game there, San Francisco at the Rams at the Melbourne Cricket Ground — the row the file marks location = Neutral — kicking off Friday morning local time. As of this writing, reports call it the first Wednesday season start since 2012 and the first week-1 Super Bowl rematch since 2016.
For each of the 16 matchups, count every regular-season meeting in the file from 1999 through 2025, with relocated franchises folded into their current codes (San Diego→LAC, St. Louis→LA, Oakland→LV). The visitor's wins extend left, the host's right:
The 393 prior meetings are distributed feudally: the five division games account for 270 of them, and no other pairing has met more than 18 times. The slate in order, one file-fact per game:
The file holds 428 played week-1 games since 1999. Count each franchise's record in them (relocations folded in) and the range is enormous:
| Franchise | Week-1 record | Win% |
|---|---|---|
| New England | 18-9 | 66.7% |
| Philadelphia | 18-9 | 66.7% |
| Pittsburgh | 17-9-1 | 64.8% |
| Green Bay | 17-10 | 63.0% |
| San Francisco | 17-10 | 63.0% |
| … 22 franchises between … | ||
| Chicago | 11-16 | 40.7% |
| Las Vegas | 11-16 | 40.7% |
| Carolina | 10-17 | 37.0% |
| N.Y. Giants | 9-18 | 33.3% |
| Cleveland | 3-23-1 | 13.0% |
Cleveland's 3-23-1 stands alone: three opener wins in 27 years (2004, 2022, 2023, plus a 2018 tie), six wins behind the next-worst franchise. Philadelphia enters on five straight opener wins; the Giants — Sunday night's host — have lost 11 of their last 13, and the 1:00 window pairs two of the bottom five: Chicago (11-16) at Carolina (10-17). (Some franchises show 24-26 openers: Houston joined in 2002, and five openers slid to week 2.) Before reading anything into these records, the week-1 signal page owns what openers actually predict: opener winners made the playoffs 53.3% of the time versus 25.3% for losers — and game 1 predicts the rest of the season no better than any other single game.
The 2026 week-1 rows already carry market fields, quoted here as of the dataset's pull, not today's board. All 16 games have a spread and total. Home teams are favored in 11, visitors in five (Chicago, Buffalo, Baltimore, Green Bay, Dallas — none by more than 3.5). The widest spread is the Chargers, 11.5 over Arizona; three games sit at 1.5, with Buffalo-Houston's moneylines the closest to even (−112/−108). Seattle opens a 3.5-point favorite over New England; the Rams are 3 over San Francisco in Melbourne. Totals run from 39.5 (Jets-Titans) to 50.5 (Buccaneers-Bengals), averaging 45.2. Lines move daily; treat these as the file's snapshot, nothing more.
roof column, which codes the Melbourne row as a dome and leaves Houston's and Indianapolis' retractables blank until game day; all week-1 rest fields read 7 by convention. The why-Wednesday and Melbourne context is from league announcements and press coverage, accurate as of this writing; every number comes from the file.One public file: games.csv from nflverse nfldata, bundled at /data/games.csv. The slate is the 16 season == 2026, week == 1 rows; every ledger is a filter over the played games. The chart and the full console breakdown — per-day structure, all 16 head-to-heads, the opener record book, and the line fields — come from explainer_src/make_week1_slate_chart.py; the core is a screenful of pandas:
import pandas as pd, numpy as np
df = pd.read_csv("https://nflanalytic.com/data/games.csv")
df[["home_team", "away_team"]] = df[["home_team", "away_team"]].replace(
{"SD": "LAC", "STL": "LA", "OAK": "LV"})
wk1 = df[(df.season == 2026) & (df.game_type == "REG") & (df.week == 1)]
print(len(wk1), wk1.weekday.value_counts().to_dict(), int(wk1.div_game.sum()))
# 16 {'Sunday': 13, 'Wednesday': 1, 'Thursday': 1, 'Monday': 1} 5
reg = df[df.home_score.notna() & (df.game_type == "REG")] # 6,967 played games
for _, g in wk1.iterrows():
a, h = g.away_team, g.home_team
m = reg[((reg.home_team == a) & (reg.away_team == h)) |
((reg.home_team == h) & (reg.away_team == a))]
ap = np.where(m.home_team == a, m.home_score, m.away_score)
hp = np.where(m.home_team == h, m.home_score, m.away_score)
print(a, "at", h, f"{(ap > hp).sum()}-{(hp > ap).sum()}-{(ap == hp).sum()}",
int(ap.sum()), int(hp.sum())) # e.g. SF at LA 30-23-1 1248 1113
w1 = reg[reg.week == 1] # 428 openers
for t in sorted(set(wk1.home_team) | set(wk1.away_team)):
g = w1[(w1.home_team == t) | (w1.away_team == t)]
w = (((g.home_team == t) & (g.result > 0)) |
((g.away_team == t) & (g.result < 0))).sum()
tie = (g.result == 0).sum()
print(t, f"{w}-{len(g) - w - tie}-{tie}") # CLE 3-23-1 ... NE 18-9-0
All figures on this page were computed 2026-08-12: the slate from the file's 16 week-1 rows, the ledgers and opener records from its 6,967 played regular-season games (1999–2025). Nothing here is hand-entered.
Data: nflverse/nfldata, public. Head-to-head ledgers count regular-season games only; the Super Bowl-rematch and Melbourne context is per league announcements and schedule-release reporting (ESPN, Sky Sports, NFL.com, the MCG), as of this writing.
Want the code behind these metrics? Work through the 45-chapter NFL analytics tutorial.
Browse tutorials Free tools