Season in Review

49ers 2025 Season in Review

2025 NFL Season · Saturday, May 16

0:000:00

Your episode · 0:00

The Rundown

Fifty-point-seven percent on third down — best in the NFL across all seventeen games. Here's how San Francisco built the league's most reliable money-down offense, why a quarterback room of Brock Purdy and Mac Jones somehow stayed afloat, and the one defensive stat that turned a twelve-win team into a Divisional Round blowout. Twelve and five. Wild card berth as the six seed. And then a thirty-five-point loss in Seattle that turned a really fun regular season into a really empty January.

Start with the team-level picture. The offense finished at plus ninety-three-point-seven total expected points added — how much every snap added to their scoring chances — sixth in the league, eighty-fourth percentile. The defense gave up plus seventy-one-point-eight, and on defense you want that number negative, so positive seventy-one-point-eight means twenty-fourth, twenty-eighth percentile. That gap is the whole story. The Niners outscored people because the offense was elite on early downs and lethal on third down — not because they were stopping anybody. And this was a steady-trend team, not boom-or-bust: twenty-plus points in fourteen of seventeen games, with only the Week 4 home loss to Jacksonville and the Week 18 finale against Seattle as real offensive no-shows. Even the forty-two to twenty-six beating from the Rams in Week 10 came with twenty-six on the board.

Now let's talk about the passing offense, because this is where the season was won. Plus ninety-five-point-four total passing expected points added on six hundred and six attempts — plus zero-point-one-six per dropback, sixth in the league. Two hundred and fifty-four yards a game, thirty-three passing touchdowns, and they did it splitting the year — Purdy for nine games, Jones for eleven. Purdy's completion percentage over expected was plus five-point-one, second among qualified starters. Jones posted plus three-point-zero himself. Two different quarterbacks, both completing the ball well above what the average passer would on those throws. That's a Kyle Shanahan offense doing Kyle Shanahan things. The downside: twenty-seven sacks allowed, a four-point-three percent sack rate, twenty-ninth in the league — protection got muffed up front. But the bigger story is how third down powered everything, and one play tells it. Week 16 in Indianapolis, fourth quarter, third and nine from the Colts' nine, Niners up seven. Purdy hits Christian McCaffrey on a short left checkdown, McCaffrey walks it in — plus three-point-two-one expected points on a single snap. Third down, money down, ball in the back's hands, drive ends in seven.

Now let's dig into the rushing offense, which is the inverse story. Minus eighteen-point-five total rushing expected points added on four hundred and eighty-one carries — minus zero-point-zero-four per attempt, twenty-first. Three-point-eight yards a carry, twenty-fourth, twenty-eighth percentile. One hundred and six-point-nine yards a game, but it was volume, not efficiency — steady floor, low ceiling. McCaffrey carried three hundred and eleven times for twelve hundred and two yards at three-point-nine a clip with ten rushing touchdowns. But his rushing yards over expected — how many yards he gained above what an average back would on those same carries — came in at minus one hundred and sixty-six total, minus zero-point-five per attempt. Forty-sixth among qualified runners. The volume was there. The touchdowns were there. The per-carry juice wasn't. His real value came as a receiver — one hundred and two catches, nine hundred and twenty-four yards, seven more scores. The rushing attack was a closer, not a driver.

Next up, the pass defense, and this is where the season cracked. Plus sixty-seven-point-six expected points added allowed through the air, plus zero-point-one-one per dropback — and on defense, positive is bad. Twenty-fifth percentile. Two hundred and forty-one yards a game, twenty-nine passing touchdowns. But the pass rush is the headline: twenty sacks all season. Twenty. Dead last in the NFL, thirty-second of thirty-two, third percentile. Fifty-seven quarterback hits — sixth percentile. They simply could not get to the passer, and in the modern NFL every other defensive number suffers when you can't. Fifteen total takeaways, twenty-second percentile. Deommodore Lenoir delivered the signature moment — Week 11 in Arizona, third quarter, he jumped a Jacoby Brissett throw and took it sixty-four yards the other way, a minus nine-point-two expected points swing on one snap. Plays like that papered over the structural problem during the regular season. They didn't paper over it in January.

And the run defense was the more stable side of the ball — but stable doesn't mean good. Plus four-point-two total rushing expected points added allowed, league average at plus zero-point-zero-one per carry. One hundred and eight-point-six rushing yards a game, thirteen rushing touchdowns on four hundred and sixteen attempts. Thirty-fourth percentile. A unit that held the line without ever winning the line — and paired with a pass rush that couldn't get home, you get a defense that hung around all year and then got walked through the building in the Divisional Round. Twelve wins is a great regular season. The defensive numbers are why it wasn't more.

The Bottom Line

A

12-5 regular season

Season MVP is Christian McCaffrey, and it's not particularly close — three hundred and eleven carries for twelve hundred and two yards and ten rushing touchdowns, plus one hundred and two catches for nine hundred and twenty-four yards and seven more scores. The engine on the ground and the security blanket through the air, all seventeen games. The thing that has to get fixed is the pass rush — twenty sacks all season, dead last in the NFL, third percentile. You can't win a Divisional Round game when you can't touch the quarterback, and the Niners found that out the hard way in Seattle.

This episode is built around one person's roster.

Sign up and get a weekly episode built around yours — player-by-player, in the voice of your smartest football friend.

Get your own weekly episode →