The audit

My August Estimate Said $57 Million. Over The Cap Says $45,532,257.

Both books flipped to full-season accounting before San Francisco played a down. Over The Cap now publishes $45,532,257, down $22,523,241 in two weeks, and Spotrac publishes $50,209,913. The August estimate here put the smaller figure between $57,230,166 and $58,212,966. Three lists of men who are not on the active roster carry $39,632,011 between them, none of the three was in that estimate, and the disagreement between the two books has fallen from $11,991,268 to $4,677,656.

JS
Jamie SilvaSep 10, 20268 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.

Two weeks ago the estimate here said San Francisco would open the regular season with something close to $57,230,166 in cap space on Over The Cap, and no more than $58,212,966.

Over The Cap published $45,532,257 on Thursday morning.

That is a miss of $11,697,909 at the friendliest reading of my own range and $12,680,709 at the other end. The direction was right and the size was wrong, which this desk scores as a miss rather than a win with an asterisk. What follows is where the money went, because the interesting part is not that the number moved. It is that almost none of it moved for the reasons I listed.

Ricky Pearsall in a red San Francisco practice jersey and black shorts, running upfield with the ball tucked under his right arm at a training camp session, an official in a striped shirt walking behind him and a black banner reading San Francisco 49ers along the fence.
Ricky Pearsall at training camp in July. His $3,419,563 was the only injured-reserve charge that reached San Francisco's published cap number in August. This morning all eleven of them do. Photo: San Francisco 49ers

The switch did not wait for San Francisco#

The August version of this argument carried a four-row table of dates, and its last row said the accounting changes when San Francisco opens against the Rams in Melbourne on Thursday, September 10.

The date was right and the trigger was wrong. San Francisco plays the Rams tonight in East Melbourne, at 8:35 p.m. Eastern on Netflix, and has not run a play. Both books had already flipped to full-season accounting before kickoff. The league's regular season opened Wednesday night, when Seattle beat New England 13 to 10, and every club's sheet moved with it.

So the number San Francisco carried into its own opener was already the regular-season number. Nothing about tonight changes it.

Where the $22,523,241 went#

Over The Cap charged $272,507,601 against the cap on August 27 and charges $295,030,842 this morning. Cap space fell by exactly that difference, $22,523,241, from $68,055,498 to $45,532,257.

Four lines account for it, and they close to the dollar.

The three reserve lists moved San Francisco's cap number more than cutting the roster from ninety men to fifty-three did

Change in Over The Cap's published San Francisco charges between August 27 and September 10, 2026, by component. Bars are scaled against a common axis of $42,000,000 and show size, not direction; the active-roster line fell and the other three rose. The four sum to the net change exactly.

Reserve lists switch oninjured reserve, PUP and a suspension, rose
$39,632,011
Active rosterninety bodies under the top 51 became fifty-three, fell
$26,104,980
Net change in chargesthe four lines combined, rose
$22,523,241
Practice squad switches onseventeen men, rose
$4,617,000
Dead moneyrose
$4,379,210

Read the top two bars against each other. Going from ninety bodies to fifty-three took $26,104,980 off the active line. Switching on three lists of players who are not on the active roster at all put $39,632,011 back. The cut everybody watched in August was the smaller event.

My August model had the practice squad and the dead money. It did not have the reserve lists, and they are the whole ballgame.

The paragraph that named the hole and got the size wrong#

The August limits section said this, and it is worth quoting because it is the exact shape of the error:

It does not account for reserve/PUP. Isaac Guerendo and Mykel Williams are on that list now, and a player who stays there counts in the regular season without occupying one of the 53. Williams' charge is already inside the top 51, so the effect on the estimate is small, but it is not zero and it is not modeled.

Reserve/PUP is $6,675,370 this morning across those same two men. That alone is more than half of the entire flip I had modelled. Injured reserve is $19,290,851 across eleven men, against $5,604,563 across five in August, of which only Ricky Pearsall's $3,419,563 reached the published number. And there is a third list I never mentioned at all, carrying $13,665,790 for one suspended player.

Three lists, $39,632,011, and being fair to the August version matters here. Injured reserve was not ignored: it got four paragraphs, because the two books charged the same $5,604,563 pool differently and that was worth $2,185,000 of the disagreement between them. Reserve/PUP got the sentence above. The suspension list got nothing.

But the estimate of what the flip would cost had exactly three inputs, and not one of them was a reserve list. I had spent the piece explaining how injured reserve worked under the top-51 rule and then failed to ask what happens to it when the top-51 rule stops.

