we built this because sitting in draft rooms making decisions based on vibes was costing us leagues. this is the documentation for the system that replaced the vibes.


the core model

the base projection engine is a gradient-boosted model (XGBoost) trained on NFL weekly stats from 2018 through 2025. it produces a raw fantasy point projection per game: the Elo signal.

99 features across four feature families:

  • production signals: target share, snap percentage, yards per route run, red zone usage, air yards, rushing attempt share, red zone carries, opportunity rate, breakaway rate
  • context signals: team implied total, opponent defensive quality by position, home/away, dome/outdoor, weather flags
  • efficiency signals: yards after contact, yards after catch, separation rate, passer rating vs. position group, adjusted line yards, stuff rate
  • stability signals: games played, rolling 4-week variability, position group competition within team

recent weeks are weighted 2x versus earlier games to capture current form. this is not a magic number: it reflects the tradeoff between sample size and recency validated on a walk-forward cross-validation harness.


age adjustments

age curves are non-linear and position-specific. the peak range is 24-28 for most skill positions. the curve is gentle through 30, then accelerates.

the actual multipliers applied:

  • QB: peak 25-30, cliff at 34+. mobile QBs cliff 2 years earlier on the rush component.
  • RB: hardest cliff. significant decay beginning at 29, severe at 31+. the curve does not care about your committee back's "fresh legs."
  • WR: gentler than RB. peak 24-28, meaningful decay at 32+.
  • TE: longest peak window (25-31), then a hard cliff. size and blocking utility delays the drop.

these are not opinions. they are calibrated multipliers derived from historical production patterns by position across 2014-2024.


strength of schedule

each player's projection is adjusted for their 2026 schedule difficulty. the process:

  1. pull every team's 2025 defensive performance against each position group (fantasy points allowed per game)
  2. join each team's 2026 opponents via the schedule
  3. compute a weighted average opponent PPG allowed
  4. apply as a multiplier relative to league-average defensive quality

a player facing the easiest third of schedules gets a boost. a player facing the hardest third gets a penalty. the magnitude is calibrated to avoid over-weighting what is inherently a noisy signal.


confidence scores

every player in the rankings has a confidence score from 0 to 1. this is not a quality score: it is a signal reliability score.

confidence reflects:
- number of games in the sample window (more games = higher confidence)
- variance of the signal across that window (high variance = lower confidence)
- completeness of feature coverage (missing features = reduced confidence)

how to read it:
- 0.85+: model has clean signal. treat the projection as a point estimate with normal variance.
- 0.65-0.84: usable projection, but treat it as a range. one injury or scheme change swings this.
- below 0.65: the model is working from a thin sample. the number is directionally useful, not precise. rookies and returning injury players often live here.


the injury-return pathway

a separate model handles players returning from significant injury or IR. the standard model would produce an incorrect projection here: it would see the last production data (pre-injury) and not know how to price the return.

the injury-return pathway adds 58 players to the 2026 rankings who would otherwise be missing or mispriced.

how it works:
1. classify injury severity by type and duration (knee vs. achilles vs. soft tissue, games missed)
2. apply a confidence tier: recovery certainty ranges from 0.20 (achilles, limited sample) to 0.40 (soft tissue, many historical cases)
3. apply a recovery factor: a multiplier on expected post-return production calibrated from historical return-game data
4. blend the recovery projection with the pre-injury Elo signal weighted by the confidence score

the result is a projection that prices return uncertainty honestly, rather than assuming full production or ignoring the player entirely.


college-to-pro rookie projections

the rookie model runs in two stages:

stage 1: draft capital prediction (pre-draft)
predicts likely draft position from college production metrics and athleticism scores. college features: production efficiency, usage rate, adjusted yards per route run, explosion scores, draft scout consensus. conference adjustments are applied: not all production is equal across power vs. mid-major programs.

stage 2: fantasy projection (post-draft, with landing-spot context)
after the draft, landing-spot data is integrated: depth chart position, target share opportunity, backfield competition, team passing volume, scheme type. the model predicts fantasy points per game for the rookie's NFL situation.

rookies below 0.65 confidence are included in the rankings with their uncertainty flagged. the confidence score reflects the fundamental problem with rookie projections: they have no NFL sample.


what it cannot do

  • predict injuries: no model does this reliably. the injury-return pathway adjusts for known injury history, not future events.
  • account for trades not yet in the data: the model uses the most recent roster data available. post-cutdown-date moves require a re-run.
  • beat weekly variance: the model produces season-level projections. week-to-week noise is real and irreducible.
  • be right every time: the model is calibrated to be right on average over a full season. any individual projection can be wrong.

validation

the model is evaluated on a held-out season with walk-forward cross-validation. the primary metric is mean absolute error (MAE) on fantasy points per game. improvements require a 2% MAE reduction and a positive Spearman rank correlation tiebreaker on the held-out season.

we ran a 2025 holdout. the hybrid model (base Elo + adjustments) outperformed the position-median baseline by 18% on MAE. the injury-return pathway reduced MAE by 30% on the subset of returning IR players relative to the position-median baseline.

feature ablations that failed the 2% MAE gate were not included in the production model regardless of theoretical motivation.


the model is a tool, not an oracle

every ranking in this system comes with a confidence score for a reason. the number is a range estimate at the bottom of the confidence scale and a point estimate at the top. the model's job is to give you better priors than "he just looks like a WR1." your job is to apply context the model doesn't have.

when the model says Lamar Jackson is QB24 and you disagree: show your work. if your argument is "he's Lamar Jackson," you're going to have a bad draft season.