The complete guide to football analytics for sports betting, fantasy football, and data science. Learn EPA, win probability, and data-driven decision making.
Kickoff is September 9. The season hub, the frozen prediction ledger, and the opening slate — every number derived, graded in public.
Every 2026 page in one place: the schedule analysis, all eight division previews, and a tracker page for each of the 32 teams.
Open the season hubA frozen win probability for every 2026 game, published before kickoff and graded after. Week 1 is locked; misses stay on the page.
See the predictionsSixteen openers across four days — a Wednesday Super Bowl rematch, Melbourne, and every pairing's head-to-head ledger since 1999.
Read the slateFree interactive calculators for NFL analytics, betting, and fantasy football
Calculate Expected Points for any down, distance, and field position situation.
Use ToolShould you go for it, punt, or kick? Analyze the optimal fourth-down decision.
Use ToolEstimate win probability from the score margin, time remaining, and which side has the ball.
Use ToolFind +EV bets by comparing your probability estimates to betting odds.
Use Tool102 plain-English studies of the advanced numbers — each one the formula, a chart built from the bundled game log, and the caveat that keeps you from over-reading it. Latest September 12, 2026
The library runs from the metrics a broadcast quotes — expected points, DVOA, success rate, CPOE — through the structural effects that move games (home field, rest, weather), to the market studies that test what the betting line already knows (spread accuracy, road favorites, key numbers). The 12 newest are below; the rest are indexed on the explainers page.
San Francisco 27, Rams 7 moved two ratings 34.4 points, and this page carries the move through both seasons. From the ledger's own ratings the 49ers' expected record went from 9.50 wins to 10.84 and the Rams' from 10.60 to 9.28, and their chances of ten or more wins crossed, 50% to 76% and 72% to 46%. The site's own 20,000-season simulation, re-run after reproducing its published table, moves the 49ers' playoff odds from 55.5% to 80.7% and the Rams' from 76.6% to 51.5%. Is one game worth that much? Across 766 team-seasons since 2002, the remaining season moved 1.01 times as far as week 1 re-priced it (SE 0.28). Blowouts ran a little further than priced, not significantly, and a pooled base rate is still not a forecast for the Rams.
The ledger is one for two, and by Monday people will read a week into the season. Across the sixteen seasons this model has graded, a season's week-1 record against its own stated confidence correlates .13 with the rest of that season (95% interval −.39 to .59), no other week does better, and a season's odd games do not predict its even ones (.023). The reason is that the model has no detectable good or bad years: its seasons scatter 2.40 points around their stated confidence where coin flips alone would scatter 2.88, chi-square 10.55 on 15 degrees of freedom. At the most real spread the data allow, 1.92 points, a sixteen-game week is worth 2.55% of its surprise, and the 1–1 start shades the rest of 2026 by a tenth of a game.
The model's .5789 on the Rams lost by twenty in Melbourne, and the ledger reads one for two at a Brier of .2193. This page grades the site's own pre-registrations against the miss: the rule landed the 49ers fifth and the Rams eighth exactly where yesterday's ladders said a nineteen-plus-point 49ers win would, six rows changed inside the published four-to-eight, and the 34.4-point move is a 94th-percentile night against 7,276 historical moves. Then the harder part. A .58 pick losing by twenty is one draw from a distribution that produces one about every nineteen games in the .55–.60 band; separating .5789 from a coin takes 157 of them. The market moved toward the Rams before kickoff, its second move toward a loser in two games. The miss budget is heavier by .58. The miss is owned at full price.
Thirteen of the sixteen week-1 games kick on Sunday, all unplayed, and this page treats them as one object. The exact distribution of how many of the ledger's thirteen frozen picks land has its mode at eight (22.6%), expects 8.08, and gives a losing Sunday 17.9%; nine or more, the count that leaves the season budget under its opening 99.11, is 41.1%. The market, asked the same question about the model's picks from Friday's lines, says 7.86, 21.0% and 36.0%, agrees on ten of thirteen games and sides against the model on three: Miami at Las Vegas (18.9 points apart), the Giants over Dallas, Houston over Buffalo. Between June and September 11 the market moved its opinion of this board by one-twentieth of a game. Five top-ten teams play; between three and seven top-ten seats change hands; Seattle is first in all 8,192 outcomes.
Seattle 13, New England 10, and the model's .6785 is one for one. This page grades the site's own pre-registrations: the move landed on Tuesday's table to the hundredth — +8.42, a 13th-percentile night against 7,276 historical moves — the 24-point crossover never came into play, and no week-2 pick flipped. Then the harder part. Four pre-kickoff numbers all picked Seattle, so the winner separated none of them; the model's .1033 Brier beats the June market's .1262 and a records-only .1861 only because it was the most confident, and the order reverses in the counterfactual. The spread pushed at the close. The miss budget is .32 lighter. One game grades a pick; it cannot grade a probability.
One game graded and the rankings did not change: Seattle rose 8.4 to 1683.0 and is still first, New England fell 8.4 to 1584.4 and is still sixth, and the other thirty numbers are untouched. What moved is the gaps — Seattle's lead over Buffalo from 58.7 to 67.1, New England's hold on sixth from 11.6 to 3.2. Since 2000, 905 of 7,017 games changed no rank at all, and three season openers did the same, 2025 among them. Tonight is different: San Francisco and the Rams in Melbourne are priced at .5789 on a neutral field, any Rams win makes them second, any 49ers win drops the Rams to fourth or fifth and lifts the 49ers three to five places, and the widest result rearranges eight rows. Priced both ways, before kickoff.
Two forecasters that share no inputs post their worst week in the same week. The market's closing spread misses by 10.97 points in week 10 against 10.26 overall; this site's Elo picks winners at .5856 there against .6458. Shuffle the week labels 20,000 times and a random calendar's worst week is at least that bad 65% of the time on the market side and 42% on the model's, and the coincidence itself happens 11% of the time. Week 10 has been worse than its own season in 15 of 27 years, five of which supply the entire effect; strip them and it is 0.31 points better. The peak-bye explanation runs backwards — the bye games are the calm third of week 10 — and a simulated 2026 season of pure .6458 coins has a 6-and-8 week in it.
Seven teams open 2026 under a new head coach and this site's rating cannot see a single one of them. It does not need to. Teams that changed coaches gained 8.12 points of win percentage against a 2.39-point decline for teams that kept theirs — 5.8 standard errors — but they had gone .3529 the year before against .5441, and holding last season's record fixed turns the bounce into −2.80 points (SE 1.46) and −17.7 points of differential. The model is unbiased on exactly the teams it is blind to: +1.17 percentage points on 1,921 team-games, cluster-robust SE 1.22, and .6465 accuracy against .6456. The market is the only party that pays — about a third of a point of spread, three times as much for a coach who has run a team before, and it does not come back.
New England and Seattle both went 14–3 and the frozen board has them 81.8 rating points apart — a wider gap than it sees between Seattle and Buffalo. The gap is inherited, not earned: the model gave New England +201.3 points across 2025 against Seattle's +176.6, and the Patriots still trail because they opened last season 137.2 behind after two 4–13 years. The accounting runs 137.2 to 112.4 to 122.7, then 81.8 once August took a third. And when two identical records meet, the rating has been right: across 328 such games since 2010 the higher-rated side won 66.2% with a gap of 80 to 120 and 78.9% above it, against 50.9% under 40. Tonight the model says 67.9% and the vig-free market 64.5%.
The 2026 board has not moved since August 12 and the first game to touch it kicks on Wednesday. The size of that touch is set less by the scoreboard than by which side wins: a field goal for Seattle is worth 8.4 rating points, the same field goal for New England 17.8, and the exchange rate between the branches is fixed at 2.111 — the prior odds on the model's own pick. Every margin is priced here both ways. New England needs to win by 24 to pass Seattle at the top; the whole night spans 77.3 rating points; the largest week-2 price swing available anywhere in the range is 5.0 points of probability, and no pick flips. Against the 7,276 moves this engine has ever made — median 17.05, largest 50.32 — a three-point Seattle win is a 13th-percentile night and a three-point New England win is a 53rd.
Openers are supposed to be the market's soft spot. Across 6,967 regular-season games since 1999 they are instead its shortest numbers: 4.52 points against 5.40 for every other week and 6.63 in week 18, with the average number growing 0.084 points a week (SE 0.011). It is not matchmaking — by last season's records week-1 pairings are no more even than any other week's — it is caution, priced at 22.2 points per unit of measured mismatch against 25.1 later. The caution costs information rather than accuracy: the opening number misses by 10.06 points against 10.28 later, but explains 9.9% of the margin against 19.0%. And it is not exploitable: the calibration slope is 0.919 ± 0.132, favorites went 196–218–10, and the 2026 board's 3.97-point average is exactly the discount the last twenty-six opening weekends took.
The frozen 2026 board is last season's ratings with a third of every deviation deleted, and that deletion is the largest change the model made all offseason — it signed nobody and watched nothing. Seattle handed back 84.8 rating points, the biggest move on the board, worth 1.21 expected wins; Tennessee, Las Vegas and the Jets were given 77.7, 77.0 and 71.7 for free. Seventeen teams paid, fifteen were paid, and the board's spread fell from 487 points to 325. One week-1 pick flips on it, three openers get louder rather than quieter, and 829 team-season pairs say the file itself keeps .634 of a January rating against the engine's .667 — with the worst teams, notably, bouncing back harder than a flat third expects.
From foundational concepts to advanced machine learning techniques, this textbook covers everything you need to master NFL analytics.
Browse All ChaptersData infrastructure, nflverse, wrangling, and visualization basics.
5 ChaptersPassing, rushing, EPA analysis, success rate, and efficiency metrics.
7 ChaptersCoverage analysis, pass rush, run defense, and scheme evaluation.
6 ChaptersFourth down decisions, two-point conversions, and win probability.
4 ChaptersMachine learning, Bayesian methods, tracking data, and simulation.
5 ChaptersSpecial teams, personnel, college football, and future trends.
18 ChaptersIn-depth analytics profiles for all 32 NFL teams
100+ code examples in R and Python covering data loading, EPA analysis, visualization, betting models, and machine learning.
# Load NFL play-by-play data with nflfastR
library(nflfastR)
library(tidyverse)
# Get 2024 season data
pbp_2024 <- load_pbp(2024)
# Calculate team EPA per play
team_epa <- pbp_2024 %>%
filter(!is.na(epa)) %>%
group_by(posteam) %>%
summarize(
plays = n(),
total_epa = sum(epa),
epa_per_play = mean(epa),
success_rate = mean(success)
) %>%
arrange(desc(epa_per_play))
# View top offenses
head(team_epa, 10)
Data-driven betting strategies
Learn how to use analytics to find +EV bets, manage your bankroll, and make smarter betting decisions.
Data sources, tools & community
Curated collection of the best NFL analytics resources, data sources, APIs, and learning materials.
Start with Chapter 1 and work your way through the full curriculum.