The lesson is not that the model needs more inputs. It is that a limits section is where a writer stores the things that worry him, and I wrote down the right worry and then sized it by eye instead of adding it up. Adding it up would have taken four minutes.

What the model did get right#

An audit that only prints misses is not an audit.

The practice squad landed inside the modelled range. I said $3,960,000 at the cheapest legal mix and $4,942,800 at the most expensive; Over The Cap charges $4,617,000 across seventeen men. Dead money was close: modelled at $3,622,611 on a scenario that released the thirty-nine cheapest contracts, and it actually rose $4,379,210, light by $756,599.

The 52nd and 53rd contracts were the weakest of the three. I named Jalen Graham and Jordan James at $2,259,921 between them. The two men who actually sit below Over The Cap's printed top-51 cutoff are Kurtis Rourke and James Thompson Jr. at $1,813,559, Graham is on the practice squad, and James is on the active roster well above the line. Wrong names, and $446,362 light.

And one accidental hit worth naming, because it flatters nobody. The August version said the smaller of the two published numbers would still lead the league by about $11,822,439. San Francisco leads Atlanta this morning by $12,294,341, which is off by $471,902. The level was wrong by nearly $12 million and the margin it implied was right within half a million, because every club's number fell with San Francisco's. The league median went from $20,442,959 to $11,368,135, and second place from Tennessee at $45,407,727 to Atlanta at $33,237,916. A ranking survives an error that a level does not, and I would not have been able to tell you that in advance.

The two books moved toward each other#

The August finding was that Spotrac and Over The Cap disagreed by $11,991,268, and that the disagreement was larger than everything the calendar was about to add.

They disagree by $4,677,656 this morning. Spotrac publishes $50,209,913 and Over The Cap publishes $45,532,257, and both still rank San Francisco first in the NFL.

Over The CapSpotrac
Cap limit$340,563,099 (derived)$341,170,524 (stated)
Active roster$209,931,825 across 53$211,991,817 across 53
Injured reserve$19,290,851 across 11$19,290,851 across 11
Reserve/PUP$6,675,370 across 2$6,675,370 across 2
Suspension or non-reporting$13,665,790 for 1$7,363,790 for 1
Practice squad$4,617,000 across 17$4,536,000 across 17
Dead money$40,850,006 across 14 names$41,102,783 across 28 names
Total charges$295,030,842$290,960,611
Cap space$45,532,257$50,209,913

Both books close against their own stated fields. Over The Cap's six lists sum to $295,030,842 exactly, and $340,563,099 less that is $45,532,257 to the dollar. Spotrac's own summary table states $341,170,524 and $290,960,611, and the difference is $50,209,913 to the dollar.

The two of them now agree perfectly on injured reserve and on reserve/PUP: $19,290,851 and $6,675,370, the same men, the same totals, no rounding. In August they charged the identical injured-reserve pool differently, and that convention gap is gone.

The gap is now one status disagreement and one left tackle#

The books disagree about one player's status more than about everything else combined

The five components of the $4,677,656 difference between Spotrac's and Over The Cap's published San Francisco cap space, read Thursday, September 10, 2026. Bars are scaled against a common axis of $7,000,000. Three components push toward Spotrac showing more room and two push the other way; the five sum to the difference exactly.

Suspension or non-reportingOver The Cap charges $6,302,000 more for one man
$6,302,000
Active rosterSpotrac charges more
$2,059,992
The cap limitSpotrac starts with more
$607,425
Dead moneySpotrac charges more
$252,777
Practice squadOver The Cap charges more
$81,000

The largest bar is not a pricing dispute. It is a disagreement about what happened to a player.

Over The Cap carries one man on a list it calls Suspended, at $13,665,790. Spotrac carries the same man on a list it calls Reserve/Did Not Report Camp, at $7,363,790. The two sites are not arguing about arithmetic. They have filed the same absence under two different headings, and the headings carry different money. That single line is $6,302,000 of a $4,677,656 gap, which is to say the gap would run the other way without it.

The second bar has a name and it is the same name as in August. Spotrac carries Trent Williams at a 2026 cap number of $22,512,842 and Over The Cap carries him at $20,012,845. That is $2,499,997 on one left tackle, unchanged since August 8, thirty-three days. It is also larger than the entire $2,059,992 active-roster difference, which means the other fifty-two men on the roster net $440,005 in the opposite direction. The books are not sloppy about the rest of them. Alfred Collins is $2,342,478 on one and $2,342,474 on the other, four dollars apart.

Two lines that do not sum, in opposite directions#

Both books hide a line, and both do it in the printed summary rather than in the arithmetic.

