That’s not the entire cap hit but it does represent a large chunk of it.
Cap economics are weird. If you execute a trade, you are often still be on the hook cap-wise depending on how you structured the bonuses and guaranteed money.
You can spread the signing bonus over the entirety of the contract, even if you paid it out immediately. So for a 5 year contract, you can spread the cap out over 5 years.
But if you trade or cut the player after 1 year or the player retires, you take the entire cap hit for that bonus the next season (you’ve already paid it out after all). That’s “dead money” and teams hate it, of course, and will avoid it. That’s why some players may get to stick around for another season even if their performance isn’t great or the team is moving on - they’d rather try to get value instead of eating potentially tens of millions in dead cap space.
Contract extensions are also weird, in that signing bonuses for those get spread out over the length of the entire contract, rather than extensions. So if a player is already under contract for 3 seasons, then extended for another 4 seasons, the cap hit can be spread over the next 7 seasons, i.e. 3 more years than the player is under contract.
And while a team can spread that money out, there’s clearly an incentive to pay as much of it now as possible (Jimmy G’s contract in SF was like this - $37 million cap hit up front in his first season and $3 million spread out on a $40 million first year). It’s just that it’s not always possible to do so and leave flexibility for other signings.
Then there’s performance based bonuses, which have a bit of subjectivity to them. If a RB has a performance incentive to run 500 yards this season, that’s very likely to be reached and will be counted against the cap provisionally. But if their incentive bonus is 2500 yards and winning the Super Bowl (say it’s the Jags), the bonus is not considered realistically achievable and doesn’t count against the cap.