Kyle Shanahan had schemed the 49ers to wins over the previous two weeks, making sure to keep Jimmy Garoppolo comfortable and not ask him to make high-pressure throws down the field.
Garoppolo executed the plan with relative success. Sunday was set up to be the day where Garoppolo, by all accounts healthy after a high-ankle sprain earlier in the season, would show he had taken the expected leap and dissect a Seahawks' secondary that has been shredded all season.
Coming into Sunday's game, the Seahawks were allowing an NFL-worst 479 yards per game and 370 passing yards. A lot of those yards were given up in the middle of the field, where Garoppolo prefers to work. It was set up for George Kittle to run wild and for Brandon Aiyuk to have another big game.
That didn't happen.
Garoppolo struggled from the opening kickoff. He missed a wide-open Kittle over the middle on the first drive of the game, and that would be a harbinger of things to come.
Garoppolo threw another ghastly interception and was awful when pressured. The Seahawks' defense struggled to pressure him early on, but he couldn't make them pay. When they brought pressure in the second half, Garoppolo struggled to beat it.
Before re-aggravating his ankle injury, Garoppolo was 11-for-16 for 84 yards and an interception.
Was the ankle bothering him the whole game? It's impossible to know how much of an issue it has been over the past few weeks. I don't think the injury is the main issue.
The issue is and has always been Garoppolo's limitations as a quarterback. It's OK to say he was good last year when protected and he can win a lot of games when surrounded by top-tier talent.
When things aren't so rosy, though, can he rescue you? That's what the 49ers needed to figure out this season.
Nothing is as simple as a Week 8 stinker. The protection has been an issue all year for the 49ers. When they've held up, Garoppolo has been OK and when they haven't he's been bad. He was missing one of his top weapons Sunday, but Deebo Samuel's absence shouldn't have been that big of an issue.
The truth is, and always has been, that Garoppolo is just average. Garoppolo can't beat teams with his legs and he's good for at least one awful turnover a game. He's very much in the same category as Jared Goff. He can win a lot of games when the game plan comes together. If defenses can muddy the middle of the field, bring quick pressure and force him to his second or third read then he is relatively ineffective.
The 49ers have some important contract decisions coming up and can move on from Garoppolo with little penalty after the season. Would a quarterback on a rookie deal be more attractive than paying Garoppolo $25.5 million next season? Perhaps.
Garoppolo's limitations were out in the open Sunday. He should have ripped the Seahawks apart like every other quarterback -- from Matt Ryan to Kyler Murray -- has this season.
He didn't. He couldn't. He was abysmal, plain and simple. When the 49ers needed him most, he put up a stinker.
Now, decision time looms for the 49ers.