Roster

Cutting Christian McCaffrey In August Would Clear $1.95 Million

He has not practised since August 8. Kyle Shanahan said Tuesday that the people reading a contract dispute into it are wrong, and the cap sheet says the same thing in numbers: a release this week leaves $8,906,472 of dead money on the 2026 books and pushes $22,737,944 into 2027.

SK
Sam KezarAug 18, 20265 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
Christian McCaffrey in the 49ers red home jersey, a plain roster headshot against a white background. Not a photograph of any practice or game described here.

Christian McCaffrey has not practised since August 8. He was at Tuesday's joint practice against the Chargers in El Segundo and did not take part in it, and afterward Kyle Shanahan was asked about speculation that the absence is about his contract.

"People make a lot of assumptions, and that would be one that they're wrong on," Shanahan said.

He was asked when McCaffrey might practise again. "I think if it wasn't Christian and we were in a game week, I think he would play today." He was asked whether it involves the calf or the Achilles. "No, just some tightness. He'll get sensitive if I say where."

That is the club's account of it. The cap sheet is not an account, it is a document, and it says the same thing without being asked. Nobody in this building can pull this rope, in either direction, and the arithmetic is not close.

What a release would actually do#

Over The Cap carries McCaffrey at a 2026 cap number of $10,856,472 against $31,644,416 in dead money. Those two figures produce the number that has not been printed anywhere: releasing him with full acceleration would cost San Francisco $20,787,944 in 2026 cap charge rather than saving anything. Over The Cap prints it as a negative, in parentheses.

That is the wrong column for August, and it is worth being precise about why, because the right one is not much friendlier.

A release after June 1 carries the post-June-1 treatment, in which only the current season's proration hits the current books and the rest accelerates into the following league year. Over The Cap prints that scenario too. Cutting McCaffrey now leaves $8,906,472 of dead money on the 2026 cap and clears $1,950,000, and it sends $22,737,944 into 2027.

So the honest version of the leverage question is this. San Francisco can remove the best skill player on its roster and get back $1,950,000 in the year it is trying to win, in exchange for a $22,737,944 bill in the year after. That is not a threat. It is barely a transaction.

The two books agree on every dollar and disagree on what to call it#

This is worth decomposing rather than repeating, because the two public cap databases produce the same total from different buckets and a reader who compares headline columns will think they disagree.

Over The Cap builds the $10,856,472 as base salary $1,300,000, prorated bonus $3,947,472, roster bonus $4,959,000, other bonus $500,000, and a $150,000 workout bonus.

Spotrac builds the same $10,856,472 as base salary $1,300,000, signing proration $1,803,472, restructure proration $2,144,000, an active/game roster bonus of $500,000, option proration $4,959,000, and a $150,000 workout bonus.

Spotrac's two proration lines add to $3,947,472, which is Over The Cap's single proration column. What one book files as a roster bonus the other files as option proration. Neither is wrong. The dollars are identical and the labels are house style, which is the ordinary case with these books and the reason a headline number lifted from one of them is not a fact about a contract.

Both have his guaranteed salary for 2026 at zero.

The two figures in circulation are the same figure#

His 2026 cash is $12,500,000: base salary $1,300,000, a $500,000 roster bonus, a $150,000 workout bonus, and an option bonus of $10,550,000. His 2027 cash is $17,500,000. The deal runs through that season and voids on February 10, 2028, so 2026 is not a contract year and there is no expiring number underneath the theory. Spotrac's own cash-remaining cell for 2026 reads $30,000,000, which is those two added.

So the version that says $12.5 million is not guaranteed and the version that says $30 million is not guaranteed are both true, and they are the same sentence counted over one year and two. Neither describes money that exists to be withheld. The bulk of the 2026 number is bonus rather than salary, and a bonus is not a thing a running back earns by attending a Tuesday walk-through in El Segundo.

What the absence has actually changed#

Nothing about McCaffrey's place on the 53, which was never in question and is not in question now. What it has changed is who has been getting his work, and that is a roster question with twelve days left on it.

The backup running back competition has spent this camp waiting for its two principals to be healthy at the same time. Jordan James fractured a rib in late July. Kaelon Black went out with an adductor injury at the start of August. San Francisco signed Zamir White on August 12 and released Khalil Herbert on August 17, having signed Herbert on August 2, which is a club auditioning veterans through a hole rather than filling one.

Black practised Tuesday for the first time since the injury, and Shanahan said he will most likely play against the Chargers on Thursday. That is the first time this month both halves of the actual competition have been available to compete, and there is one preseason game after it.

McCaffrey's absence is not the story on this roster. It is the reason the story underneath him has taken three weeks to start.

What would move this#

A designation, a stated timeline, or a missed regular-season week. None of the three exists. Shanahan's Tuesday framing put McCaffrey in the same sentence as Nick Bosa, who has not practised since August 3 and who is described as improving, and said of both that they are going in the right direction.

The regular season opens in Australia in about three weeks. A running back listed at 30, owed nothing guaranteed, and not releasable for meaningful money is not a negotiation. He is a player with tightness.

Sources: Over The Cap's San Francisco 49ers salary cap table and Spotrac's Christian McCaffrey contract page, both read in a browser on August 18, 2026, with every figure counted off the tables rather than taken from a summary. The Kyle Shanahan transcript, 49ers Webzone, August 18. David Bonilla, 49ers Webzone, August 18, for the August 8 date. Cam Inman, Bay Area News Group, August 18. The club's own transaction log, read August 18.

