How much of the real NBA CBA do we actually run? — Fantasy Dynasty
A technical, no-spin table of every real-CBA rule, its implementation status, and — the part no other platform can show — the per-league commissioner toggle that turns it on or off.
Most platforms either can't do salary-cap mechanics at all, or bolt on a rigid version you can't turn off. Here every mechanic is opt-in and enforced automatically. This page is deliberately honest: rows marked Partial or Planned say so.
Salary cap & contracts
- Salary cap (hard & soft) + floor [Live] — Commissioner toggle: Salary mode (cap-based). Native cap engine. NBA ~$200M, WNBA ~$7M matching the real economy. Floor enforced.
- Multi-year contracts [Live] — Commissioner toggle: Core (always on). Per-year salary structure, configurable max length. Carry across seasons in dynasty.
- Dead money on release [Live] — Commissioner toggle: Drop penalty %. Cutting a guaranteed deal leaves dead cap (current year + reduced future years), automatically.
- Rookie wage scale [Live] — Commissioner toggle: Rookie scale. Auto-generated scale by draft slot: guaranteed years + team option years.
- Individual max salary by service years [Live] — Commissioner toggle: Max salary. Tiered cap on a single contract: ~25% / 30% / 35% of the cap by years of NBA service.
- Team options [Live] — Commissioner toggle: Contract options. Final contract years flagged as team options, exercisable/decline-able before the off-season deadline.
- Player options / early termination (ETO) [Live] — Commissioner toggle: Player options. Player-held option years, mapped 1:1 from real contracts in Real-Salary leagues. A synthetic agent decides at rollover (opt-out when estimated market value beats the option salary); the commissioner can override. ETO is modelled as a player option.
- Rookie-scale extensions [Live] — Commissioner toggle: Rookie extensions. Extend a rookie-scale player before restricted free agency, within the extension window.
- Veteran extensions [Live] — Commissioner toggle: Veteran extensions. Extend any non-rookie contract: first new year up to max(140% of the last current year, 140% of the league average), Bird raises, 5 total seasons (6 for super-max). A rich extension (raise >20% or >4 new years) triggers a 6-month trade lock, per the CBA.
- Stretch provision [Live] — Commissioner toggle: Stretch provision. When cutting a player you may spread the guaranteed dead cap over (2 x remaining years + 1) seasons in equal shares. Off-season cuts stretch the current year too; in-season cuts keep year 1 at full schedule, per the CBA windows.
- Luxury tax [Live] — Commissioner toggle: Luxury tax. Graduated brackets above the tax line with real 2023-CBA rates and the 3-of-4 repeater rule. The fantasy currency is next season's cap: the bill is deducted from the taxpayer's cap and up to 50% of the pot is redistributed to non-taxpayers.
Free agency & Bird rights
- Bird rights (re-sign over the cap) [Live] — Commissioner toggle: Bird rights + Bird tiers. Full three-tier Bird by consecutive seasons with the team: Full (3+, up to the individual max), Early (2, max(175% of last salary, 105% of league average), min 2 years) and Non-Bird (120%s / QO). Trades preserve the Bird clock; waiver claims reset it. Pre-existing contracts are grandfathered as Full Bird.
- Cap holds + renounce [Live] — Commissioner toggle: Cap holds. Every one of your own expiring free agents leaves a hold on your books (190/150% Full Bird by league average, 300/250% off rookie scale, 130% Early, 120% Non-Bird) until you re-sign him or renounce — renouncing frees the cap but extinguishes his Bird rights. QO and rookie holds included.
- Cap exceptions (MLE / BAE / Room / minimum) [Live] — Commissioner toggle: Cap exceptions. Assigned each season by cap status: room teams get the Room exception; over-cap teams get the Non-Taxpayer MLE + Bi-Annual (alternate years); over the first apron only the Taxpayer MLE. Minimum contracts are always signable. Using the NT-MLE/BAE hard-caps you at the first apron, the TP-MLE at the second — real 2025-26 percentages of the cap.
- Restricted Free Agency (two-phase) [Live] — Commissioner toggle: Restricted FA. Qualifying offer tenders a player to RFA; rivals submit blind offer sheets; the incumbent has a matching window.
- Qualifying offer [Live] — Commissioner toggle: Restricted FA + Real QO. One-year tender that makes a player restricted. With the Real QO toggle the amount uses the actual CBA formula: rookie-scale year 4 x 140-160% by draft slot, 135% for second-rounders, adjusted by starter criteria computed from real minutes.
- Waiver wire [Live] — Commissioner toggle: Waivers. Waived players clear through waivers; claim priority by inverse standings; the claiming team assumes the contract with no dead cap for the cutter.
- Post-signing trade lock [Live] — Commissioner toggle: Signing trade lock. A just-signed free agent cannot be traded for a configurable window (default ~90 days), like the real CBA.
- Bird / extension timing locks (Jan-15, veto) [Partial] — Commissioner toggle: Signing trade lock. The post-signing lock and the 6-month lock on rich veteran extensions are enforced; the finer date rules (Jan-15 re-sign lock, one-year Bird veto) are designed, not yet shipped.
- Arenas provision (poison-pill offer sheets) [Planned] — Commissioner toggle: —. Ballooning third-year offer sheets for 1-2 year RFAs require per-year offer structures — designed, deliberately deferred to keep the released RFA flow stable.
Trades
- Salary matching (CBA formula) [Live] — Commissioner toggle: Trade matching. Over-the-cap teams must match incoming/outgoing salary within the real CBA bands; teams with cap room absorb freely.
- Traded Player Exception (TPE) [Live] — Commissioner toggle: Trade matching. An unbalanced trade banks a one-year exception equal to the shortfall, usable later to absorb salary.
- Retained-salary trades [Live] — Commissioner toggle: Salary retention. Keep a configurable fraction of an outgoing player's salary so the deal fits the receiving cap.
- Multi-team (3+) trades [Live] — Commissioner toggle: Core (always on). Native 3+ team trades with draft-pick legs, each side validated against its own cap.
- Hard-cap apron (double apron) [Live] — Commissioner toggle: Double apron. Two-tier apron: the historical absolute wall acts as the second apron, and the opt-in first apron (126.7%) brings the real restriction ladder — 100% flat trade matching above it, no prior-year TPEs, induced hard caps from exceptions, and a frozen own first-round pick for teams finishing above the second apron.
- Second-apron aggregation ban [Partial] — Commissioner toggle: Double apron. Declared adaptation: our second apron is an absolute wall (stricter than the NBA), so a team can never operate above it and the ban never has to trigger. The first-apron restrictions and the second-apron pick freeze are live; the pick sliding to the end of round 1 is not modelled.
- Trade Committee (league veto) [Live] — Commissioner toggle: Trade Committee. Optional league-vote veto on trades, to police collusion.
- Sign-and-trade [Live] — Commissioner toggle: Sign-and-trade. Sign your own held free agent (3-4 years, within his Bird tier) directly into a trade. The receiving team must stay below the first apron and gets hard-capped there; Base Year Compensation applies to the sender's matching salary, per the CBA.
Draft & anti-tanking
- Protected draft picks + rollover [Live] — Commissioner toggle: Core (always on). Trade future picks with protections (Top-3, lottery, ...); a triggered protection returns the pick and generates a compensatory rollover.
- Stepien rule [Live] — Commissioner toggle: Stepien rule. Blocks trading away first-round picks in consecutive future years.
- Draft lottery [Live] — Commissioner toggle: Core (always on). Rookie draft order from inverse standings, with a lottery reveal.
- Rookie draft [Live] — Commissioner toggle: Core (always on). Annual draft of incoming rookies, multi-round, with the wage scale applied.
- Expansion draft [Live] — Commissioner toggle: Expansion draft. Add franchises NBA-style: protection windows, a live snake expansion room, contracts transfer with no dead cap.
- Play-in tournament [Live] — Commissioner toggle: Playoff format. Optional play-in round before the fantasy playoffs.
Roster rules
- Taxi squad + poaching [Live] — Commissioner toggle: Taxi squad. Stash prospects; rivals can poach, the owner has matching rights, and un-matched poaches pay draft-pick compensation.
- Injured reserve (IR) [Live] — Commissioner toggle: IR slots. Dedicated IR slots that don't count against the active roster limit.
- Roster slot limits [Live] — Commissioner toggle: Roster limits. Configurable active / taxi / IR slot counts per league.
On every other platform, whatever CBA mechanics exist are fixed. Here, column 3 is the product: each rule above is a switch the commissioner flips per league, and can change season over season without migrating. Start as a casual redraft and adopt the CBA one rule at a time — or turn it all on for a full GM simulation.
The Salary Engine · The Salary Playbook · Start playing free