# NFL offense/defense Elo

Each team has an offense rating and a defense rating, both starting at 1500. Higher offense means stronger scoring; higher defense means stronger scoring prevention. Overall Elo is `(offense + defense) / 2`, a display ordering, not a separately fitted model.

## Prediction and updates

Expected home points are `max(0, league average + (home offense + 0.05 × home boost - away defense) / 47)`. Expected away points are `max(0, league average + (away offense - home defense - 0.95 × home boost) / 47)`. Neutral-site games (the Super Bowl and international games) use zero boost. The league average pools both teams' scores over the preceding four seasons, and starts at 22 points for the first season.

For each team, offense gains `4 × clamp(actual points - expected points, -10, 10)`. The opposing defense loses `3 ×` that same capped residual. These changes apply only after a game is final.

The home boost starts at 80 Elo and adds a team-specific deviation capped at ±53. It uses the preceding five seasons' home and away wins above opponent-adjusted expectation (log5), shrunk by `home games / (home games + 99)`. The home-field conversion divisor is 400. Because 47 Elo equal one point, a boost of 80 is worth about 1.7 points of expected margin.

At a season boundary, offense keeps 60% and defense keeps 80% of each team's distance from the league average rating at the end of the prior season. A team with no prior rating starts at that league average. Franchises that moved keep one rating history (STL → LA, OAK → LV, SD → LAC). Conference and division labels show each team's current alignment in every season.

## Probability and timing

`P(home wins) = 1 / (1 + exp(-(intercept + slope × expected margin)))`; away probability is its complement. For each displayed season the intercept and slope are fit only to decisive games from earlier seasons. For 2026 the calibration uses 7,276 games from 1999–2025, with intercept -0.012 and slope 0.136. Ties are excluded from calibration.

Pregame ratings are reconstructed chronologically, ordered by kickoff and game ID. A completed game's probabilities never use subsequent results from its season. Future games use every team's current rating at the time of the data update, without simulating intervening games. Playoff rounds (Wild Card, Divisional, Conference championships, Super Bowl) are kept distinct from regular-season weeks.

## Tuning

The 12 parameters were chosen by a 400-point space-filling grid search. Each candidate was scored on regular-season weeks 1–5 of 2010–2025 (about 1,240 games), where offseason carryover matters most, using log loss; the calibration curve for scoring was fit only on other weeks of those seasons. The best candidates were close to one another, so individual values (especially home-field settings) are not precisely determined. Older and newer seasons shown here are retrospective analyses, not out-of-sample validation. Changing the data or parameters can revise reconstructed forecasts.

## Data coverage

The season selector covers 1999 onward, the first season in nflreadr. 1999 has no earlier season to train the probability curve on, so its win probabilities are unavailable; its ratings and results remain available. 1999 also has no kickoff times, so only dates are shown.

The top-10 charts show Elo after completed games before the next listed week's first kickoff. Weekly changes use the start of the same window; season-to-date changes subtract the preseason rating after the offseason carryover. Future weeks keep the latest completed-game ratings and have zero weekly changes until games finish. The full-season view uses the latest ratings and the latest week containing a completed game. Game cards always retain their own actual pregame and postgame values.

Source: [nflverse](https://nflreadr.nflverse.com/) through the nflreadr R package. Unplayed games whose kickoff has passed are labeled “Awaiting final.”