Filed under 49ers

More on Christian McCaffrey

His page →
49ers Notebook

Dante Pettis is back because the 49ers have three healthy receivers

Kyle Shanahan said before Wednesday's practice that eight players would not work: Mike Evans (ribs), KhaDarel Hodge (knee), Trent Williams (neck stinger), Dre Greenlaw (quad), Nick Bosa (calf), James Thompson Jr. (ankle), Keion White (hamstring) and Christian McCaffrey (rest). Mykel Williams, back from a torn ACL, and Romello Height, back from hand surgery, were limited. The club signed receiver Dante Pettis to its practice squad.

Sam KezarSep 30, 20263 min read
Dante Pettis is back because the 49ers have three healthy receivers
Game Week

The 49ers rested four veterans Wednesday, and three were full a day later

San Francisco filed its first official Week 2 injury report this week, and eleven 49ers were on it. Six did not practise Wednesday and four of those six were rest days: Nick Bosa, Dre Greenlaw, Christian McCaffrey and Trent Williams. By Thursday, Greenlaw, McCaffrey and Williams were full participants and Bosa was limited. The two men who have not practised either day are Eddy Piñeiro, who is ill, and De'Zhaun Stribling, whose ankle needed surgery. Kaelon Black joined the report Thursday with a groin. Every man on Thursday's report played against the Rams in Melbourne.

Sam KezarSep 17, 20265 min read
The 49ers rested four veterans Wednesday, and three were full a day later
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

On the record

Called Shots →
Held upJul 29, 2026

Kaelon Black is on the San Francisco 49ers' initial 53-man roster as announced at the August 30, 2026 mandatory cut. Scored off the initial 53 only: the practice squad is a miss, a later signing or elevation after the initial roster is a miss, and being placed on injured reserve from the initial 53 counts as a hit.

Black is a rookie running back whose Wednesday workload increased because Jordan James fractured a rib, which is the most fragile possible reason to be getting reps. If James is back before cut day the reps go with him. Against the call: the 49ers carried McCaffrey plus a thin room behind him, and a back who has taken first-team-adjacent work in camp is usually kept over a body they would have to teach. This resolves in 32 days and it is genuinely close.

Latest on the 49ers

The whole beat →
49ers Notebook

Mike Evans practiced Friday, but he is a game-time decision against Denver

Mike Evans (ribs) was limited Friday after two days off and is questionable for Sunday against Denver; Kyle Shanahan called him a game-time decision. Dre Greenlaw, Keion White and Jaden Dugger are also questionable. Nick Bosa, James Thompson Jr. and Mykel Williams are out. Trent Williams and Romello Height carry no designation.

Sam KezarOct 2, 20263 min read
Mike Evans practiced Friday, but he is a game-time decision against Denver
49ers Notebook

Brandin Cooks needed eight days on the 49ers' practice squad to reach the 53

The 49ers promoted receiver Brandin Cooks to the active roster on Thursday, signed receiver Malik Turner to the practice squad and released KhaDarel Hodge. Mike Evans (ribs) missed a second straight practice. Trent Williams returned, limited, from a neck stinger. Brock Purdy was named NFC Offensive Player of the Month.

Sam KezarOct 1, 20263 min read
Brandin Cooks needed eight days on the 49ers' practice squad to reach the 53
49ers Deep Dive

Arizona stopped itself three times, and then it scored on six of seven drives

The 49ers beat Arizona 36-30 and are 3-0, but the defense's stops came mostly from Arizona's own flags. Each of the Cardinals' first three possessions stalled after an offensive penalty and ended in a punt. After that Arizona scored on six of seven possessions, including two 14-play touchdown drives. No Arizona play from scrimmage went longer than 19 yards, and Jacoby Brissett threw 52 times. Opponents have converted 2 of 9, 7 of 15 and 9 of 18 third downs across the first three weeks. Bosa and James Thompson Jr. are out against Denver on Sunday.

Sam KezarSep 29, 20266 min read
Arizona stopped itself three times, and then it scored on six of seven drives

Earlier on the 49ers

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
Eight Of San Francisco's Nine Defensive Linemen Landed In Melbourne
Camp Battles

The 49ers Have Made Five Running Back Moves Since August 2, And Thursday's Came Five Hours Before Kickoff

San Francisco's roster is due August 30 and the running back room has been reshaped five times since August 2, most recently at 1:40 on Thursday afternoon. Patrick Taylor Jr. is on Reserve/Injured for the second straight preseason and Khalil Herbert is back three days after the club released him. The two men actually competing for the job behind Christian McCaffrey have not been on a practice field together once this month.

Sam KezarAug 20, 20263 min read
The 49ers Have Made Five Running Back Moves Since August 2, And Thursday's Came Five Hours Before Kickoff
Transactions

The Roster Was Full, So Kion Smith Cost Colton Dowell His Job

The 49ers signed OL Kion Smith to a one-year deal and waived WR Colton Dowell, announced at 9:46 a.m. Thursday. Smith is 27, has appeared in 23 games with two starts across five seasons with Atlanta and Miami, and both of those starts came last year. He was one of three offensive linemen the club worked out Wednesday, on a day its interior could not field enough healthy bodies to run the left guard competition it had planned. The roster was already at the limit, so the signing required the waiver.

Sam KezarAug 6, 20264 min read
The Roster Was Full, So Kion Smith Cost Colton Dowell His Job