Endpoints
All benchmark endpoints accept these optional filters:sport_id, position_id, eligibility_year, comp_type.
GET /api/v1/benchmarks/summary
Returns 4 comparison metrics: Avg NIL per Athlete, Avg Agreement Value, % Athletes with Agreement, Total NIL Value. Each hasyours, conference, and delta values.
Available to all tiers.
GET /api/v1/benchmarks/grid
Premium only. Three-way comparison: school vs conference vs peer group. Returnsschool, conference, peer objects each with avg_total, avg_guaranteed, avg_performance, total_deals, total_value. Also returns percentile data (p25, p50, p75) and pre-computed deltas.
Uses PostgreSQL percentile_cont() for real statistical percentiles.
GET /api/v1/benchmarks/positions
Per-position breakdown for a sport. Returns school/conference/peer averages, guaranteed/performance splits, and athlete counts per position. Sorted by school average descending.GET /api/v1/benchmarks/filters
Returns all filter options: sports, conferences, positions grouped by sport, user’s locked conference, peer group conferences, reporting periods, and user tier.How Aggregations Work
The_agg() helper runs a single SQL query with these filters applied:
- School:
university_id = current user's university - Conference:
university_id IN (universities in same conference) - Peer Group:
university_id IN (universities in peer group conferences)