The Niners’ Offense Is Cruising — Until Kyle Shanahan Runs Out Of Scripted Plays


Kyle Shanahan is in his feelings. The head coach of the San Francisco 49ers misses his former offensive coordinator (and current Miami Dolphins head coach) Mike McDaniel, and the Niners offense is suffering mightily in McDaniel’s absence.

Well, at least that’s the narrative in San Francisco so far this season. It’s compelling — but is there any truth to it?

It turns out, yes, there is (and I’m as surprised as anyone). Let’s start with the big picture. Though McDaniel was offensive coordinator for just one season (2021) in S.F., he was a key assistant for five years under Shanahan, and as coordinator he steered an offensive attack that ranked seventh in the league in expected points added per play that year. A year later, the Niners rank just 19th in that category through Week 7.

What makes the McDaniel explanation especially compelling is that the deeper you dig, the juicier the story becomes. One of the reasons for the Niners’ struggles this year is a quirk that a number of people covering the team have noted: the Niners have struggled when Shanahan runs out of “scripted” plays. For context, teams will often pre-plan the first dozen or more plays of a game — called “openers” — to key on important concepts or simply test how the defense will react, gathering information that the coach can file away for later. And with this year’s 49ers, it seems that the offense dries up when Shanahan’s well of pre-planned plays runs dry:

Shanahan is really struggling when his opening script ends

Expected points added (EPA) per play and success rate for scripted vs. unscripted plays, through Week 7, 2017-22

season epa success epa success epa success
2017 -0.223 34% -0.027 42% +0.196 +8%
2018 0.009 48 -0.128 45 -0.137 -3
2019 -0.076 43 0.107 47 +0.183 +4
2020 0.191 50 0.022 45 -0.169 -5
2021 -0.027 49 0.033 41 +0.060 -8
2022 0.153 49 -0.110 40 -0.263 -9

Scripted plays are the first 24 in a game, and unscripted plays are all plays that come after. Scripted plays represent roughly one-third of the 49ers’ offensive plays.

Source: nflreadr

Shanahan has said that he always scripts out the first 24 plays of each game,1 and this year, the difference in offensive production between scripted and unscripted plays is the largest of Shanahan’s tenure through seven weeks. The Niners are averaging positive 0.15 EPA per play on scripted plays, and negative 0.11 EPA per play on unscripted snaps. That difference seems large and significant. But as we often take pains to point out around these parts, splits happen. Is this just another weird statistical artifact of a small sample size?

To find out, I conducted a bootstrapping analysis similar to the one I used to analyze two-high coverages — except, unlike in that case, the evidence for a difference is much stronger.2 The Niners’ unscripted play production has been so poor that it’s quite unlikely — only about a 5 or 6 percent probability — that we’d observe an average EPA per play on unscripted plays that is as high or higher than the Niners have posted on scripted plays. In other words, there’s probably something to the argument that Shanahan is worse at calling plays after he goes off script.

Histogram of the likelihood that a random set of 24 unscripted plays ran by the San Francisco 49ers through week 7 of the 2022 NFL season has a given average Expected Points Added (EPA) per play, compared with their average EPA in scripted plays. There is a less than 6% chance that a random set of unscripted plays run by the 49ers this year would have had a better average EPA than the Niners’ scripted plays.

But even if the Niners are below average on offense this year, and Shanahan is struggling to call unscripted plays, it’s fair to ask what this has to do with McDaniel. Why would losing him to Miami have an impact on scripted versus unscripted offensive production? 

One clue comes from a February report by Sports Illustrated’s Albert Breer on the Shanahan-McDaniel division of labor in San Francisco. In it, Breer reports that “Shanahan would spend Mondays and Tuesdays almost exclusively on the passing game, going to work with top lieutenants like former pass-game coordinator Mike LaFleur, while McDaniel was left to draw up the team’s run game for the week.”

Assuming this report accurately reflects their coaching dynamic, it may explain much of the drop-off from scripted to unscripted offensive plays. If Shanahan has less free time to scheme up effective passing plays than when McDaniel was around, it follows that the passing offense might struggle. 

And in fact, that’s just what we’ve found so far this season: The Niners’ EPA per passing play in 2022 falls from +0.32 when the offense is on script — plays Shanahan ostensibly devotes more of his attention to each week — all the way to -0.10 when they go off script.

Now, let’s be real: While extremely interesting, this evidence is not conclusive. You could reasonably argue that there are other factors at play. For instance, it’s certainly worth considering the early season injury to quarterback Trey Lance, given the preseason plans the Niners surely had to abandon when he went down for the year. But it’s also true that having Jimmy Garoppolo behind center again makes the comparison a more apples-to-apples affair. Jimmy G was back there in 2021 when McDaniel was OC, after all, and it’s not like the 49ers haven’t struggled with quarterback health in past seasons.

All-Pro left tackle Trent Williams also missed two games with injury, including an embarrassing Week 6 loss to the Atlanta Falcons, which could be playing a role. On the other hand, Williams came back and played 81 snaps in the 44-23 Week 7 loss to Kansas City and had his best game of the season, according to Pro Football Focus.3

Ultimately, though, I think this narrative is fairly credible and stands up to scrutiny. Critics have been saying for years that Jimmy G is a system quarterback propped up by a Shanahan offense that, to a large extent, makes his decisions for him. If Shanny no longer has the time to cover up Garoppolo’s flaws, what we’re seeing unfold would be the logical result. 

If so, that leaves Shanahan with only a couple of obvious options to save the season: Hand off run-game duties to an assistant so he can re-focus on the passing game, or say screw it, make the entire plane out of the black box stuff and just script out the whole game with openers.

Check out our latest NFL predictions.