Skip to content
The Margin
Methodology

The NFL game model

Rewritten October 6, 2026, to describe the model that serves the NFL game projections today.

Predicts
The final margin of each NFL regular-season game (home score minus away score) and the home team's chance of winning.
Inputs
A team rating that starts from a preseason roster rating and moves to in-season team and quarterback Elo as games are played; nine play-by-play efficiency stats per team; the starting quarterback; rest difference; and whether it is a division game. The betting line is not an input.
How it is tested
Walk-forward on 2020-2025: each season predicted by models fit only on earlier seasons, every regular-season week, 1,615 games, with the closing spread on the same games beside it. 2026 games are graded from the number frozen before each week.
Headline result
2020-2025: average miss 10.11 points, closing spread 9.76 (1,615 games). 2026 weeks 1-4: 9.80 points, closing spread 9.65 (64 games).

Summary

Each NFL game projection on the site is the average of two regression models. Both are fit on past NFL seasons and both predict the final margin from the same base: a team rating, nine play-by-play stats for each team, rest difference and a division-game flag. They differ in how they handle the quarterback. Version 1.3 gets the quarterback through its team rating, which includes the starter's own Elo. Version 1.4 uses a plain team Elo and adds three direct inputs about the starting quarterback. The published margin is half of each, and the win probability comes from that margin.

Projected margin = the average of two regressions on team rating, play-by-play efficiency and game facts. Over 2020-2025, predicted as if live, its average miss was 10.11 points per game against 9.76 for the closing spread on the same 1,615 games.

1. What the site shows

On the NFL game board and each game page, our number is the model's projected margin and its win probability. The DraftKings line is shown beside it, with the gap between the two. Once a week has frozen (section 6), the number shown for that week is the frozen one, not a recompute.

The model's total points are not published. Game totals come from a separate model and are shown as a range; see Game totals as a range.

2. The team rating

The rating is on the Elo scale, where a league-average team is about 1505. Version 1.3 uses the rating described in this section. Version 1.4 uses a simpler team Elo, described in section 4.

Preseason rating

Before any games are played, each team's rating combines three things:

The roster part and the quarterback part are combined first, then blended with the regressed Elo. The weights were set when the rating was validated and are not published here. Offensive linemen count only in the general roster total; there is no separate offensive-line term (section 9 explains why).

In-season rating

Once games are played, the in-season part is our Combined Elo: a team Elo that leaves the quarterback out, plus the Elo of that week's starting quarterback. This is the team rating shown on NFL team ratings.

How the preseason rating fades

The rating version 1.3 uses is a weighted average of the preseason rating and the in-season rating. The preseason weight, w, depends only on how many games the team has played:

w = 2 / (2 + games played)
rating = w × preseason rating
       + (1 − w) × Combined Elo
Games played01248
Preseason weight100%67%50%33%20%

Preseason weight by games played, from the formula above.

The 2 was chosen on September 27, 2026, replacing 8. The 8 came from a test whose preseason rating used end-of-2025 Elo for every season, so it knew results it should not have. On a point-in-time rerun over 2020-2025, choosing the weight from earlier seasons only beat a fixed 8 by 0.072 points of average miss (95% interval 0.034 to 0.110).

A week-N prediction only reads results through week N−1. The rating is rebuilt and stored after each completed week.

3. Play-by-play stats and game facts

Each team carries nine stats from play-by-play data, averaged over its last eight games:

The model reads the difference between the two teams on each stat, plus four sums of the two teams: pace, offensive expected points added, defensive expected points added allowed, and yards per play.

In week 1 these stats are each team's end-of-last-season values. As games are played, this season's numbers are blended in:

g = games played this season
this-season weight = g / (g + 4)

After four games the two count equally. This update was added on September 27, 2026; before that the stats stayed at last season's values all year. The 4 was fixed before the test, not tuned. On 2020-2025 the update lowered the average miss by 0.148 points (95% interval 0.073 to 0.226).

Two game facts complete the inputs:

There is no separate home-field term. The regression's home advantage sits in its constant and its sum terms, so it varies a little by matchup; measured across the 272-game 2026 schedule on August 25, 2026, it averaged 1.92 points. At neutral and international sites it is removed: the model predicts the game both ways round and keeps only the part that does not depend on which team is listed as home.

