49ers
Civic memory

The 49ers Announced Every Kyle Shanahan Contract Until This One

Tom Pelissero reported Friday that Shanahan signed an extension with San Francisco during the offseason. The club published its own release when it hired him in February 2017, when it extended him in June 2020 and when it extended him in September 2023. This time it published nothing, and not one of those three releases ever said how long the job was his.

AL
August LindenSep 13, 20264 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
Kyle Shanahan on a road sideline in heavy rain in October 2019, hood up over his headset, holding a laminated play sheet in one hand. The crowd behind him is out of focus and dressed for the weather.

The San Francisco 49ers have a sentence.

It begins "The San Francisco 49ers today announced that the team has signed," and then a name goes into it, and then a number of years. On September 8, 2023 the name was Nick Bosa and the number was a five-year extension through the 2028 season. On August 30, 2024 it was Brandon Aiyuk, four years through 2028, and John Lynch called him a special talent and a warrior on the field. When the club signed Brock Purdy on May 20, 2025, the years went in the headline, five of them, and it scheduled a press conference in the auditorium at Levi's Stadium for half past one the next afternoon, and Lynch said in the release that the club was ecstatic to get the deal done.

No dollar figure appears in any of the three. Bosa's $170 million is not in his release. Purdy's $265 million is not in his. What every one of them names is a number of years.

The club has published a version of that sentence about its head coach three times in nine years. On February 6, 2017, it announced that it had agreed to terms with Kyle Shanahan to become the twentieth head coach in franchise history, and Jed York called it a very exciting day for the 49ers and their fans. On June 15, 2020, it announced that it had signed Shanahan to a multi-year contract extension. The third came on September 22, 2023, multi-year contract extensions for Shanahan and Lynch together.

Not one of the three says how long.

He signed again this year. Tom Pelissero of The Ringer reported it on Friday, and the 49ers have published nothing. The terms are not known. The number of years is not known. The date he signed is not known either, so the decision that settles who runs the football team has no position in the calendar of the year it happened in. How long he had been signed for is not agreed either. The accounts that circulated when the last extension was reported had him under contract through 2027; Jed York said this offseason that it ran through 2028. Neither number came from a club release, because there has never been one to take it from. He is now signed for longer than whichever it was, and that is the whole of it.

What a release is for#

Nearly every document a football club generates about itself is extracted from it by somebody else's rule. The cap figures exist because there is a cap. The injury designations exist because the league requires a report. The transaction wire runs because a roster has to be certified at ninety and at fifty-three and the certification is filed. None of that is the club talking. It is the club complying, and a reader learns from it the way a reader learns anything from a form.

The releases are the other thing. They are voluntary, they are published on a website the team owns, on a day the team picks, in sentences the team writes, and they are where the organization speaks as itself to whoever it believes is out there listening.

The 49ers write for customers. A customer wants to know the quarterback is signed for five more years, because that is roughly what the customer is buying, and the club tells him so in the headline. The question of who runs the football team into the 2030s, and until when, is a question an owner answers to himself.

The defense is real. A head coach is an employee of a private business, his deal sits under no cap, no union files it, and nothing obliges a team to publish its own org chart. Player contracts surface whether the club types them or not, so a player release is a club getting in front of a fact that was coming anyway.

Except the 49ers did type it. Three times, for this coach, the last of them at one o'clock on a Friday afternoon in a September when the team was 3-0. The practice existed. It was theirs. This year they did not follow it, and what they left out is the answer to a question about the next ten years of Sundays that the building had already settled.

The number that is coming anyway#

Shanahan has coached 150 regular-season games for San Francisco and his record in them is 83-67. That figure includes the 27-7 win over the Rams in Melbourne on September 10, which was game 150. Through the end of last season he stood at 82-67. Bill Walsh coached 152 regular-season games for the 49ers, more than anyone else who has held the job.

Miami comes to Levi's Stadium on September 20 and Arizona on September 27. If Shanahan works both, he draws level with Walsh. Denver comes on October 4, and he passes him.

The club will mark that. Marking things is something this organization is very good at, and it has spent this entire season wearing a patch that counts eighty years of itself on the upper chest of every jersey. The number will be exact, because those always are. Nobody outside the building will be able to say how many more games are coming.

