Camp Notebook

Christian McCaffrey Took Roughly Seven Team Reps On Sunday

His first team work since the tightness, on a morning that also got two shoulders back in no-contact jerseys, lost a defensive lineman to the non-participant list, and produced nothing at all on the cornerback everybody is waiting on.

SK
Sam KezarAug 23, 20263 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
Upton Stout bursting past a coach holding a padded shield during a 49ers training camp drill in Santa Clara, in a white practice jersey numbered 20, with teammates waiting their turn behind him. A club gallery photograph, not from Sunday's practice.

The 49ers practised at 10:15 on Sunday morning, four days before the preseason finale at Las Vegas and seven days before the roster comes to 53. Odds and ends from the reporters who were there.

Christian McCaffrey took roughly seven reps in team drills, several of them carries. That is the count from Nick Wagoner's camp file, and it is his first team work since the tightness that had kept him out of both preseason games and off the practice field since August 8. Marc Adams has the return without a rep count (49ers Webzone, August 23).

George Kittle practised in individual drills only. Matt Maiocco had him expected there with the team periods unknown, filing at 10:15am PT; Wagoner has him in individual work and nothing else. San Francisco activated him from the physically unable to perform list at two minutes past ten.

Klay Kubiak, after practice, on having both of them back: "It definitely just gives us energy. You have two Hall of Fame caliber players out there." (Wagoner, ESPN, August 23)

Deommodore Lenoir practised in a blue no-contact jersey, De'Zhaun Stribling in a black one. Both hurt a shoulder against the Chargers on Thursday and the club called both day-to-day. Wagoner and Adams have the same two returns and the same two colours.

Renardo Green did not appear in either account, in any direction. The imaging Kyle Shanahan ordered for Friday still had no published result as of 3:00pm PT Sunday, three days on. The last positive word on him is Maiocco's from Saturday: Green was conditioning on the practice field, and the hamstring looks mild (via David Bonilla, 49ers Webzone, August 22). He has now missed two practices with no timeline attached to anything.

Romello Height is new to Sunday's non-participant list. Wagoner notes that Height had moved slowly on Saturday and gives no body part. No other Sunday account carries the absence at all, so it is one reporter's observation rather than a club disclosure, and it matters because Height takes first-team edge reps.

Upton Stout intercepted Brock Purdy on a throw meant for Stribling, which Wagoner describes as an apparent miscommunication. Purdy also dropped a deep ball to Deebo Samuel over Fred Warner for a big gain.

Transactions, for the record. The club announced on Saturday evening that it had re-signed tight end Khalil Dinkins to a three-year deal and waived defensive lineman Xavier Thomas with an injury designation. The release is timed 6:15pm PT on August 22. The club's own transaction log dates the same move 08/20, two days earlier. Thomas had signed on August 12. Kittle's activation appears on neither the log nor the newsroom index.

The week from here, off the club's published practice and media schedule: a walk-through with no media on Monday, practice at 10:15 with an availability on Tuesday, a walk-through on Wednesday, and then Las Vegas at 5:00pm PT on Thursday. The roster is due at 3:00pm PT on Sunday, August 30.

Filed under 49ers

More on Christian McCaffrey

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
Christian Kirk hurt his meniscus, and surgery is still undecided
49ers Notebook

Christian Kirk hurt his meniscus, and surgery is still undecided

Christian Kirk hurt his meniscus, Kyle Shanahan said Friday, and the 49ers have not decided whether he needs surgery. Kirk, Mike Evans and Deebo Samuel are out Sunday against Las Vegas. Shanahan said Demarcus Robinson will most likely be activated off injured reserve, and Nick Bosa and Christian McCaffrey are cleared to play.

Sam KezarNov 6, 20263 min read
Christian Kirk missed practice Thursday, and the 49ers need Demarcus Robinson
49ers Notebook

Christian Kirk missed practice Thursday, and the 49ers need Demarcus Robinson

Christian Kirk did not practice Thursday with a knee injury, a day after he was limited. Mike Evans and Deebo Samuel sat out again, and John Lynch said Evans probably will not play Sunday against Las Vegas. Demarcus Robinson was limited for a second day, Christian McCaffrey returned as a limited participant, and Lynch described how the Jauan Jennings trade came apart.

Sam KezarNov 5, 20263 min read

More on Brock Purdy

His page →
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
How much of Brock Purdy's 105.6 passer rating belongs to Brock Purdy?
The finding

How much of Brock Purdy's 105.6 passer rating belongs to Brock Purdy?

Brock Purdy finished Monday's win over Washington with 1,524 career regular-season attempts and a 105.6 passer rating, first among quarterbacks with at least 1,500 attempts, ahead of Lamar Jackson's 102.7. Against the league average over the same seasons, 90.7, he is 14.9 points better. Of 81 quarterbacks who entered the NFL in 1999 or later and reached 1,500 attempts, only Patrick Mahomes reached it further above the league. Other quarterbacks in Kyle Shanahan's offense since 2017 have rated 1.3 points above the league; Jimmy Garoppolo rated 8.9 above. The ten quarterbacks who qualified furthest above the league kept about four-fifths of that margin over their next 1,000 attempts.

Jamie SilvaOct 22, 20266 min read

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 →
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

Brandin Cooks needed eight days on the 49ers' practice squad to reach the 53
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
Nick Bosa Practised For The First Time Since August 3
Camp Notebook

Nick Bosa Practised For The First Time Since August 3

Nick Bosa practised Wednesday for the first time since August 3, in individual drills and in team periods, per Nick Wagoner at ESPN. It is his first full practice since he tore the right anterior cruciate ligament in Week 3 of last season. He said afterwards that once a session reaches team work there is no governor on it, and that he is confident about Week 1. Ian Rapoport reported Wednesday morning that Bosa and George Kittle both travel to Australia. Kittle has now had three straight days of team work, dated to Monday by John Lynch. Six players sat out, three fewer than Tuesday: Renardo Green, Jacob Cowing, Luke Gifford, Gracen Halton, Romello Height and James Thompson Jr. Jack Jones was on neither list and did no work with the team. Left guard is still not named. The club hosted defensive tackle McKinnley Jackson on a visit and signed nobody.

Sam KezarSep 2, 20264 min read
Paraag Marathe Left, And Seventy-Two Void Seasons Stayed
Contract structure

Paraag Marathe Left, And Seventy-Two Void Seasons Stayed

Twenty-one contracts on the 49ers' 2026 cap sheet carry void years, 72 of them in total. Mike Evans' deal decomposed to the dollar, why the books close $450,000 short, and the reason the executive credited with that architecture had already handed off the job that produces it.

Jamie SilvaAug 6, 20266 min read