Game quality
How well each team played, beyond the score: EPA (expected points added) per play, adjusted for the opponent. A big day against a bad defence counts for less. Season views include playoff games.
Teams, 2023
Per-game averages. Expected wins sums each game's win expectancy, so wins minus expected is mostly luck. Click a column to sort.
| Team | Record | Adj off EPA | Adj def EPA | Adj margin | Raw margin | Expected wins | Wins − expected | Avg vs line | Turnover diff |
|---|---|---|---|---|---|---|---|---|---|
| SF | 14–6 | +0.164 | -0.090 | +0.254 | +0.250 | 15.9 | -1.9 | +1.9 | +12 |
| BAL | 14–5 | +0.063 | -0.154 | +0.218 | +0.210 | 13.6 | +0.4 | +7.6 | +6 |
| BUF | 12–7 | +0.126 | -0.059 | +0.185 | +0.185 | 13.8 | -1.8 | +2.1 | +5 |
| DAL | 12–6 | +0.080 | -0.089 | +0.169 | +0.180 | 12.2 | -0.2 | +3.9 | +9 |
| KC | 15–6 | +0.038 | -0.105 | +0.143 | +0.124 | 15.1 | -0.1 | +0.5 | -8 |
| MIA | 11–7 | +0.094 | -0.024 | +0.119 | +0.115 | 11.5 | -0.5 | +0.5 | +1 |
| DET | 14–6 | +0.089 | -0.010 | +0.099 | +0.088 | 13.5 | +0.5 | +0.8 | +3 |
| GB | 10–9 | +0.076 | +0.007 | +0.068 | +0.066 | 10.4 | -0.4 | +4.0 | +1 |
| NO | 9–8 | -0.032 | -0.086 | +0.054 | +0.086 | 9.1 | -0.1 | +2.4 | +13 |
| LA | 10–8 | +0.035 | -0.017 | +0.053 | +0.039 | 10.4 | -0.4 | +1.9 | -2 |
| TB | 10–9 | -0.011 | -0.036 | +0.026 | +0.019 | 9.2 | +0.8 | +4.2 | +6 |
| HOU | 11–8 | -0.011 | -0.026 | +0.015 | +0.031 | 10.1 | +0.9 | +3.0 | +8 |
| CLE | 11–7 | -0.161 | -0.170 | +0.008 | +0.014 | 8.9 | +2.1 | -0.2 | -12 |
| PHI | 11–7 | +0.042 | +0.047 | -0.005 | -0.007 | 9.1 | +1.9 | -5.4 | -10 |
| MIN | 7–10 | -0.065 | -0.046 | -0.019 | -0.028 | 8.2 | -1.2 | -0.2 | -12 |
| PIT | 10–8 | -0.076 | -0.055 | -0.021 | -0.033 | 8.7 | +1.3 | -1.2 | +10 |
| CHI | 7–10 | -0.067 | -0.041 | -0.027 | -0.011 | 8.1 | -1.1 | +2.2 | +3 |
| IND | 9–8 | -0.020 | +0.008 | -0.028 | -0.010 | 7.7 | +1.3 | +0.0 | +6 |
| CIN | 9–8 | -0.010 | +0.019 | -0.029 | -0.048 | 8.0 | +1.0 | -1.8 | +9 |
| JAX | 9–8 | -0.067 | -0.027 | -0.040 | -0.050 | 8.0 | +1.0 | -1.2 | -4 |
| SEA | 9–8 | -0.003 | +0.039 | -0.042 | -0.045 | 7.9 | +1.1 | -1.6 | +4 |
| LV | 8–9 | -0.115 | -0.054 | -0.061 | -0.057 | 6.7 | +1.3 | +2.9 | -3 |
| DEN | 8–9 | -0.055 | +0.021 | -0.077 | -0.074 | 7.0 | +1.0 | -2.2 | +4 |
| TEN | 6–11 | -0.054 | +0.024 | -0.078 | -0.066 | 6.2 | -0.2 | -0.7 | -5 |
| LAC | 5–12 | -0.069 | +0.012 | -0.081 | -0.096 | 7.1 | -2.1 | -3.4 | -1 |
| ATL | 7–10 | -0.116 | -0.032 | -0.085 | -0.049 | 6.4 | +0.6 | -3.6 | -12 |
| NYJ | 7–10 | -0.257 | -0.134 | -0.124 | -0.130 | 5.8 | +1.2 | -1.1 | -3 |
| NE | 4–13 | -0.193 | -0.066 | -0.127 | -0.134 | 5.7 | -1.7 | -4.2 | -14 |
| NYG | 6–11 | -0.175 | -0.035 | -0.140 | -0.149 | 5.0 | +1.0 | -1.7 | +11 |
| ARI | 4–13 | -0.081 | +0.085 | -0.166 | -0.176 | 4.9 | -0.9 | +0.2 | -2 |
| CAR | 2–15 | -0.190 | +0.007 | -0.197 | -0.194 | 2.8 | -0.8 | -5.5 | -10 |
| WAS | 4–13 | -0.125 | +0.092 | -0.216 | -0.217 | 4.5 | -0.5 | -7.0 | -13 |
How the ratings are built
Opponent adjustment. A unit's rating for a game is its average over its other games that season, blended with 16 games' worth of prior (league average plus half of last season's gap from it; 24 games for pass defence, which is noisier). Early in a season that leans on last year; by midseason it is mostly this year. Chosen by how well it predicts a held-out game: it cut that error by about a quarter against no shrinkage, and adjusted numbers agree between odd and even weeks more than raw ones do (team EPA margin r 0.52 → 0.55, defence 0.32 → 0.36, QB EPA/dropback 0.47 → 0.49, 2016–2025).Win expectancy is a logistic fit of wins on EPA margin over 6,036 completed games (it names the winner 86.5% of the time). These describe what happened; one game is not a forecast. Play-by-play credits the quarterback with every sack and dropback, so a bad line shows up in his numbers. Seasons 2016–2026, built 2026-11-07 11:05 UTC, from nflverse. Write-up:
backtests/nfl_game_quality/FINDINGS.md.