Detailed explanation of the Supabase PostgreSQL database schema.
The database for the Ottoneu Fantasy Football League 309 contains eleven main tables, all with UUID primary keys.
players: Core metadata for each player.
ottoneu_id.name, position, nfl_team, is_college fields.player_stats: Seasonal statistics for each player.
player_id references players(id).(player_id, season).total_points, games_played, snaps, ppg (Points Per Game), and pps (Points Per Snap).league_prices: Current salary and team ownership states for players in a specific league.
player_id references .players(id)(player_id, league_id).league_id, price (salary), and team_name (the fantasy team that owns the player).transactions: Structured event log representing roster moves.
player_id references players(id).league_id, season, transaction_type, team_name, from_team, salary, transaction_date, and raw_description.(player_id, league_id, transaction_type, transaction_date, salary) to prevent duplicate entries.surplus_adjustments: Manual value overrides used to override VORP-calculated dollar values.
player_id references players(id) and user_id references users(id).(player_id, league_id, user_id).adjustment (numeric) and notes.player_projections: Calculated projection outputs from the Python backend.
player_id references players(id).(player_id, season).projected_ppg and projection_method.users: User accounts for authentication and access control.
email.password_hash, is_admin, and has_projections_access.nfl_stats: Pure NFL stats from nflverse-data, 2010-present.
player_id references players(id).(player_id, season).games_played, passing_yards, rushing_tds, targets, snaps, etc.arbitration_plans: Named arbitration budget allocation plans per user.
user_id references users(id).(league_id, name, user_id).league_id and name.arbitration_plan_allocations: Per-player dollar allocations within an arbitration plan.
plan_id references arbitration_plans(id) and player_id references players(id).(plan_id, player_id).allocation (dollar amount).scraper_jobs: Persistent job queue for the backend data pipeline.
task_type, status, depends_on, error_message, and timestamps.