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 →
Five takeaways in one half, and the 49ers never sacked Kirk Cousins
Takeaways

Five takeaways in one half, and the 49ers never sacked Kirk Cousins

San Francisco beat Las Vegas 38-17 at Levi's Stadium on Sunday and is 7-1. The 49ers scored touchdowns on their first three possessions, did not punt, and ran 43 times for 190 yards. Las Vegas turned the ball over on five of its six second-half possessions: Jaden Dugger's 35-yard interception return on the first play of the half, two forced fumbles, and interceptions by Renardo Green and Malik Mustapha. The official game book credits San Francisco with no sacks and six quarterback hits, two of them on the plays Green and Mustapha intercepted. Nick Bosa played 39 of 50 defensive snaps in his first game since Sept. 20, and DeForest Buckner played 34. Jordan Watkins caught all four of his targets for 86 yards and his first NFL touchdown. Christian McCaffrey's 12-yard catch set the Super Bowl-era record for touchdown catches by a running back and was Brock Purdy's 100th touchdown pass. Gracen Halton broke his ankle and is out for the season, Shanahan said; Green (back) and Deommodore Lenoir (foot) did not return.

Sam KezarNov 9, 20265 min read
Nick Bosa plays his first game since September, with Buckner beside him
49ers Gameday

Nick Bosa plays his first game since September, with Buckner beside him

The 49ers (6-1) play the Raiders (4-4) at Levi's Stadium at 1:25 p.m. Pacific on FOX. Nick Bosa is cleared after missing five games and lines up with DeForest Buckner for the first time since the 2019 season. Christian Kirk, Mike Evans and Deebo Samuel are out, and Demarcus Robinson is back off injured reserve. Ten to watch, led by the rookies and second-year players: Jaden Dugger, Gracen Halton, Mykel Williams, Upton Stout, Jordan Watkins, plus Bosa, Buckner, Robinson, George Kittle and Brock Purdy. Inactive lists post at 11:55 a.m. Pacific.

Sam KezarNov 8, 20264 min read
The books have Brock Purdy's MVP place right and his price wrong
The fan tax

The books have Brock Purdy's MVP place right and his price wrong

DraftKings and Caesars have Brock Purdy at plus 350 to win the MVP, second behind Josh Allen. Kalshi has Purdy at 15 cents bid, 16 asked, third behind Joe Burrow, after one Sunday moved the two quarterbacks about ten cents in opposite directions. Against the exchange's midpoint, a $100 Purdy ticket at plus 350 gives up $30.25, the Allen ticket at DraftKings gives up $17.65 and the Burrow ticket gives up $3.75. The 49ers' Super Bowl price carries no such markup. Purdy has the better case than Burrow and a worse price than either.

Casey MontgomeryOct 30, 20265 min read

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.

Latest on the 49ers

The whole beat →
The 49ers ran Las Vegas out of its plan before they took the ball away
49ers Deep Dive

The 49ers ran Las Vegas out of its plan before they took the ball away

San Francisco beat Las Vegas 38-17 on Sunday and is 7-1. The five second-half takeaways will be remembered, but the game was settled earlier. The 49ers' first three drives went 37 plays and 242 yards, took 19 minutes and 23 seconds and ended in touchdowns, and San Francisco ran 25 times for 125 yards before halftime. Las Vegas had the ball for 71 seconds in the first 13 minutes. Trailing by 11 at the half, the Raiders ran six times and threw 24 times after it, and Klint Kubiak said that being in position to throw on every down produces interceptions. The pass rush did not cause the turnovers: Cousins was hit twice on eight first-half throws and four times on 24 second-half throws. Two takeaways were punched out of receivers' hands, and one came off a fumbled exchange. The second half also showed a cost. San Francisco threw an interception, was stopped on fourth-and-1 at its own 40, and allowed 222 kickoff-return yards, and Las Vegas started three drives in 49ers territory. The game moved San Francisco's season turnover margin from minus-3 to plus-1. Las Vegas has now allowed 30 or more points six weeks running, so Dallas on Sunday is the first test of whether the formula holds.

