Roster

One Year, A Ceiling Nobody Will Price, And Two Roster Spots That Do Not Exist

San Francisco agreed to terms with Deebo Samuel on Thursday night and with Josiah Deguara the same day. The club's own roster page still lists 91 players against a limit of 90, and has not announced either man.

SK
Sam KezarJul 31, 20265 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
One Year, A Ceiling Nobody Will Price, And Two Roster Spots That Do Not Exist

San Francisco agreed to terms with Deebo Samuel on Thursday night. It agreed to terms with tight end Josiah Deguara the same day. As of Friday morning the club had announced neither, and its own roster page listed 91 players under a limit of 90.

That is the part with roster consequence, so it goes first. Two agreements cannot be processed onto a roster with zero open spots. Two corresponding moves are owed, nobody has said whose they are, and until the club's transaction log carries either name, both men are agreements rather than signings. This piece uses "agreed to terms" throughout for that reason.

The money is a ceiling, and the disagreement about it is the useful part#

Ian Rapoport reported the agreement Thursday night. Four outlets carried it inside 41 minutes: NFL.com at 9:17 p.m. ET, ESPN's Nick Wagoner at 9:20, Pro Football Talk at 9:23, and Niners Nation at 9:58 p.m. PDT. Every one of them attributes the report to Rapoport, which makes this one source relayed four times rather than four sources.

They did not render the money the same way. NFL.com wrote a flat seven million dollars. ESPN wrote that the deal could be worth up to seven million. Pro Football Talk wrote "up to" and added that the base value was not disclosed. Niners Nation wrote "up to" and read the structure as incentive-laden. Three of the four made the figure a maximum and one made it the number, and those are different contracts.

The Athletic settled it with an attribution the relays did not have. Matt Barrows and Vic Tafur report that per Samuel's agent, Tory Dandy, the deal is worth up to seven million dollars. The party with the most reason to state the larger number states it as a ceiling.

No base salary has been disclosed by anyone. Spotrac has added a Samuel row to San Francisco's active-roster cap table with every money column blank. Over The Cap does not list him. A reported maximum that the reporting cannot agree is a maximum, attached to a player nobody will price, is not a rounding error in the coverage. It is the shape of the deal showing through.

A team that believed it was buying the 2021 player does not buy him on one year with the value in incentives.

What the 2025 usage actually looked like#

Samuel turned 30 in January. He played 16 games for Washington last season, his most since 2021, and caught 72 passes for 727 yards and five touchdowns on 99 targets. He added 452 return yards on 15 kickoffs.

The alignment data is where the projection lives. He averaged 5.3 air yards per target across those 99 targets, his lowest since 2022. Sixty-seven of the 99 came inside ten yards. He ran 260 routes from the slot against 141 out wide and 15 from the backfield, so roughly five of every eight routes he ran, out of 416, were interior.

That is a role. It is a short, interior, high-volume role, and it is not the role he had here.

David Lombardi of the SF Standard wrote on July 27 that San Francisco's receiver unit posted the NFL's lowest separation scores over the past two seasons, and that Samuel was traded in 2025 after regression. That is Lombardi's characterisation of tracking data rather than a published figure, and it is his, so it is credited to him. It is also the reason this move should not be filed as an upgrade. The room's stated problem is separation. The answer arriving this week is a 30-year-old whom the same analysis placed among the causes.

None of which makes it a bad agreement at a ceiling of seven million. It makes it a continuity agreement. San Francisco is buying a known quantity who can be handed this playbook in August and already know it, which is a real thing to buy in the first week of August, and a different thing from buying production.

Why the room needed somebody this week#

Christian Kirk, who signed in March, strained his calf in the first practice of camp. Ricky Pearsall has swelling in his right knee that the team has related to the posterior cruciate ligament injury that limited him to nine games in 2025, and he did not practise Wednesday. Matt Maiocco said on KNBR on July 30 that if surgery is required, Pearsall would miss the season. Both tier-one accounts of that question are conditional, no decision has been reported by anyone, and this piece takes it no further than the reporting does.

The timing invites an inference that the reporting does not support. Barrows and Tafur write that San Francisco had been in talks with Samuel and his agent for the last month or so, which puts the negotiation weeks ahead of Wednesday's knee. Three receivers worked out here on July 29 and none of them signed. This was not a decision made on Wednesday. It was an existing conversation that closed when the room got thin.

George Kittle and Kyle Juszczyk had both lobbied for it publicly, on Samuel's own workout video, which is the least surprising sentence in this piece.

Somebody is owed two roster spots#

The club carried 91 players against the 90-man limit on July 30 and still carried 91 on Friday morning, counted from its own published roster rather than from yesterday's number. Two agreements against zero open spots means two corresponding moves are owed. No name has been reported, and the question of who goes is a separate piece that needs the names to be worth writing.


Correction, 2026-08-17

This piece stated that the club "carried 91 players against the 90-man limit" on July 30 and again on Friday, and built on it that "two agreements against zero open spots" required corresponding moves. The count of 91 listed names was right; the limit was not being exceeded. OL Isaac Alarcon has carried an NFL roster exemption since April 28, 2026 and does not count toward the 90 until the cut to 53, so the club held an open spot. The reporting on both agreements stands; the roster arithmetic built on top of it does not.

DS

Sources. Ian Rapoport's report as relayed by NFL.com, ESPN (Nick Wagoner), Pro Football Talk (Mike Florio) and Niners Nation (Kyle Posey), July 30. The Athletic (Matt Barrows and Vic Tafur), July 30, for the agent's terms, the length of the talks and the 2025 return yardage. David Lombardi, SF Standard, July 27, for the separation finding. Matt Maiocco, NBC Sports Bay Area and KNBR, July 29 and 30, for the Pearsall and Kirk availability. 2025 statistics from ESPN and NFL.com, alignment splits via Niners Nation. Roster count and transaction status from the 49ers' own roster page, read the morning of July 31. Contract status from Spotrac and Over The Cap, read the same morning.

Filed under 49ers

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

Earlier on the 49ers

The 49ers' First Depth Chart Lists Demarcus Robinson As A Starting Receiver
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 +305 On Your Screen Is Not The Price
The market

The +305 On Your Screen Is Not The Price

Every 49ers futures price quoted this month carries the sportsbook's margin baked into it, and nobody removes it before printing. Here is how to remove it yourself, what it does to the 49ers number, and why the cheaper venue is the one most Bay Area readers have never opened.

Casey MontgomeryAug 7, 20267 min read
The Melbourne Asterisk
Roster math

The Melbourne Asterisk

Opening the season in Melbourne compresses every rehab timeline the 49ers are running. The PUP decisions on George Kittle and Mykel Williams are the ones it touches hardest.

Grab Some PineJul 25, 20265 min read