Happy Halloween!

Merry Christmas and happy holidays! 🎄

Season 13 Week 1 Regular Season

Contracts and Salary

Contracts and Salary

Purpose

This page defines contract and salary rules that are currently enforced by contract models, forms, and transaction flows.

Policy

  1. Active contracts are stored in ContractLog and include start_season, length, current_year, current_payment, and active status fields.
  2. Per-year terms are stored in ContractYear rows linked to each contract.
  3. Contract-year option types are limited to:
  4. None
  5. Player Option
  6. Team Option
  7. Rookie Option
  8. Contract form constraints enforce:
  9. contract length between 1 and 4 years
  10. current year between 1 and 4
  11. current year cannot exceed contract length
  12. Contract-year form constraints enforce:
  13. each entered year must include both year number and payment
  14. at least one complete contract year is required to save
  15. year numbers must be unique per contract form submission
  16. Standard offer creation endpoints are restricted to the FREE_AGENCY phase.
  17. Offer acceptance for non-extensions is restricted to FREE_AGENCY; extension acceptance is exempted from that specific gate.
  18. Offer target season selection is phase-aware:
  19. during MORATORIUM or FREE_AGENCY, offers target the current season record
  20. otherwise, offers target the next season record
  21. Team and rookie option decisions are restricted to MORATORIUM or FREE_AGENCY.
  22. Player option decisions are owner-scoped; declining a final pending option during MORATORIUM can release the player and set extension rights to the prior team.
  23. Salary payment logging enforces a seasonal SP ceiling through configured MAX_SP_SEASON.

Operational Notes

  • The player record tracks contract linkage and rights states (rights_holder, extension_rights_team) used by option and free-agency flows.
  • Option decision visibility and behavior are phase-dependent and validated in views/tests.

Known Gaps (TBD)

  • Public-facing cap-table policy and hard/soft cap interpretation.
  • Offer expiration windows and expiration-reason policy text.
  • Clause policy details (no_trade_clause, no_release_clause) for enforcement and exceptions.
  • Contract invalidation and correction/remediation policy text.
  • Dispute and audit policy for contract data changes.

Change Log

  • 2026-03-15: Initial scaffold created.
  • 2026-03-18: Replaced scaffold with repository-backed contract and salary policy baseline.