Public NIL estimate
Research & Methodology
This page explains how the public NIL Value Calculator estimate is produced, which inputs it uses, and what its range does and does not represent.
Last updated: October 18, 2026
Sources
The public estimate's inputs and fixed values are set by POST /api/valuation-public/estimate in routes/valuation-public.js. See the calculator's public assumptions.
The score and value formula are implemented by computeValuationV2 in utils/valuation-engine.js. The calculator's How we calculate disclosure shows its factors and weights.
The repository does not document an external source or calibration date for the coefficients and defaults. This page therefore does not claim that they are externally validated or representative of the market.
Assumptions
The public form collects sport, school, Instagram follower count, and email. For the calculation, it passes the selected sport and Instagram count, then supplies fixed values for the other inputs:
- Instagram followers: the count entered by the athlete; TikTok, Twitter/X, and YouTube followers: 0.
- Engagement rate: 3%; athletic percentile: 50; brand influence: 5/10.
- School digital footprint: 500,000 followers; student body: 20,000. These are fixed model inputs and are not looked up from the selected school.
- Institutional tier: G5; role: default; playing time: 80%.
- Deliverables: an empty list, which the engine treats as its reference deal of 10 Instagram posts; exclusivity: none; duration: one month.
The selected sport and entered Instagram follower count affect the estimate. School name and email are collected for the report and signup flow; neither is passed to the valuation function. The public estimate therefore does not compare an athlete with other athletes at their selected school.
BaseScore
The engine normalizes six inputs, applies the listed weights, and adds them into a score from 0 to 100:
- Social reach — 30%: Instagram followers plus weighted counts from other platforms, divided by 1,000,000 and capped at 1.
- Engagement — 20%: engagement rate divided by 10%, capped at 1.
- Athletic percentile — 20%: percentile divided by 100.
- Brand influence — 15%: rubric score divided by 10.
- School digital footprint — 10%: school followers divided by 2,000,000 and capped at 1.
- Student body size — 5%: student count divided by 50,000 and capped at 1.
Estimated value and range
The score is scaled by a $50,000 base and six cascading multipliers. A tier-specific minimum is then applied:
FinalValue = max(tier minimum, $50,000 × BaseScore / 100 × M_sport × M_tier × M_role × M_play-time × M_deliverables × M_exclusivity-duration)
- Sport: sport market-size multiplier.
- Institutional tier: tier multiplier; the public estimate uses G5.
- Role: sport-specific role/position multiplier; the public estimate uses the default role.
- Playing time: multiplier based on the entered percentage; 80% maps to 1.00.
- Deliverables: weighted deliverable units relative to 10 Instagram posts; the public default maps to 1.00.
- Exclusivity and duration: exclusivity multiplier combined with the duration multiplier; none for one month maps to 1.00.
The public G5 estimate has a $1,000 minimum. The displayed endpoints are the modeled value minus and plus 20%, rounded to whole dollars.
Limits
- The displayed range is a fixed ±20% calculation around the model output. It is not a confidence interval.
- The public API returns
confidence: null; RoC v2 does not calculate a confidence measure. - The public flow uses fixed assumptions for engagement, athletic percentile, brand influence, school footprint, student body, tier, role, playing time, and deal terms. They may not describe an individual athlete or deal.
- The estimate is informational and applies to a single deal, not an annual salary. It is not an offer or a guarantee of payment, and it does not replace legal, financial, or tax advice.
Changelog
- Current: RoC v2 is the implementation selected by the public calculator.
- Legacy reference: RoC v1 remains in the code but is not selected by the current valuation function.
The repository does not provide verifiable historical release dates or a dated change history for the valuation method. This page documents the current public calculation.