Free 43-Chapter Textbook

Master NFL Analytics

The complete guide to football analytics for sports betting, fantasy football, and data science. Learn EPA, win probability, and data-driven decision making.

43 Chapters R & Python Code Free Forever
Worked Example EPA Calculator
2nd & 7 at opponent's 35
+2.34 EP
Illustrative example — open the EPA calculator to compute your own
43 Chapters
131 Stat Explainers
31 Interactive Tools
100+ Code Examples

The 2026 Season

Kickoff is September 9. The season hub, the frozen prediction ledger, and the opening slate — every number derived, graded in public.

2026 Season Hub

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 hub

The Prediction Ledger

A frozen win probability for every 2026 game, published before kickoff and graded after. Week 1 is locked; misses stay on the page.

See the predictions

The Week 1 Slate

Sixteen openers across four days — a Wednesday Super Bowl rematch, Melbourne, and every pairing's head-to-head ledger since 1999.

Read the slate

Popular Analytics Tools

Free interactive calculators for NFL analytics, betting, and fantasy football

EPA Calculator

Calculate Expected Points for any down, distance, and field position situation.

Use Tool

4th Down Decision

Should you go for it, punt, or kick? Analyze the optimal fourth-down decision.

Use Tool

Win Probability

Estimate win probability from the score margin, time remaining, and which side has the ball.

Use Tool

Betting EV Calculator

Find +EV bets by comparing your probability estimates to betting odds.

Use Tool

Kelly Criterion

Calculate optimal bet sizing for long-term bankroll growth.

Use Tool

Odds Converter

Convert between American, Decimal, and Fractional odds instantly.

Use Tool

NFL Analytics Explainers

131 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 October 5, 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.

Explainer

Five Teams at 0-4: The September Forecast, Graded

On September 6 the frozen August board priced every team's first four games and expected 2.41 teams at 4-0 and 2.44 at 0-4 by October 5. The season produced three and five. Simulating the 64 games together, five or more was a 4.8% outcome, and five ties the most in 27 seasons. It came from the wrong teams: the three likeliest 0-4 teams all won, and Houston, priced at 1.1%, did not. Graded on all 32 records the board still beat the everyone-goes-2-2 rule by .04 to .05 a team, about twice its usual margin. The miss was in the tails.

Explainer

0-4 and Still 14th: Is the Board Too Slow?

Houston is 0-4 and the board still ranks it 14th, which looks like a model too slow to believe a record. Across 512 team-seasons it is not: grouped by record, the board's forecasts after four games matched the rest of the season, 0-4 teams included (.352 forecast, .354 played), and a faster K for the opening month would have improved the later games by .00004 of Brier at best. What the board over-trusts is the rating it carried from August, which history weights at .705. Houston's 14th is mostly August: discounted, its last 13 games project to 6.50 wins, not 7.06.

Explainer

Eleven of Sixteen: Week 3, Graded Against the Market

The ledger went eleven of sixteen in week 3 with a Brier score of .2259. The closing market's favourites went nine of sixteen and scored .2541, and both games in which the two picked different winners went the ledger's way. Only 15 of 277 weeks since 2010 were better for the model against the close, and the season now reads .2293 to the market's .2327. History says what that lead is worth: the model was ahead after three weeks in seven of sixteen seasons and finished ahead in two.

Explainer

Boom or Bust Is Not a Trait: Atlanta at New Orleans

Atlanta's first three games missed the closing spread by 0.5, 28.5 and 25.5 points, the most erratic start of 2026 and among the top 2% since 1999. It changes nothing about Monday night. Across 861 team-seasons a team's scatter around the line in its first three games correlates .013 with the rest of its season, odd games do not predict even ones (-.003), and a seeded simulation shows a real difference of 1.5 points between teams would have been caught 99% of the time. The ledger's frozen .5403 for New Orleans stands, a quarter point from DraftKings' .5427.

Explainer

Atlanta 35, Green Bay 14: The Swing Back, Graded

The ledger had Green Bay at .7139 and Atlanta won by 21. The game moved both teams 41.16 rating points, second in 2026 only to Carolina's 34-3 win at Atlanta four days earlier, so the season's two biggest swings are both Atlanta's and nearly cancel. Re-priced three ways, Atlanta's playoff odds went from 8.0% to 13.5% on the result alone and to 22.8% once the ratings moved. The market spent the week moving toward Atlanta and beat the ledger on the game.

Explainer

Denver's Home Field, Measured: Above Average, Not Exceptional

The Rams and Denver are rated four tenths of a point apart, so Sunday night's pick is almost all home field. Since 1999 Denver's home edge is 2.91 points, eighth of 32 and 0.77 standard errors above the league average; the engine's fitted edge for Denver is 83.9 Elo points with a 95% interval of 35 to 136; and in division games the market charged a 0.42-point altitude premium the results did not earn. DraftKings has the Rams favoured by 2.5, a disagreement about the teams, not the altitude.

