49ers
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 →
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
Game Week

The Two Names That Moved On Wednesday's Injury Report Both Play Right Defensive Tackle

San Francisco's second injury report of Week 1, distributed by the club's communications staff and published by David Bonilla at 49ers Webzone at about 2:57 p.m. Pacific on Wednesday, carries the same eleven San Francisco names as Tuesday's and moves exactly two of them. Alfred Collins goes from limited participation to did not participate, filed under a knee; Kyle Shanahan said this week that Collins tore a patellar tendon and is out for the year. James Thompson Jr. goes from did not participate to limited, and Shanahan had said before the last practice that Thompson's availability would be settled by how that session went, per Patrick Holloway and Kyle Posey at Niners Nation. The two men are first and third at right defensive tackle on the club's own chart. Nick Bosa, limited on both reports, said after the final full practice that he is '100% ready to go' and that he had not yet talked to defensive line coach Kris Kocurek about a snap limit. George Kittle, also limited both days, said his body feels good and that he does not know his workload. Shanahan said the club has to be smart with both, and called Christian McCaffrey 'Awesome. Ready to go.' Bonilla writes that San Francisco held no full practice on Wednesday and had a walk-through scheduled. On the Rams' side everyone but Aaron Donald improved: Myles Garrett went from did not participate to full. Neither the distributed report as published nor the club's own injury report page, read at 3:04 p.m. and again at 4:52 p.m. Pacific, carries a game status for anybody. On the roster page nothing was processed: 53 active, 17 practice squad, 11 on injured reserve, 2 on Active/PUP, Collins still on the Active table.

Sam KezarSep 9, 20265 min read
The Two Names That Moved On Wednesday's Injury Report Both Play Right Defensive Tackle

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 →
Week 2 Analysis

Opponents have reached the 49ers' red zone five times and scored one touchdown

Two days after the 35-13 win over Miami, the two game books describe a defense that is hard to finish against and easy to move against. Opponents have gained 5.1 yards a play in both games and reached the San Francisco 20 five times for one touchdown. Miami spent 19:17 on its first three possessions and got six points, twice reaching goal to go and twice kicking. San Francisco's first four sacks of the season came either inside its own red zone or with a lead of 15 or more, and Nick Bosa is credited with none of them, and with no quarterback hit either, on 40 of 59 defensive snaps. PFF's charting of the same game puts him ahead of every other 49er in total pressures.

Sam KezarSep 22, 20266 min read
Opponents have reached the 49ers' red zone five times and scored one touchdown
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
Week 2 takeaways: five touchdowns before San Francisco's first punt
49ers Roster

The 49ers won by 22 and came out of it needing a receiver and a lineman

Shanahan's Monday conference call produced four injury verdicts. Robinson and Thompson Jr. both have high-ankle sprains at three to six weeks, Robinson most likely to injured reserve. Height broke his hand and has surgery Tuesday, with an outside chance of playing at Arizona. Mike Evans has a hip that will be managed through the week. The receiver room is down to five men on the active roster with three on injured reserve, and the defensive line has now lost three players in two games. Shanahan, asked on Sunday about Leonard Floyd, said the club has already made calls.

Sam KezarSep 21, 20264 min read
The 49ers won by 22 and came out of it needing a receiver and a lineman

Earlier on the 49ers

Camp Notebook

Carver Willis Graded Last Among The Linemen In The Game He Started

Carver Willis started at left guard against the Raiders and PFF's grades from the game, released Friday, rank him last among the 49ers' offensive linemen while giving Connor Colby the best pass-blocking grade of the night. The job is still open. San Francisco did not practice Friday and will not practice Saturday or Sunday, because Kyle Shanahan gave the team three days off after the finale, so the cut to 53 at 3 p.m. Pacific on Sunday falls inside them. The club reached an injury settlement with running back Patrick Taylor Jr. on Friday. Deion Jones, acquired Monday, graded first among all 49ers in the game. Jaden Dugger drew the highest pass-rushing grade on the team and Patrick Willis said so publicly.

Sam KezarAug 28, 20264 min read
Carver Willis Graded Last Among The Linemen In The Game He Started
Camp Battles

Jordan James And Kaelon Black Have Eight Preseason Carries Between Them

San Francisco opened camp with a two-man competition to back up Christian McCaffrey. Across two preseason games Kaelon Black has carried the ball eight times and Jordan James has not carried it at all, because one had an adductor injury and the other a fractured rib. Sincere McCormick, a third-year back outside the projected 53, leads the team with 16 carries for 91 yards. One practice and one game remain before the roster is due Sunday.

Sam KezarAug 24, 20264 min read
Jordan James And Kaelon Black Have Eight Preseason Carries Between Them
Camp Notebook

The 49ers' First Depth Chart Lists Demarcus Robinson As A Starting Receiver

San Francisco released its first unofficial depth chart of 2026 on Tuesday morning, with Demarcus Robinson at a starting receiver spot, and then held a joint practice with the Tennessee Titans. The chart is a health document: Ricky Pearsall has been on season-ending injured reserve since August 1, Christian Kirk has not practised a session of camp, and Mike Evans suited up Tuesday and did not compete. Two published readings of the chart disagree about where De'Zhaun Stribling sits, and two counts of the practice disagree about how many passes he caught. Nick Bosa missed a fifth straight practice, and Kyle Shanahan said the knee has tendinitis related to the ACL recovery. Two Titans tackles were ejected from a session that had scuffles on three of the first four plays.

Sam KezarAug 11, 20264 min read
The 49ers' First Depth Chart Lists Demarcus Robinson As A Starting Receiver