Over The Cap prints a dead-money total of $40,850,006. The fourteen names under it sum to $40,309,463. There is $540,543 of dead money in the total with nobody's name attached to it. The top-level reconciliation still closes, because the total is what feeds it, but a reader adding the visible rows lands $540,543 short. Spotrac names twenty-eight dead-money charges to Over The Cap's fourteen, down to a $5,000 charge on a waived punter, so a difference in how far down each site publishes is the obvious candidate. It is a candidate and not a finding; neither site explains it.

Spotrac's summary table runs from the adjusted cap through active roster, injured reserve, reserve/PUP, practice squad and dead money to total allocations. Those five lines sum to $283,596,821. The stated total is $290,960,611. The missing $7,363,790 is the Reserve/Did Not Report Camp charge, which Spotrac counts and does not list in the summary it shows you.

One more, on Over The Cap's own page. It prints a figure labelled Top 51 at $235,011,894, and the fifty-one active-roster rows above its own printed cutoff sum to $208,118,266. The label is doing something other than what it says. Pool every player charge on the page, the active roster plus injured reserve plus reserve/PUP plus the suspension, take the largest fifty-one, and the total is $235,011,894 exactly. So it is a top 51 of the whole roster rather than of the active list, and in the regular season it feeds nothing: cap space comes off total liabilities.

The three calls, five days early#

The August piece filed three Called Shots, all resolving September 15. Here is where they stand on the morning of the tenth, scored against the same two public pages they were written to be scored against.

The callThresholdThis morningStanding
Over The Cap's cap spacebelow $60,000,000$45,532,257On track, right
Spotrac's space over Over The Cap'smore than $5,000,000$4,677,656On track, wrong by $322,344
Trent Williams, the two books apartmore than $2,000,000$2,499,997On track, right

The first one is a right call sitting on a broken model, and it is worth being clear about which of those two things matters. The threshold was $60,000,000 and the number is $45,532,257, so it clears by $14,467,743 and would need the number to rise $14,467,744 by Tuesday to fail. It clears because I set a wide threshold, not because the estimate underneath it was any good.

The second one is the honest loss. My own note filed with it said that if the gap collapsed below $5,000,000 it would mean the disagreement had mostly been a top-51 artifact and the reading was wrong. That is what happened, and the pre-registered interpretation stands: most of the $14,800,787 I labelled a pricing difference in August was two books counting different numbers of men, not pricing the same men differently. The genuine pricing difference, now that both books count fifty-three, is $2,059,992, and one player is more than all of it.

Three hundred and twenty-two thousand dollars is close enough that a single transaction could still rescue it, which is not a defence, just the arithmetic. Alfred Collins is the obvious candidate and he does not move it much. He tore a patellar tendon at Tuesday's practice in Melbourne, which was Monday night in the Bay Area, and is out for the season, and he is still on the active roster in both books this morning. Moving him to injured reserve shifts about $2.34 million from one column to another inside each book and changes neither total, and the books are four dollars apart on him. A replacement signing would add to both.

What this does not show#

It does not show that either site is wrong about anything. Every figure above is one of theirs, and both close against their own stated fields.

It does not establish why the two books file one player's absence under different headings, or which heading is correct. It measures that they do and prices the consequence.

It does not attribute the whole $22,523,241 to the accounting flip. Two weeks passed. San Francisco cut its roster to fifty-three, signed a practice squad, and lost at least two defensive linemen to injury in that window, and injured reserve grew from five men to eleven for reasons that have nothing to do with a rule change. The flip is why those eleven are charged in full; it is not why there are eleven.

And it does not explain the $540,543. That is a measured gap between one site's printed total and its own printed rows, with a candidate cause and no confirmation.

Method

Both cap pages were opened in a browser and read on Thursday, September 10, 2026: Over The Cap's San Francisco team page and its league cap-space table, and Spotrac's San Francisco 2026 cap page. Every subtotal was recomputed from the rows in each page's own tables rather than taken from the summary line, which is how the $540,543 dead-money remainder and the $7,363,790 omission from Spotrac's summary were found. The Top 51 hypothesis was tested by pooling all player charges on the page and taking the largest fifty-one; it matched to the dollar, and it matched identically whether or not the practice squad was in the pool, because no practice-squad charge is large enough to reach the top fifty-one. August figures are from the August 27 reading, which used the same method. Schedule facts are from the NFL's own Week 1 page. Known weakness: this is two readings two weeks apart, so it cannot separate the accounting change from ordinary roster movement inside the window, and it does not attempt to.

Three new calls are filed with this piece, all scored off the same two public pages.