4. Two regressions, averaged

Both models are ridge regressions (linear regressions whose coefficients are held small to limit overfitting) that predict the final home margin. Training uses only games in which both teams had already played at least four games that season.

Version 1.3Version 1.4
Team rating inputSection 2 ratingPlain team Elo
QuarterbackInside the rating3 direct inputs
Inputs1619
Training seasons2018-20252015-2025
Training games1,0181,389
Last fitSep 27, 2026Aug 27, 2026

From the two models' metadata files, read October 6, 2026.

Version 1.3

Sixteen inputs: the nine stat differences, the four sums, rest difference, the division flag, and the difference in team rating from section 2.

Version 1.4

The same sixteen, except that the team rating is a plain FiveThirtyEight-style team Elo with no quarterback in it, plus three inputs about the two starting quarterbacks:

The starter is the first quarterback on the latest depth chart dated before game day. If the injury report lists him as Out or Doubtful, the next quarterback on the chart is used. The model never reads who actually started. On past games this rule named the actual starter 90.2% of the time (5,790 team-games).

The average

margin = ½ × version 1.3
       + ½ × version 1.4

The average has been the published number since September 27, 2026, and was first frozen for week 4. Over 2020-2025 it beat version 1.3 alone by 0.074 points of average miss (95% interval 0.019 to 0.127) on the same 1,615 games. If any version 1.4 input is missing for a game, version 1.3 is published alone for that game and the frozen record says so.

The coefficients are fit before the season and are not refit week to week. What changes during the season are the inputs: the team rating, the play-by-play stats and the starting quarterback.

5. From margin to win probability

The home team's win probability is the chance that a normal distribution centred on the projected margin lands above zero. Its standard deviation is 13.06 points, the spread of the average's misses in the 2020-2025 walk-forward. Probabilities are kept between 5% and 95%.

P(home wins) = Φ(margin / 13.06)
kept between 5% and 95%

6. When predictions freeze

Every Thursday at 13:20 UTC, before Thursday Night Football, the numbers for every game of the coming week are written to a frozen record with the time, each version's own number and the DraftKings line at that moment. The freeze moved from Wednesday to Thursday on September 14, 2026, so that it comes after the first practice report, and to 13:20 on September 28, so that it comes after the morning DraftKings capture.

Before the freeze, the number on the board is recomputed as inputs change. Once a game has kicked off, the board shows its frozen number.

7. How it is graded

Each frozen number is graded against the final score:

The closing spread is the DraftKings line captured before kickoff. The running record is on the NFL track record page. A weekly scorecard also grades the win probabilities (Brier score) and each version on its own.

8. Accuracy against the closing line

2020-2025, predicted as if live

For each season from 2020 to 2025, both regressions were fit only on earlier seasons, the team rating and stats were built only from games already played, and every regular-season week was predicted. The comparison line is nflverse's recorded spread for each game, which is at or near the close.

Average missRoot mean square miss
Our model (the average)10.1113.05
Version 1.3 alone10.1813.13
Version 1.4 alone10.1413.09
Closing spread9.7612.66

1,615 games, 2020-2025. Source: the pre-declared gate results of September 27, 2026.

The closing spread's average miss was 0.35 points smaller than ours (95% interval 0.21 to 0.47, resampling whole weeks). The model's win probabilities had a Brier score of 0.221 on the same games. On 2019, a season no earlier test had scored (256 games), the average missed by 10.21 points.

2026 so far

Average missBrier
Our model (as published)9.800.228
Closing line9.650.229

Weeks 1-4, all 64 games, graded October 6, 2026 from the frozen numbers. Weeks 1-3 published version 1.3 alone; week 4 (16 games) was the first frozen average.

The difference in average miss is 0.15 points (95% interval −0.61 to +0.91). Sixty-four games are too few to tell the two apart.

9. What was tested and left out

10. Known limits

11. What happened to V6

This address used to describe V6, an earlier game model: team Elo plus quarterback Elo plus a situational layer (rest, division games, primetime, weather, stadium, injuries). V6 stopped producing the NFL game board's projections on May 25, 2026, when the board moved to the regression model.

Parts of V6 still serve:

Checked against the serving code on October 6, 2026.