Overview
Contract and salary data includes current player salaries, contract options (player/team options), team cap holds, dead money, and historical salary information. Data is scraped from Spotrac and RealGM, covering current contracts and multi-year projections.Data Files
Current Salaries
Active player contracts and future years
salary.csv
Contract Options
Player/team options and deadlines
option.csv
Salary Cap Info
League salary cap, luxury tax, aprons
cap.csv
Historical Salaries
Historical player salaries (1991-present)
nba_salaries_master.csv
Cap Holds
Team cap holds
nba_cap_holds.csv
Dead Money
Released player cap hits
nba_dead_money.csv
Schema: Current Salaries
File:salary.csvGenerated by:
contract_data.pyRecords: ~500 active players
Source: Spotrac team pages
Updated: Current season + 5-6 year projections
Fields
- Player Info
- Salary by Season
- Guaranteed Money
Sample Data
A value of
0 indicates no contract for that season (free agent, option declined, or contract expired)Schema: Contract Options
File:option.csvGenerated by:
contract_data.pySource: Spotrac “Upcoming Deadlines” tables
Fields
Player name
Team abbreviation
Option type for 2024-25 season
Option type for 2025-26 season
Option type for 2026-27 season
Option type for 2027-28 season
Option type for 2028-29 season
Option Types
Option Type Values
Option Type Values
| Code | Meaning |
|---|---|
P | Player option (player decides to opt in/out) |
T | Team option (team decides to exercise or decline) |
NG | Non-guaranteed (team can release without penalty) |
EE | Extension eligible |
RFA | Restricted free agent |
UFA | Unrestricted free agent |
0 | Fully guaranteed, no option |
Sample Data
Schema: Salary Cap Information
File:cap.csvSource: RealGM salary cap info
Records: Annual cap levels from 1990-present
Season format: “2024-25”
Ending year (2025 for 2024-25)
Team salary cap (in dollars)
Luxury tax threshold
First apron threshold (new CBA)
Second apron threshold (new CBA)
Bi-annual exception amount
Non-taxpayer mid-level exception (MLE)
Taxpayer mid-level exception
Room exception for teams under cap
Schema: Historical Salaries
File:nba_salaries_master.csvRecords: ~35,000+ player-season-team records
Coverage: 1991-present
Player name
Salary for that season (in dollars)
Team abbreviation
Season year
NBA player ID (when available)
Sample Data
Usage Examples
Current Top Salaries
Players with Options
Team Salary Cap Analysis
Contract Flexibility
Historical Salary Inflation
Guaranteed Money Leaders
Data Collection Scripts
contract_data.py
Scrapes Spotrac for current contracts and options
salary_scrape.py
Historical salary data collection
price.py
Salary cap information scraper
Important Notes
- Salary values are in US dollars (not scaled)
- Guaranteed column accounts for player/team options and non-guaranteed years
- Some contracts include trade kickers, incentives not reflected in base salary
- Dead cap is included in team salary totals
CBA Rules Reference
Salary Cap Mechanics
Salary Cap Mechanics
- Salary Cap: Soft cap, teams can exceed via exceptions
- Luxury Tax: Tax penalty for exceeding threshold
- First Apron: Restricts some team-building options (no BAE, limited TPE)
- Second Apron: Severe restrictions (no MLE, can’t aggregate salaries in trades, frozen draft picks)
- Mid-Level Exception (MLE): Allows over-cap teams to sign players
- Non-taxpayer MLE: ~$12-13M
- Taxpayer MLE: ~$5M
- Bi-Annual Exception (BAE): ~$4-5M, can’t use if over first apron