Entity Relationship Overview
Tables
conferences
The top-level organizational unit. Seeded with 10 real conferences.universities
Each institution belongs to one conference.sports
Global sport definitions shared across all universities.
Seeded: Football, Basketball (M), Basketball (W), Baseball, Track & Field, Soccer (W)
positions
Sport-specific positions.
Seeded: 10 Football positions (QB, WR, RB, TE, OL, DB, LB, DL, K/P, S), 5 Basketball, 8 Baseball, 5 Track, 4 Soccer = ~32 total
athletes
Student-athletes belonging to a university.brands
Sponsors and brand partners.
Seeded: 20 brands (Nike, Adidas, Under Armour, Gatorade, Red Bull, etc.)
nil_deals
The central table. Every NIL agreement is a row here.reporting_periods
Academic year periods for deal grouping.budget_allocations
Per-sport budget caps per reporting period.users
Platform users scoped to a university.peer_groups
Custom benchmark comparison groups.athlete_notes
Internal staff notes on athletes.activity_log
Audit trail for all mutations.Key Indexes
All foreign key columns are indexed by SQLAlchemy. The most performance-critical queries:nil_dealsfiltered byuniversity_id+deal_status— covers dashboard KPIs, budget, reportingnil_dealsfiltered bysport_id+position_id— covers benchmarksathletesfiltered byuniversity_id+is_active— covers roster listactivity_logfiltered byentity_type+entity_id— covers athlete detail activity