contract-rules

a-jay85's avatarfrom a-jay85

IBL CBA salary cap rules including Bird Rights, veteran minimums, and maximum contracts. Use when working on extensions, free agency, negotiations, or salary calculations.

⭐0stars🔀1forks📁View on GitHub🕐Updated Jan 11, 2026⬇️2downloads

When & Why to Use This Skill

This Claude skill serves as a specialized logic engine for IBL CBA (Collective Bargaining Agreement) salary cap management. It provides automated calculations and rule validation for complex financial scenarios including Bird Rights eligibility, veteran minimums, and maximum contract tiers, ensuring all player negotiations and extensions remain compliant with league regulations.

Use Cases

  • Determining maximum contract offers for free agents by calculating first-year salary caps based on years of experience.
  • Validating Bird Rights eligibility for players to apply the correct annual raise percentage (10% vs 12.5%) during extension talks.
  • Automating the generation of multi-year Mid-Level Exception (MLE) offer schedules with predefined annual raises.
  • Ensuring roster compliance by cross-referencing player experience with the mandatory veteran minimum salary table.
  • Streamlining salary cap planning for front-office modules like Free Agency, Negotiations, and Waivers using standardized PHP helper methods.
namecontract-rules
descriptionIBL CBA salary cap rules including Bird Rights, veteran minimums, and maximum contracts. Use when working on extensions, free agency, negotiations, or salary calculations.

IBL Contract Rules (CBA)

Salary cap rules from ContractRules class. Used by Extension, FreeAgency, Negotiation, and Waivers modules.

Bird Rights

Threshold

Player must play 3+ consecutive years with the same team.

Raise Percentages

Status Max Annual Raise
Without Bird Rights 10%
With Bird Rights 12.5%

Helper Methods

use ContractRules;

$hasBird = ContractRules::hasBirdRights($yearsWithTeam); // bool
$raisePercent = ContractRules::getMaxRaisePercentage($yearsWithTeam); // 0.10 or 0.125

Veteran Minimum Salaries

Experience Minimum Salary
10+ years $103
9 years $100
8 years $89
7 years $82
6 years $76
5 years $70
4 years $64
3 years $61
2 years $51
1 year (rookie) $35
$minSalary = ContractRules::getVeteranMinimumSalary($experience);

Maximum Contract Salaries (First Year)

Experience Max First-Year Salary
10+ years $1,451
7-9 years $1,275
0-6 years $1,063
$maxSalary = ContractRules::getMaxContractSalary($experience);

Salary Exceptions

Mid-Level Exception (MLE)

6-year contract with 10% annual raises:

Year Amount
1 $450
2 $495
3 $540
4 $585
5 $630
6 $675
$mleAmounts = ContractRules::getMLEOffers($years); // array of amounts

Lower-Level Exception (LLE)

Maximum: $145

$lleAmount = ContractRules::LLE_OFFER; // 145

Usage Example

use ContractRules;

// Calculate max offer for a player
$experience = 8;
$yearsWithTeam = 4;

if (ContractRules::hasBirdRights($yearsWithTeam)) {
    $maxRaise = ContractRules::BIRD_RIGHTS_RAISE_PERCENTAGE; // 0.125
    $maxFirstYear = ContractRules::getMaxContractSalary($experience); // 1275
} else {
    $maxRaise = ContractRules::STANDARD_RAISE_PERCENTAGE; // 0.10
}

// Or get veteran minimum as floor
$minOffer = ContractRules::getVeteranMinimumSalary($experience); // 89

Examples

See examples/ for calculations: