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 Tool112 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 17, 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.
Yesterday this site fitted a repair to its playoff odds, which were flat enough to matter: a calibration slope of 0.694. The same test on the 4,363 games the model has graded since 2010 gives a slope of 0.897, with a season-clustered bootstrap that never reaches one, and not one of the ten reliability bands misses by more than its own interval. Fitted walk-forward and scored on 3,295 later games, the shrinkage moves the Brier score from .22039 to .22024 — a fiftieth of what it was worth on playoff odds, and 0.9 standard errors from nothing. A Murphy decomposition says why: miscalibration is 0.30% of this model's Brier score. A season simulation spends one rating error 272 times; a single game spends it once.
This site's engine reads final scores and says plainly that it does not know who the quarterback is. Across 656 games since 2010 in which exactly one side started a different quarterback than the week before, that team won 36.5% of the time; the model gave it 45.8% and the closing market 38.9%. The model's 9.28-point shortfall is 5.2 standard errors from zero and the market's 2.39 is 1.4, and no draw of 2,000 random samples came close. Pricing it would mean docking the changing team 78 Elo points, more than the engine's entire home-field edge. It survives removing the weeks when contenders rest starters, and the ratings close most of it on their own within three games.
Yesterday's page measured this site's playoff simulation as too sure of itself at both ends — a calibration slope of 0.68 after week 1 and 0.60 on opening day — and declined to repair it. This page fits the repair and tests it walk-forward, choosing the parameter for each season only on the seasons before it. Telling the simulation to assume its own ratings are wrong by about 120 Elo points takes the out-of-sample Brier score from .2064 to .1989, the log loss from .6205 to .5834 and the calibration slope from 0.694 to 1.015, and it still hands out exactly the right number of playoff seats, which the simpler repair does not. Seattle goes from 95.7% to 83.6% and Tennessee from 0.7% to 6.7%. The price is that week-1 moves now look a little too small.
Week 2 opens with two 1–0 teams and the two forecasters this site keeps score between barely disagree: the frozen ledger says Buffalo .6612 and this morning's prices say .6636, after the market moved two points of spread toward Buffalo in two days and passed the model on the way. What Thursday decides is not those two seasons but two division races. Through the site's 20,000-season simulation a ten-point Detroit win puts the Lions at 55.6% in the NFC North against 26.8% if Buffalo wins by ten, and New England, which is not playing, swings 20.4 points in the AFC East. The margin barely matters once the winner is known, and today's board is already both answers blended at the price.
Kansas City beat Denver 31–10, and the ledger's frozen .5805 on the Broncos is its sixth week-1 miss. The week itself graded as the most ordinary result on offer: ten of sixteen, the single most likely count; six misses against 6.09 expected, which leaves the season's miss budget at 99.02; a Brier score of .2251 against an expected .2296. Monday was not ordinary. The 34.99-point rating move is a 95th-percentile night, and it dropped Denver from third to eleventh, below every rung published before kickoff. The 41 points tie 2026's week 1 with 2012's at exactly 791, and the loss makes Denver the sixteenth team at 0-1, at home to a 1-0 Jacksonville next.
The site's 20,000-season simulation, re-run with all sixteen week-1 results, moves the 32 playoff odds by a combined 376 points: Kansas City from 38.0% to 67.2%, the Rams from 77.0% to 48.3%, and three division favourites change. That is an ordinary week 1, 16th of the 25 since 2002. Run the same simulation over those 24 seasons and the moves have been about the right size, 0.93 of what followed, and they sharpened the forecast. The odds themselves are another matter: teams given 90% or more after week 1 made the playoffs 78.4% of the time and teams under 10% made it 14.5%, because the simulation treats every rating as exact.
On Friday a page here priced Sunday's thirteen picks as one distribution and published what each outcome would mean. The model went nine of thirteen: the second most likely count, and exactly the break-even that puts the season's miss budget back under its opening number. Its Brier score, .2174, was better than its own probabilities expected. The market's favourites went ten of thirteen and beat the model by about the usual margin, all of it in the four games named in advance. Seattle stayed first and seven top-ten seats changed hands, the top of the published range, but the same thirteen winners at seven points each would have moved three. The margins did the rest, and the Chargers' loss to Arizona is the largest rating move of 2026 so far.
Fifteen of the sixteen week-1 games produced 50.0 points a game, more than any full opening week in the nflverse file, and 4.77 a game over their closing totals; one game, Chicago 59, Carolina 37, supplied 68% of that. Across 27 seasons a loud or quiet week 1 has carried about a sixth of its surprise into weeks 2 through 18 (0.151 points per point, SE 0.086), and the closing totals for those weeks have moved by the same sixth (0.150), leaving 0.001 for anyone betting the over. Week-2 totals move 0.179 per point straight away. Written down in advance for 2026: weeks 2–18 near 46.85 points a game, their totals near 46.07, and no lean to the overs.
Of 227 teams that lost their first two games since 1999, 25 made the playoffs (11.0%), against 42.9% at 1-1 and 61.8% at 2-0. The easy explanation is that 0-2 teams were bad to begin with. Holding this site's opening-day rating fixed, each of the first two results is still worth 21.2 points of playoff probability (25.0 without it), so who the team was explains about 15% of the gap; a top-third team at 0-2 got in 20% of the time, a bottom-third team at 1-1 30%. When two 0-1 teams meet in week 2, the winners have made it 37.5% of the time and the losers 12.5%. Week 2 of 2026 has three such games, and the fourteen games without Denver or Kansas City expect 6.91 0-2 teams by the model and 6.98 by the market.
Buy the team that got embarrassed in week 1, sell the one that looked unbeatable: across 422 week-2 games since 1999 it has not worked. Teams that lost their opener by 21 or more covered 25 of 58 decided bets the next week, and fading teams that won by 21 or more went 30–28, under the break-even at standard prices. The line does move, about 0.065 points for every point a team beat or missed its week-1 number, so a 20-point surprise is worth 1.3 points in week 2, and the week-2 result then leans with the surprise by +0.007 points per point (95% interval −0.069 to +0.083). The market reacts the same way after every week of the season. This site's rating engine moves about three-quarters as far, and after the biggest surprises that cost it.
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.
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.