The first is that the two books still publish San Francisco cap-space figures within $5,000,000 of each other on November 5, 2026. The mechanism is that the suspension line is the only large component left, and it runs one way while Trent Williams runs the other.

The second is that Over The Cap and Spotrac still state Trent Williams' 2026 cap number exactly $2,499,997 apart on November 5, 2026. Not more than two million, which is the August call and the easy version. The exact figure, unchanged, which breaks if either site touches him at all.

The third is that Over The Cap's published San Francisco injured-reserve total is above $21,000,000 on October 15. It sits at $19,290,851 with a season-ending injury already reported and not yet processed, and it falls whenever anybody is activated, which happened once already this month.

The estimate that produced this morning's number was wrong by about twelve million dollars. The three lists that made it wrong were sitting on the same page the whole time, in bold, with totals printed next to them.

Filed under 49ers

More on Trent Williams

His page →
Nick Bosa and DeForest Buckner practiced together for the first time since 2020
49ers Notebook

Nick Bosa and DeForest Buckner practiced together for the first time since 2020

Nick Bosa returned to practice as a limited participant Wednesday, his first work since a Sept. 24 calf strain, alongside DeForest Buckner. The 49ers opened practice windows for Demarcus Robinson and Nate Hobbs, Christian McCaffrey, Deebo Samuel, Mike Evans and Trent Williams did not practice, and Kyle Shanahan said Jauan Jennings did get on a FaceTime call before the Minnesota trade fell through.

Sam KezarNov 4, 20263 min read
Nick Bosa missed Thursday too, and Lynch put him in the Evans bucket
49ers Notebook

Nick Bosa missed Thursday too, and Lynch put him in the Evans bucket

Nick Bosa did not practice Thursday, per the 49ers' official report, a day after Kyle Shanahan said he hoped Bosa would. Mike Evans missed a second day, listed with ribs and Achilles tendinitis. John Lynch told KNBR that Evans's status is 'still TBD' and that Bosa is 'in that same Mike Evans bucket,' with an answer from Shanahan due Friday. Mykel Williams returned as a limited participant and Trent Williams was full after Wednesday's rest day. Eight players missed both days.

Sam KezarOct 22, 20263 min read
Mike Evans practiced Friday, but he is a game-time decision against Denver
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

On the record

Called Shots →
Held upAug 27, 2026

Spotrac and Over The Cap still state Trent Williams' 2026 cap number more than $2,000,000 apart on September 15, 2026. The take is WRONG at $2,000,000 or below.

Spotrac carries him at $22,512,842 and Over The Cap at $20,012,845, a difference of $2,499,997 that was the same on both books when they were read on August 8, 19 days ago. He is the largest named component of the $14,800,787 pricing line. If one book moves to the other, the difference was an input error that got corrected; if it holds, it is a treatment difference on a real contract and the larger gap has a structural cause.

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

Leading the NFL in efficiency at 5-0 has been worth less than half a win
The projection

Leading the NFL in efficiency at 5-0 has been worth less than half a win

From 1999 through 2025, 51 NFL teams won their first five games, and they won 63 percent of their remaining games. The ten that also led the league in net expected points added per play after five games won 66 percent of the rest; the other 41 won 63 percent. Over the 49ers' 12 remaining games that gap is about four-tenths of a win. San Francisco is 5-0, has outscored opponents by 61 points and ranks first in net expected points per play. The base rate projects about 12.6 to 12.9 wins.

Jamie SilvaOct 15, 20265 min read
Brett Toth's Undisclosed Injury Was A Concussion, And This Board Took Him Off The 53
Camp Notebook

Brett Toth's Undisclosed Injury Was A Concussion, And This Board Took Him Off The 53

Saturday's notebook: the undisclosed injury this beat has been carrying for three days got a name and cost its owner a place on this site's projected 53, Connor Colby lost most of a one-on-one session two days after losing the first-team reps, the defence intercepted Brock Purdy twice in the red zone, and the head coach took a podium for the first time since his car accident.

Sam KezarAug 8, 20268 min read
San Francisco Has Never Been Over The Roster Limit. The 91st Man Has A Name And An Exemption.
Roster

San Francisco Has Never Been Over The Roster Limit. The 91st Man Has A Name And An Exemption.

Isaac Alarcon does not count against the 49ers' 90-man offseason roster. The NFL granted San Francisco an exemption for him in April, which means the club has been sitting exactly on the limit rather than one body above it, and that every signing since has cost somebody a job by rule rather than by choice. Sunday produced four transactions, two of them replacements for men who broke on Saturday, and three edge-rusher workouts that say the club is not finished.

Sam KezarAug 2, 20265 min read