Reset Player Data
Wipe all players, contracts, metrics, draft runs, and protection lists. Keeps the Season and recreates all 30 NBA teams. Use this before a fresh CSV import.
Status: Checking...
Step 1: Stats CSV Uploadcreates players
Paste per-game stats CSV from Basketball-Reference. This creates Player records for every row, plus their season metrics. Upload this first.
Step 2: Contracts CSV Uploadcreates contracts
Paste contract CSV from Basketball-Reference. Matches to players created in Step 1 and creates Contract records with salary and years remaining.
Step 3: Data Quality Report
Check for issues after CSV imports: players on multiple teams, missing contracts, duplicates, roster size anomalies, and more.
Add Missing Player
Manually add players who aren't in the BBR stats CSV (e.g. injured all season like Haliburton, Tatum). Creates the player with a contract and 0-game metrics.
Move Player (Mid-Season Trade)
Reassign a player's metrics + contract to a new team (e.g. traded but hasn't played yet).
Step 4: GM Key Protection Lists
Generate the canonical protection list once. All draft runs use this as the default until regenerated. Run after loading contracts and metrics.
Data Provider Sync
Fetch real NBA data (teams, players, contracts, stats). Add an API key to .env.
All data is for the 2025-26 season.
Add SPORTSDATAIO_API_KEY or BALLDONTLIE_API_KEY to .env. Keys are never sent to the client.