Predicting NFL Games with Data: Our Statistical Model

March 24, 2026 · Terranalytics · 8 min read

The NFL is the hardest major sport to predict. Seventeen-game seasons mean smaller sample sizes. The salary cap enforces parity by design. Injuries to a single quarterback can swing a team's outlook by five or six wins. And weekly variance, the randomness baked into any given Sunday, makes confident forecasting genuinely difficult. Our prediction tool does not claim to eliminate that uncertainty. It aims to quantify it honestly.

Why Expected Points Added (EPA) Is the Foundation

Traditional stats like yards and points tell you what happened, but not whether it was actually good. A 6-yard gain on 3rd-and-5 is a first down. The same 6-yard gain on 3rd-and-15 is functionally worthless. Expected Points Added solves this by measuring every play against what an average team would be expected to score from that down, distance, and field position.

EPA per play is the single most stable and predictive team-level metric in the NFL. It correlates with future winning percentage more strongly than raw points scored, total yards, or even point differential. This is why EPA carries the heaviest weight in our analytics preset at 30%, and why it anchors the entire model.

We pull EPA data from the nflverse project, an open-source collection of NFL play-by-play data maintained by a community of analysts. Every play from every game, tagged with EPA values computed from the expected-points model. No proprietary data, no paywalls.

The 9-Factor Engine

Like our college football model, the NFL engine blends nine factors into a composite power score. But the factors themselves are tuned for the professional game, where the salary cap and free agency matter as much as on-field efficiency.

1. EPA (Default: 20%)

Overall EPA per play, combining offense and defense. The cleanest signal of how well a team is performing on a per-snap basis, stripped of context effects like field position, game script, and garbage time.

2. Win Record (15%)

Current-season win percentage, adjusted for actual strength of schedule computed from opponent records. In the NFL, where every team plays a 17-game slate drawn partly from divisional standings, SOS varies meaningfully from team to team.

3. Offense (12%)

Points per game, yards per play, and third-down efficiency blended into a single offensive score. Volume stats are tempered by efficiency metrics to avoid rewarding teams that simply run more plays.

4. Defense (12%)

Opponent points per game, yards per play allowed, and third-down defense. In a league where the average team scores about 22 points per game, defenses that consistently hold opponents below 18 are genuinely elite.

5. Turnover Margin (8%)

Net takeaways minus giveaways. Turnover margin is noisy on a game-by-game basis, but over a full season, teams that consistently win the turnover battle outperform their point differential by a statistically significant margin. It captures ball security and defensive playmaking that EPA alone can miss.

6. Cap Health (5%)

Salary cap space and dead money as a percentage of the cap ceiling. Teams with healthy cap situations can absorb injuries through mid-season signings, retain key players, and avoid the roster gutting that follows years of aggressive spending. It is a structural advantage that shows up over multi-game windows.

7. Draft Capital (5%)

The value of picks used on current roster players, weighted by draft round and recency. A team with five first-round picks on rookie contracts has a fundamentally different roster ceiling than one spending that money on veteran free agents. This factor captures talent acquisition efficiency.

8. Coaching (10%)

Head coach career win percentage, weighted toward recent seasons. In the NFL, coaching stability matters. Teams that churn through coordinators and head coaches every two years rarely build the schematic identity needed to sustain success. We weight recent performance more heavily than lifetime records to capture current form.

9. Momentum (13%)

Recent trajectory measured by EPA improvement, win streak data, and performance relative to pre-season expectations. A team that starts 2-4 but wins five of its next six is a fundamentally different proposition than one that started 6-0 and has lost four straight. Momentum captures direction, not just position.

From Power Scores to Predictions

The rankings tab shows the raw composite scores for all 32 teams. But when you run a head-to-head prediction, three additional adjustments come into play.

Home field advantage: NFL home teams win roughly 55-57% of the time, worth about 2.5 points in spread terms. Our model applies a scaled home field bonus based on historical venue-specific data. Dome teams playing outdoors in December get a smaller boost than cold-weather teams hosting in January.

Rivalry adjustments. Divisional games are structurally different from non-divisional matchups. Teams that play each other twice a year develop familiarity that compresses talent gaps. Our model dampens the spread in divisional matchups to reflect the empirical observation that divisional underdogs cover at a higher rate than non-divisional underdogs.

Momentum differential. If one team is trending sharply upward and the other is declining, the model adjusts the prediction to account for trajectory, not just current snapshot. This is especially relevant in weeks 12-17, when some teams are peaking for playoff runs while others are managing injuries and resting starters.

What the Model Does Not Do

Honesty about limitations matters more than inflated confidence intervals. Our model does not account for individual player injuries in real time. It does not incorporate weather forecasts, referee crew tendencies, or locker room chemistry. It treats each team as a statistical entity defined by its aggregate performance, not as a collection of individuals having good or bad days.

This means the model will sometimes be wrong in obvious ways. If a starting quarterback goes down in warmups, the model does not know that. If a team is dealing with a locker room crisis that has not shown up in on-field metrics yet, the model will miss it. The predictions are probabilistic estimates based on available data, not guarantees.

The College Football Connection

The NFL and CFB models share a common engine architecture: nine weighted factors, normalized to a 0-1 scale, blended into a composite score. But the factor choices are different because the sports are different. College football uses SP+ instead of EPA, recruiting instead of cap health, and transfer portal impact instead of draft capital. The shared architecture means improvements to the engine benefit both models simultaneously, and you can explore the college version to see the same methodology applied to a very different competitive landscape.

Try a Prediction

Pick any two NFL teams, set the location to home or neutral, and the model will return a win probability and predicted margin. You can also adjust the nine factor weights to match your own analytical preferences, or use one of the five built-in presets: Default, Analytics, Balanced, Traditional, and Draft-Heavy.

Run a Prediction