Stat Summary, Week 18, 2022

EDIT: I also blathered on about earned wins over at another end-of-season article over here, and you may find that interesting.

That's a wrap on the 2022 NFL regular season and it ended with another win for SEA plus a playoff berth. That's well above preseason expectations and something I would have then considered effectively impossible. LA has the 27th best offense by my metric and is 22nd in defense. They've had the 2nd most difficult schedule of offenses faced and the 16th most difficult schedule of defenses faced.

Since this is the end of the regular season, I have updated my calculations, I have added some new ones, and this is the last article I'll publish in this series this season, I'm going to re-introduce my metric. I use Expected Points Added (EPA) downloaded from a play-by-play database maintained by nflverse. I then filter out plays that are not rushes or passes, plays in garbage time (defined as either team having 90% or greater likelihood to win), plays in the last two minutes of both halves, and plays on fourth down. The goal is to focus on neutral game scenarios when game script and situational football are not heavy factors. Also I ignore special teams. My goal is to focus on offense and defense, rushing and passing.

After winnowing down to neutral game scenario plays, I compute EPA per play (EPAPP). Lots of places do this, but I go further. EPAPP is a good metric and you can farkle with it yourself at I calculate each team's seasonal EPAPP split into passing, rushing offense, passing defense, and rushing defense. I then go week by week, adjusting each team's raw EPAPP per game by what their opponent allows on average. So an objectively bad week might look average or even good after adjusting for opponent, or it might look even worse. Depends on the opponent, as it should. Context matters.

I then have a new set of weekly numbers: Opponent Adjusted Expected Points Added per Play (OAEPAPP). I average them across the weeks to get seasonal rankings. Because of the adjustment, zero is okay, negative numbers on offense are bad, and negative numbers on defense are good.

But that's not all! Today I am introducing rolling averages to the mix. To better account for coach firings, player injuries, schematic changes, weather, gelling, and other factors, instead of using team's seasonal averages to adjust EPAPP, I use the previous 4 games and the following 4 games to adjust by what each team's EPAPP should be right this week. I average over that window of 9 games weighted by a centered Gaussian curve with stddev of 2.25. Basically it favors closer weeks over further weeks in the averaging. This variant has a bunch of arbitrary numbers in it so the result is neither better nor worse than using seasonal, flat averaging. It's just a different view on the data.

Anyway, enough blather. On with the charts!



Against LA last week, the defense had a big uptick. Probably its best game since week 7 against LAC. There were a lot of ups and downs this year and the defense was not as young and energetic as I'd hoped, wonky but promising. After a week 7-9 surge, they fell apart, but the good news is that they've been on an incline since then. Maybe the defense will show out against SF in the postseason. Who knows? Unlikely but worth a shot. Now let's switch to the offense.



Hmm... well, not great against LA. Not their worst game but also not the note on which you want to end. The rushing offense was better than the passing offense, maybe, but both were bad. Not much else to say about that, so let's go to seasonal defense for the league.



Compared to the rest of the league, the Hawks' defense is:

  • 28th overall (rolling 27th)
  • 28th passing (rolling 26th)
  • 23rd rushing (rolling 23rd)



The Hawks' offense is:

  • 22nd overall (rolling 21st)
  • 22nd passing (rolling 21st)
  • 18th rushing (rolling 20th)
The SEA strength of schedule by neutral game scenario EPAPP:
  • defenses faced: 23rd (rolling 14th)
    • pass defenses faced: 19th (rolling 11th)
    • rush defenses faced: 30th (rolling 31st)
  • offenses faced: 26th (rolling 13th)
    • pass offenses faced: 17th (rolling 2nd)
    • rush offenses faced: 29th (rolling 27th)
But wait, there's more! Using similar thinking to rolling window averaging, I can compute power rankings (OAEPAPPPW, I guess (dear GAWD)). I adjust the window from centered on the week to right-aligned, and I change the stddev from 2.25 to 4.5. I keep the Gaussian weighting and the window width at 9 weeks. By taking just the values from the latest week, I can estimate a team's current power level or hotness. I would prefer to show this is table form, sortable by column and all that, but this site does not have such functionality. Instead here is a dense spew of (hopefully understandable) team logos:

So this week SEA (the 26th to 30th ranked by power) will try to beat SF (the 2nd ranked by power) at Santa Clara. It's a longshot.

And that will wrap up 2022. I hope literally anyone read this and found it interesting or useful. Let me know in the comments if you have any questions, critiques, or requests for other analysis. Thanks!