Guides · 2026-07-08
How to run a salary-cap dynasty league
A salary cap is the single best upgrade a dynasty league can make: it turns every roster decision into a real trade-off, makes bad contracts matter, and gives rebuilding teams an actual currency (cap space) to work with. It is also the format most likely to burn out its commissioner — because someone has to keep the books. This guide covers both halves: designing rules that hold up, and running them without losing your weekends.
1 · Pick your cap model
Decide three things before anything else, and write them down:
The cap number. Anything works — $200m to mirror the NFL, $100 for round numbers, or auction-budget scale. What matters is that contracts are priced in the same units everywhere, forever. Changing units mid-flight is the most painful migration a cap league can attempt.
Hard or soft. A hard cap (you simply may not exceed it) is dramatically easier to adjudicate than a soft cap with penalty taxes. Most leagues that start soft end up hard within two seasons.
Contract shape. The standard that works: every player signs for 1–5 years at a salary set by auction or rookie scale; salaries are flat or escalate by a fixed percentage; a contract’s final year is marked with what happens next — UFA (walks), RFA (you can match), or a team option. Leagues that let owners hand-craft arbitrary contract structures generate arguments in year two.
2 · Decide what cutting costs
Dead money is what makes a cap league a cap league. If cutting a player is free, contracts are meaningless. The common structure: cutting a player leaves a percentage of his remaining salary on your books — 50% is typical, some leagues taper it by years remaining. Whatever you choose, the rule must produce a specific number a spreadsheet can compute, not a judgment call. The same goes for trades: decide up front whether teams may retain salary in a trade (it makes deals dramatically more possible) and cap the retained share.
3 · Build the spreadsheet
Every cap league runs on a commissioner’s spreadsheet, and after linking many of them we can tell you the shape that works:
One tab per team, same layout. Player rows with a column per season year; the salary sits in the year cell. Tags like UFA/RFA/TEAM go in the year after the contract’s last paid year, so the expiry is visible at a glance.
A cap-summary block per tab — total expenses, cap, and space per year, computed by formulas from the rows above. This is your reconciliation anchor: if the sheet’s own totals don’t match its own rows, you find out here.
Adjustments as labeled rows — dead money from a cut, retained salary from a trade, penalties — each with a name that says where it came from, signed so the math is just a sum. Off-cap sections (practice squad, taxi, D-League) live below, clearly separated, excluded from totals.
And the honest warning: in our experience roughly one tab in ten in a real league’s sheet is quietly inconsistent with itself — a SUM range that didn’t stretch when rows were added, a manual override someone forgot, a whole tab offset by a year. Audit your formulas at rollover, every season.
4 · Running the season
The commissioner’s recurring jobs: enter salary changes (signings, cuts, trades) promptly — the league trusts the sheet exactly as much as it is current; answer “who has cap space?” before every trade deadline; and at season rollover, shift the year window, drop expired contracts, and re-audit the formulas. Do trades with retention by writing two adjustment rows — one negative on the retaining team, one positive on the receiving team — labeled with the player’s name so future-you knows why they exist.
What _.gm automates
Everything in section 4 is why we built _.gm: your sheet stays the source of truth, exactly where it is, and every team gets a live cap dashboard on top of it — rosters synced from Fantrax or Sleeper, salaries flowing in on every edit, and a Trade Machine that does the retention math from section 2 automatically, year by year, for both sides of a deal. The reconciliation check from section 3 runs on every sync, so the “one tab in ten” problem surfaces itself instead of surfacing in a playoff dispute.