Sam KezarNov 10, 20266 min read
The 49ers trade a sixth-round pick for Keenan Allen
49ers Notebook

The 49ers trade a sixth-round pick for Keenan Allen

San Francisco acquired wide receiver Keenan Allen from Indianapolis on Tuesday, deadline day, for a 2027 sixth-round pick, the league transaction wire shows. It is the second trade between the clubs in three weeks, after DeForest Buckner on Oct. 27. Allen, 34, played at Cal and is a six-time Pro Bowler with 1,095 career catches, eighth all time. He had 40 catches for 351 yards and one touchdown in eight games for the Colts, their team lead. The club placed Gracen Halton on injured reserve with a fractured ankle the same afternoon, and its roster page showed 52 on the active roster before Allen was added. Allen joins a receiver room missing Mike Evans and Deebo Samuel Sr. last Sunday. He caught four passes for 26 yards against Dallas in Week 9, and the 49ers play at Dallas on Sunday.

Sam KezarNov 10, 20263 min read
Gracen Halton needs ankle surgery, and both outside corners are day-to-day
49ers Notebook

Gracen Halton needs ankle surgery, and both outside corners are day-to-day

Kyle Shanahan said Monday that Gracen Halton dislocated and fractured his ankle, will have surgery this week and will go on injured reserve. Renardo Green (back) and Deommodore Lenoir (foot) are day-to-day before Sunday's game at Dallas. C.J. West's practice window opens Wednesday, Deebo Samuel could practice Wednesday, and Mike Evans is not expected to.

Sam KezarNov 9, 20263 min read

Earlier on the 49ers

Book money is on the over in the 49ers game. Exchange money went the other way
What the money did

Book money is on the over in the 49ers game. Exchange money went the other way

DraftKings has 98 percent of its handle and 79 percent of its tickets on the over in Raiders at 49ers, and charges minus 120 to take over 51.5. On Kalshi the same over dropped from 54 bid, 55 asked to 49 and 50 between 8 and 10 a.m. Pacific on Thursday. Against the exchange's midpoint, the over gives up $7 to $9 per $100 at all six books checked and no under gives up as much as $2. The Raiders have gone over six straight times. Half a unit on the under at even money, and what would make that wrong.

Casey MontgomeryNov 6, 20266 min read
Week 2 takeaways: five touchdowns before San Francisco's first punt
49ers Takeaways

Week 2 takeaways: five touchdowns before San Francisco's first punt

San Francisco is 2-0 after a 35-13 win over Miami in the home opener. The 49ers scored touchdowns on their first five drives and did not punt until 10:38 of the fourth quarter. Purdy was 20 of 22 for 287 yards and two touchdowns with a 149.1 rating and no sack taken. The defense recorded four sacks after none in Week 1, from Marques Sigle, Keion White, Romello Height and a Warner-Stout split, none from Bosa. Miami had first and goal twice and came away with six points. Eddy Piñeiro, the kicker the week was spent on, attempted no field goal.

Sam KezarSep 21, 20265 min read
Eight Of San Francisco's Nine Defensive Linemen Landed In Melbourne
Roster

Eight Of San Francisco's Nine Defensive Linemen Landed In Melbourne

San Francisco carries nine defensive linemen on its active roster and eight of them were on the Qantas A380 that landed at Melbourne Airport at 7:50 a.m. local time on Friday. Sam Okuayinonu was not. The club announced shortly before departure that he would stay behind with a foot injury and designated him questionable for the opener against the Rams rather than ruling him out, per Michael David Smith at Pro Football Talk, who writes that he may fly separately if the foot responds to treatment. Okuayinonu started twelve games last season, which is twelve of the fifteen starts in his career. Three of the eight who travelled sat out Wednesday's last practice in Santa Clara: Gracen Halton and Romello Height with ankles, James Thompson Jr. undisclosed. A fourth, Nick Bosa, took team reps on Wednesday for the first time since August 3. The club signed two defensive linemen to its practice squad on September 1, hosted a defensive tackle on a visit on September 2, and reached an injury settlement with Victor Dimukeje on Thursday.

Sam KezarSep 3, 20264 min read