Seahawks should pass more

The view from my seats
The Seahawks are known as a run first team. The numbers strongly suggest that passing more would lead to a more successful offense.
It’s well known in the analytics community that passing is generally better than rushing. See here for some examples:
- https://thepowerrank.com/2018/09/24/the-surprising-truth-about-passing-and-rushing-in-the-nfl/
- https://fivethirtyeight.com/features/for-a-passing-league-the-nfl-still-doesnt-pass-enough/
- https://www.cmusportsanalytics.com/nfl-expected-points-nflscrapr-part-1-introduction-expected-points/
Here I’ll review some basic analyses to make that point in general and for the Seahawks in particular for the 2019 regular season.
To evaluate whether rushing or passing is more effective, I’ll use two measures here: Yards per play and expected points added (EPA).
Yards per play is straightforward - generally more yards are better than fewer yards. This measure doesn’t take into account down, distance, or field position, however, so it’s not perfect.
Expected points (EP) and expected points added (EPA) is explained here. Simplifying a bit, for a given field position, down, and distance, we can calculate the expected number of points that drive will yield. By looking at EP before and after a play and taking the difference, we can get EPA for a given play. A play will generally have a higher EPA if it gains more yards, gains a first down, and puts the offense closer to scoring position. Brian Burke gives a nice example:
Suppose the offense has a 1st and 10 at midfield. This situation is worth +2.0 EP. A 5-yard gain would set up a 2nd and 5 from the 45, which corresponds to a +2.1 EP. Therefore, that 5-yard gain in that particular situation represents a +0.1 gain in EP. This gain is called Expected Points Added (EPA). Likewise, a 5-yard loss on 1st down at midfield would create a 2nd and 15 from the offense’s own 45. That situation is worth +1.2 EP, representing a net difference of -0.8 EPA.
EPA isn’t perfect either, as it suggests that teams should pass even if they are far ahead late in the game, when they ought to be running the ball to run out the clock. EPA is a good measure in neutral game situations, though, which is where most coaches are making decisions on run vs pass most of the time.
In general, passing results in more yards per play and higher EPA than rushing. Passing also has more variable results (sd = standard deviation). These results include all teams except the Seahawks for neutral game situations (excludes last five minutes of each half and overtime, win probability between 20 and 80).
For yards per play (all teams ex-Seahawks; total of 20647 plays in 2019), it’s clear that passing gets more yards on average:
PlayType | mean(Yards.Gained) | sd(Yards.Gained) |
---|---|---|
Pass | 7.46 | 10.01 |
Run | 4.54 | 6.57 |
And for EPA (all teams ex-Seahawks), it’s clear that passing results in positive results for the offense, while running is a slight negative:
PlayType | mean(EPA) | sd(EPA) |
---|---|---|
Pass | 0.18 | 1.66 |
Run | -0.03 | 1.06 |
These are massive differences. These results show that teams should be passing by default, and running only in particularly advantageous situations. Pass to set up the run, not the other way around.
The splits for the Seahawks are even more stark (neutral game situations only; total of 682 plays in 2019):
PlayType | mean(Yards.Gained) | sd(Yards.Gained) |
---|---|---|
Pass | 8.16 | 10.35 |
Run | 4.94 | 6.66 |
And for EPA, where the Seahawks have better passing EPA and worse rushing EPA than the rest of the league:
PlayType | mean(EPA) | sd(EPA) |
---|---|---|
Pass | 0.33 | 1.69 |
Run | -0.05 | 1.20 |
It’s not just true that passing is better than running in general, or for the Seahawks across an entire season, but even within almost every individual game. There were only three games during the regular season where in neutral situations rushing had higher EPA than passing:
DefensiveTeam | Date | PlayType | n | EPA |
---|---|---|---|---|
CIN | 2019-09-08 | Pass | 13 | 0.27 |
CIN | 2019-09-08 | Run | 15 | -0.32 |
PIT | 2019-09-15 | Pass | 26 | 0.73 |
PIT | 2019-09-15 | Run | 21 | -0.25 |
NO | 2019-09-22 | Pass | 12 | 0.54 |
NO | 2019-09-22 | Run | 14 | -0.62 |
ARI | 2019-09-29 | Pass | 9 | 0.53 |
ARI | 2019-09-29 | Run | 4 | -0.25 |
LA | 2019-10-03 | Pass | 20 | 0.51 |
LA | 2019-10-03 | Run | 30 | 0.09 |
CLE | 2019-10-13 | Pass | 20 | 0.46 |
CLE | 2019-10-13 | Run | 24 | -0.21 |
BAL | 2019-10-20 | Pass | 24 | -0.42 |
BAL | 2019-10-20 | Run | 20 | 0.08 |
ATL | 2019-10-27 | Pass | 9 | 0.11 |
ATL | 2019-10-27 | Run | 10 | 0.50 |
TB | 2019-11-03 | Pass | 26 | 0.29 |
TB | 2019-11-03 | Run | 16 | -0.04 |
SF | 2019-11-11 | Pass | 13 | 0.50 |
SF | 2019-11-11 | Run | 14 | -0.28 |
PHI | 2019-11-24 | Pass | 15 | 0.26 |
PHI | 2019-11-24 | Run | 15 | 0.07 |
MIN | 2019-12-02 | Pass | 20 | 0.25 |
MIN | 2019-12-02 | Run | 28 | 0.21 |
LA | 2019-12-08 | Pass | 10 | -0.06 |
LA | 2019-12-08 | Run | 8 | -0.09 |
CAR | 2019-12-15 | Pass | 7 | 2.08 |
CAR | 2019-12-15 | Run | 9 | 0.31 |
ARI | 2019-12-22 | Pass | 14 | 0.17 |
ARI | 2019-12-22 | Run | 12 | 0.04 |
SF | 2019-12-29 | Pass | 6 | -0.55 |
SF | 2019-12-29 | Run | 8 | -0.16 |
This is also the case across the entire league. Across all neutral game situations, almost every team in the league was more effective in terms of EPA when passing.
PlayType | posteam | EPA | n |
---|---|---|---|
Pass | ARI | 0.09 | 293 |
Run | ARI | 0.03 | 203 |
Pass | ATL | 0.17 | 259 |
Run | ATL | -0.04 | 190 |
Pass | BAL | 0.18 | 199 |
Run | BAL | 0.24 | 255 |
Pass | BUF | 0.12 | 279 |
Run | BUF | -0.03 | 254 |
Pass | CAR | -0.01 | 240 |
Run | CAR | -0.09 | 177 |
Pass | CHI | 0.04 | 294 |
Run | CHI | -0.13 | 204 |
Pass | CIN | -0.04 | 291 |
Run | CIN | -0.13 | 222 |
Pass | CLE | 0.12 | 265 |
Run | CLE | 0.00 | 210 |
Pass | DAL | 0.18 | 273 |
Run | DAL | 0.02 | 219 |
Pass | DEN | 0.22 | 236 |
Run | DEN | -0.08 | 196 |
Pass | DET | 0.29 | 304 |
Run | DET | -0.12 | 274 |
Pass | GB | 0.33 | 283 |
Run | GB | 0.04 | 174 |
Pass | HOU | 0.28 | 284 |
Run | HOU | 0.09 | 252 |
Pass | IND | 0.25 | 256 |
Run | IND | 0.03 | 307 |
Pass | JAX | 0.21 | 222 |
Run | JAX | -0.01 | 214 |
Pass | KC | 0.33 | 290 |
Run | KC | 0.10 | 147 |
Pass | LA | 0.24 | 313 |
Run | LA | -0.14 | 216 |
Pass | LAC | 0.24 | 276 |
Run | LAC | -0.12 | 198 |
Pass | MIA | 0.17 | 277 |
Run | MIA | -0.16 | 183 |
Pass | MIN | 0.43 | 248 |
Run | MIN | -0.08 | 222 |
Pass | NE | 0.13 | 311 |
Run | NE | 0.03 | 211 |
Pass | NO | 0.27 | 295 |
Run | NO | 0.02 | 203 |
Pass | NYG | 0.14 | 289 |
Run | NYG | -0.03 | 198 |
Pass | NYJ | 0.15 | 205 |
Run | NYJ | -0.12 | 171 |
Pass | OAK | 0.45 | 237 |
Run | OAK | 0.06 | 205 |
Pass | PHI | 0.13 | 298 |
Run | PHI | -0.01 | 247 |
Pass | PIT | -0.02 | 280 |
Run | PIT | -0.20 | 233 |
Pass | SEA | 0.33 | 244 |
Run | SEA | -0.05 | 248 |
Pass | SF | 0.26 | 251 |
Run | SF | -0.12 | 229 |
Pass | TB | 0.09 | 289 |
Run | TB | -0.07 | 232 |
Pass | TEN | 0.38 | 239 |
Run | TEN | -0.02 | 237 |
Pass | WAS | -0.07 | 198 |
Run | WAS | -0.08 | 206 |
There was only one team where running was better than passing in neutral situations: Baltimore. This, however, was due to the great running ability of Lamar Jackson, not a traditional running game.
Rusher | mean(EPA) | sum(EPA) | n |
---|---|---|---|
M.Ingram | 0.17 | 17.57 | 101 |
L.Jackson | 0.44 | 38.04 | 87 |
G.Edwards | 0.20 | 8.69 | 44 |
J.Hill | -0.27 | -3.82 | 14 |
R.Griffin | 1.02 | 3.07 | 3 |
J.Conner | -0.40 | -0.80 | 2 |
C.Moore | -0.44 | -0.44 | 1 |
D.Thomas | -0.45 | -0.45 | 1 |
T.McSorley | 0.30 | 0.30 | 1 |
W.Snead | -0.32 | -0.32 | 1 |
Yes, it matters how many defenders are in the box, game situation, etc., but the general results are what matter in most game situations.
Implications of these results: On offense, passing should be the default play call. On defense, stop the pass first.
Thanks to the developers of nflscrapR for making these analyses easy.