Explainer

What 0-3 Means, and How Many 2026 Is About to Have

Since 1999, 129 teams have started 0-3 and two made the playoffs, both of them Houston. For a team already 0-2, winning game three moved the playoff rate from 1.6% to 24.0%, and holding the rating fixed barely changes that. The ledger's week-3 prices expect 5.27 teams at 0-3 by Monday, against a 2002-2025 average of 4.67.

Explainer

Lost, Then Won: Does the Order of a 1-1 Start Matter?

2026 splits exactly 8-8-8-8 after two weeks, and half of that is arithmetic. Across 401 1-1 starts since 1999, teams that won first and teams that lost first finished the season within 0.0012 of each other. Game three leans slightly toward the team that won last, against both the engine and the closing spread, at 1.45 to 1.66 standard errors: not enough to act on.

Explainer

Week 3's Leverage Board: What Each Result Moves

Each week-3 game forced both ways through the site's 20,000-season simulation, ratings held, common random numbers. The Rams at Denver moves 68.4 points of playoff probability, the most of the sixteen; the five largest swings are all interconference games, and in every interconference game exactly half the movement lands on teams not playing, because seats are conserved within a conference. Ranked by division titles, New England at Jacksonville leads instead.

Explainer

How Low Is 1314.6? Tennessee Against Sixteen Seasons

After two weeks Tennessee is rated 1314.6, last by 65.0 points. Replaying 2010-2025 through the same engine and snapshotting every team after week 2, five of 512 team-seasons were lower. Of the sixteen week-2 bottoms, four finished last, seven in the bottom two, and one, Houston in 2023, made the playoffs. The simulation gives Tennessee 3.93 more wins and the league's fewest in 46.8 per cent of seasons.

Explainer

What a Fortnight Bought: the Week-3 Board, Priced Twice

Week 3 locked this morning on ratings that have absorbed 32 games, while weeks 1 and 2 were locked off a preseason board. So the same sixteen fixtures can be priced both ways. The ratings moved a mean of 27.15 Elo points, Las Vegas up 65.1 and the Chargers down 69.4; the probabilities moved a mean of 4.91 points, the largest 12.20; and not one of the sixteen picks changed side. Across 2010-2025 the same exercise flips a mean of 1.44, so nothing here is unusual — including the board getting louder, which it did in 12 of those 16 seasons.

Explainer

What Would Change Its Mind: Every Pick's Distance to a Flip

A pick flips when the home rating plus the 48-point home-field constant crosses the away rating, so the distance from any pick to its opposite is exactly that gap. On this morning's board the sixteen week-3 distances run from 6.7 rating points to 238.9. One played game moves a team a mean of 18.08 points over 4,347 graded games, and because the update is exactly zero-sum a fixture's gap can close by at most about 36.16 in a week. Four of the sixteen sit inside that; four are more than five weeks away.

10-Part Curriculum

43 Comprehensive Chapters

From foundational concepts to advanced machine learning techniques, this textbook covers everything you need to master NFL analytics.

Browse All Chapters
Part I: Foundations

Data infrastructure, nflverse, wrangling, and visualization basics.

5 Chapters
Part II: Offensive

Passing, rushing, EPA analysis, success rate, and efficiency metrics.

7 Chapters
Part III: Defensive

Coverage analysis, pass rush, run defense, and scheme evaluation.

6 Chapters
Part V: Game Theory

Fourth down decisions, two-point conversions, and win probability.

4 Chapters
Part VII: Advanced

Machine learning, Bayesian methods, tracking data, and simulation.

5 Chapters
+ 5 More Parts

Special teams, personnel, college football, and future trends.

18 Chapters

Team Analytics

In-depth analytics profiles for all 32 NFL teams

R & Python

Ready-to-Use Code Examples

100+ code examples in R and Python covering data loading, EPA analysis, visualization, betting models, and machine learning.

  • Copy-paste ready
  • Downloadable scripts
  • Detailed explanations
  • nflfastR & nflverse
Browse Code Library
R
# 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)

Sports Betting Analytics

Data-driven betting strategies

Learn how to use analytics to find +EV bets, manage your bankroll, and make smarter betting decisions.

  • Spread & totals strategies
  • Player prop analysis
  • Kelly Criterion bankroll management
  • Line movement analysis
Explore Betting

Resources Hub

Data sources, tools & community

Curated collection of the best NFL analytics resources, data sources, APIs, and learning materials.

18 Data Sources
14 APIs
12 Guides
11 Communities
Browse Resources

Ready to Master NFL Analytics?

Start with Chapter 1 and work your way through the full curriculum.