Sources: 49ers.com releases dated February 6, 2017 (Shanahan named head coach), June 15, 2020 (multi-year extension), September 22, 2023 (Lynch and Shanahan extensions), September 8, 2023 (Bosa), August 30, 2024 (Aiyuk) and May 20, 2025 (Purdy); Tom Pelissero, The Ringer, September 11, 2026, first reporting the extension; NFL.com and ESPN, September 11, 2026, for the prior contract running through 2027, the absence of terms and the 83-67 record; the Associated Press, September 11, 2026, for Jed York quoted on the prior deal running through 2028 and for the source declining to give the length of the new one; Wikipedia's list of 49ers head coaches for Shanahan's 150 games and Walsh's 152; 49ers.com for the 2026 schedule.

Filed under 49ers

More on Brock Purdy

His page →
The rookie

The Right Denominator For De'Zhaun Stribling's First Game Is Twenty-Six, Not Sixty-Five

De'Zhaun Stribling, the wide receiver San Francisco took with the 33rd pick in April, was hurt in his first professional game and the 49ers have published nothing about him since. The official participation report has him at 21 offensive snaps of 65, which is 32 percent. Counted against the 26 plays from scrimmage San Francisco ran before the snap he was injured on, it is 21 of 26, or 81 percent. The count reconciles to 65 at the end of the game once the second-quarter roughing-the-passer penalty is included, which is the check on it. He was not targeted on any of the 21. Six 49ers receivers took an offensive snap in Melbourne: Mike Evans 49, Demarcus Robinson 41, Deebo Samuel 27, Stribling 21, Jacob Cowing 5 and KhaDarel Hodge 1. Tight end Luke Farrell played 46, more than every receiver but Evans, and fullback Kyle Juszczyk played 33, more than Samuel. Four of the five other receivers who played are 30 or older. Kyle Shanahan said after the game that the Achilles was checked and intact and that the club was not sure of the magnitude of the ankle injury; further testing waited on the flight home, which David Bonilla of 49ers Webzone clocked at 13 hours 46 minutes, landing at SFO at 3:06 p.m. Friday. San Francisco's next game is Miami at Levi's Stadium on Sunday, September 20, at 1:25 p.m. Pacific, and the 49ers traded down twice in April, first with Miami, to reach the pick they spent on Stribling. No take filed.

Grant LombardSep 13, 20264 min read
The Right Denominator For De'Zhaun Stribling's First Game Is Twenty-Six, Not Sixty-Five
Week 1 Takeaways

San Francisco Stopped The Rams On Fourth And One At Its Own 1, Then Drove 99 Yards

The 49ers opened 1-0 with a 27-7 win over the Rams at the Melbourne Cricket Ground, Thursday evening in the Bay Area and Friday morning in Australia. Los Angeles reached the San Francisco 1 in the third quarter and turned the ball over on downs; San Francisco answered with an 11-play, 99-yard touchdown drive. Connor Colby started at left guard and the whole line played every snap, George Kittle played 30 of 65 in his return, Kaelon Black carried more often than Christian McCaffrey, and De'Zhaun Stribling started at receiver without being thrown to. Nine takeaways off the official game book.

Sam KezarSep 11, 20265 min read
San Francisco Stopped The Rams On Fourth And One At Its Own 1, Then Drove 99 Yards
Called Shots

Every Under Is A Man Coming Off A Lost Season

Seventeen season lines, one side taken on each: the 49ers over 9.5 wins, Christian McCaffrey over 900 rushing yards and over 12.5 touchdowns, Brock Purdy over 3,600 passing yards and 27 combined touchdowns, and team sacks over 35 after a 20.0-sack 2025. The three unders are Mike Evans at 900 receiving yards, George Kittle at 700 and Nick Bosa at 12 sacks, and each is a bet on a calendar rather than a player. Thirteen of the seventeen file to the Called Shots ledger and grade when the regular season ends. Four do not: the Deebo Samuel and Nick Bosa lines and the two team-defense lines are argued here and not filed, because at an honest price each of the four is closer to a statement than a call.

Sam KezarSep 6, 20268 min read
Every Under Is A Man Coming Off A Lost Season

On the record

Called Shots →
OpenJul 26, 2026

Brandon Aiyuk does not take a regular-season snap for any NFL team in the 2026 season.

Binary and league-wide rather than 49ers-only, so a trade does not muddy the verdict. Scoreable from official participation data.