Methodology
How Our Projections Work
Every projection on this site comes from one of our two models, each tested against four seasons it never saw. This page shows the season model's pipeline, the test results for both, and the season we lost.
Quick answer
How are these fantasy football projections made?
We project each player on our board from his last two seasons, weighted toward the latest, or a bottom-quartile rate if he has none. Backs, receivers, and tight ends are priced partly on volume, so a touchdown spike regresses. Every projection is a P10–P90 range. The model had to beat two baselines on held-out seasons; it lost 2022 to one.
Graded in public
Fantasy analysis is mostly unpriced opinion. A take with no number attached can't be wrong, which is exactly why it's worthless on draft day. So we publish the number, then grade it against what players actually scored, weekly once the season starts, with no retroactive edits. This page is the pre-season half of that promise: what the model does, and how it tested.
Our player cards carry a shorter version of the same promise: "every call on the record." The record is append-only — once a call is posted and graded, entries are added beside it, never rewritten or removed. That is why the 2022 loss is still on this page, and always will be.
The pipeline, in three steps
- Production and volume. A player's fantasy points, targets, and carries per game across the last two seasons, weighted toward last year, and harder for receivers. Each season is pulled toward a bottom-quartile rate, the 25th-percentile scoring rate among players at the position with four or more games, harder the fewer games it holds, and a season under four games is dropped when the other one qualifies. A player with no NFL stats in that window starts at the bottom-quartile rate for 14 games. A rookie has no NFL record for the model to read, a real limitation, and why we haven't published a rookie piece.
- Efficiency. Half of a back's or tight end's rate, and 60% of a receiver's, is re-priced at the position's league-average yards, touchdown, and catch rates, applied to the player's own targets and carries. One hot month doesn't rewrite a career; sustained usage does. Quarterbacks keep their own scoring rate.
- Games and age. Availability priors from the last two seasons, short seasons included and weighted the same way as the rates, and a position-specific age curve turn per-game rates into season totals — as ranges, per scoring format.
Team strength is built and switched off. The model computes every team's strength from 2025 closing lines, shrunk toward league average. In backtesting, every setting we tested that let that number move a projection made the ranking worse on the players the market also ranks, and no better overall. So v2 holds it at neutral: it changes no player's number, and the model has no view of an offense, a schedule, a depth chart, or a new team.
Ranges, not points
A projection that reads "212.4 points" and stops there is lying about its own precision. Every median on our full draft board prints beside its P10–P90 band, and the bands run wide: a receiver near the top of the board carries a P10 near two-fifths of his median and a P90 half again above it.
Each band's shape comes from history; the player's own projection only picks which shape he gets. Projections at a position are split into three brackets by the size of their full-PPR season total (the board's 300 rows show two of them per position), and a bracket's P10 and P90 are set by how far players in it actually finished from their projections in past seasons, or by the position's pooled history where a bracket's own is thin. Every player in a bracket carries the same proportions in all three scoring formats, and the line between brackets is sharp: a few points of projection can move a player into a much wider band.
In backtesting, 66.7% to 83.2% of actual season outcomes landed inside our P10–P90 band, against an 80% design target. v2's calibration work lifted two of the four held-out seasons to or past that line and narrowed the other two, which is real progress and not a fix: 2022 and 2024 still come up short. Calibration is the model's known weakness — improved in v2, not solved — and closing what remains of the gap leads the next version.
| Season | Coverage | vs 80% target | Players graded |
|---|---|---|---|
| 2022 | 66.7% | -13.3 pts | 438 |
| 2023 | 80.7% | +0.7 pts | 415 |
| 2024 | 74.2% | -5.8 pts | 415 |
| 2025 | 83.2% | +3.2 pts | 428 |
Tiers: the rank, banded
Player share cards carry a tier — S, A, B, or C, paired with a plain-word read: Elite, Strong, Mid, or Low. A tier is not a second opinion layered on the rankings; it is the ranking, banded. Take every player the model ranks at a position on the current draft board: the top 10% are S, the top 35% A, the top 70% B, and the rest C, with band edges rounded up. A board that ranked 32 quarterbacks would put S at QB1–4, A at QB5–12, B at QB13–23, and C from QB24 on. Because the bands are cut from the same board the rankings page shows, a tier and a rank can never disagree.
Two honesty rules ride along. A position with fewer than 12 ranked players gets no tier at all — a "top 10%" of eight players is noise wearing a medal — and a card without a tier is not a bad grade; it is no call. And a tiered card prints the model version its tier came from, so a medal always traces back to the exact board this page documents.
The backtest: what passed, and what didn't
We test walk-forward: train on seasons up to N−1, project season N, score against final PPR finish (2022–2025, all positions pooled). The metric is Spearman rank correlation: how closely our preseason order of players matched the actual end-of-season order, where 1.0 is a perfect match. No season in these tables was in its own training data, and the pass criteria were written down before the first run. Gate verdict for v2: PASS.
One caveat stays attached, from the backtest artifact itself: model tuning was chosen while looking at these same four seasons, and the winning margins are thin — +0.002 to +0.004 Spearman against the prior-season baseline. So treat the gate as a bar cleared, not a victory lap. The real test starts when 2026 grades live.
Each baseline comparison scores only the players both sides can rank, so the tables in this section use different player pools. Compare within a table, not across them.
Against the prior-season baseline
The baseline everyone actually uses: assume players repeat last season's finish.
| Season | Our model | Prior-season | Result |
|---|---|---|---|
| 2022 | 0.7369 | 0.7432 | Loss |
| 2023 | 0.6852 | 0.6817 | Win |
| 2024 | 0.7011 | 0.6966 | Win |
| 2025 | 0.7623 | 0.7599 | Win |
2022 is the loss, and the mechanism is no mystery: those projections trained on 2021 alone, and one season of usage data isn't enough to beat "he'll score what he scored last year." The loss stays in the ledger because that's the product.
Against the market (ADP)
Draft position as a forecast — the market's collective ranking. Fantasy Football Calculator (FFC) ADP is unavailable for 2025, so that season has no market baseline to grade against.
| Season | Our model | ADP | Result |
|---|---|---|---|
| 2022 | 0.5520 | 0.4450 | Win |
| 2023 | 0.5309 | 0.4551 | Win |
| 2024 | 0.4467 | 0.4399 | Win |
By position, the model beat the prior-season baseline at QB, RB, TE. WR is the miss, by 0.0048 average Spearman — v2 narrowed it from 0.006 but did not turn it into a win, at the position where year-to-year role volatility runs highest. If you trust our WR board least, we understand; so do we, and closing that gap stays on the list.
What changes in season
The model this page describes drafts teams. Winning weeks takes a weekly model, and that model is now built: game-level, priced to the week's line, with a gate of its own. That gate ran walk-forward against two baselines: last week's points and the season-to-date average. The model beat both in all four held-out seasons, on settings locked before the gate ran. In season, its numbers post ahead of each week's opening kickoff. The projection we grade is the one frozen at that first posting, not whatever a later rerun shows. The grading loop is built and armed — it starts writing at Week 1. A grade posts when the Sunday games are final, and stays partial while the week still has a game to play. It completes the day after that game, and Thursday's correction pass settles the row. Week 18 is the exception. That slate ends Sunday, so the week never gets a partial: the first grade is the full one.
Both baselines, every graded week. Here the lower number is the better one. These cells are points of error per player-week, and the correlation tables in the backtest section run the other way.
| Season | Weeks won | Our model | Last week | Season to date |
|---|---|---|---|---|
| 2022 | 12 of 17 | 4.68 | 5.93 | 4.92 |
| 2023 | 10 of 17 | 4.57 | 5.69 | 4.75 |
| 2024 | 12 of 17 | 4.70 | 5.81 | 4.80 |
| 2025 | 12 of 17 | 4.54 | 5.75 | 4.69 |
The gate scored weeks 2 through 18, PPR, at the 4 positions the model projects. Week 1 has no prior week and no season average, so neither baseline can be built for it.
A week counts as won only when the model beat both baselines. Even at its best it lost 5 weeks of 17.
The bar was 3 of 4 seasons, fixed before the gate ran. 2023 is the thin one: 10 weeks won against a minimum of 9. A one-week margin is a one-week margin, and it stays in the table at full size.
The comparison line is meant to be a licensed consensus projection, and that license is not signed. If it is not in place by Week 1, the ledger grades against actual results alone and still runs. The public ledger starts at zero and stays append-only. Backtests stay labeled as backtests — a graded history you can't verify isn't a receipt.
Data sources and credit
- nflverse — play-by-play, schedules, and weekly stats back to 1999, CC-BY licensed. The backbone of the historical record.
- Sleeper — player database, injury status, and ID crosswalk.
- Fantasy Football Calculator — ADP across scoring formats, free for commercial use with attribution (required, and given here gladly).
- DynastyProcess — the db_playerids crosswalk that keeps our player IDs honest across data sources.
- FantasyNerds — consensus projections, our intended in-season grading benchmark. The license is not signed yet.
- The Odds API — current game spreads and totals, archived twice a day. Neither model reads them: the weekly model takes each game's spread and total from the nflverse schedules.
Want the output instead of the theory? The 2026 draft rankings are the model's current call, updated in place, CSV export included. The strategy library shows how to put the numbers to work.
FAQ
What do P10, P50, and P90 mean?
P50 is the median projection — half of realistic outcomes land above it, half below. The P10 and P90 mark the edges of the range. A tenth of seasons should fall short of the P10, and a tenth should clear the P90. That is a claim about a rate: 80% of seasons sitting in between. In backtesting the band held 66.7% to 83.2%, depending on the year — v2's calibration work brought the better seasons to that rate, while the worst two still under-cover and their tails run fatter than the labels admit. Draft on the P50, and read the spread as the least a season can vary, not the most — where the band falls short, the real swing is broader than it looks.
Did the model ever lose a backtest?
Yes — 2022, against the prior-season baseline, 0.7369 to 0.7432 in Spearman correlation. Those projections trained on a single season (2021), which is not enough signal to beat last-year's-points. It won the other three seasons and every ADP comparison, and the loss is published in the table on this page.
Why do your rankings differ from ADP?
ADP measures what drafters do; our rankings measure what the model expects players to score, ordered by value over a positional baseline. Where the two disagree is where draft-day edges live — that is the point of building our own numbers instead of republishing the market's.
What do the S, A, B, C tiers on player cards mean?
A tier is the model's positional rank, banded — not a second opinion. Among the players the model ranks at a position, the top 10% are S (Elite), the top 35% A (Strong), the top 70% B (Mid), and the rest C (Low), with band edges rounded up: a board ranking 32 quarterbacks makes QB1–4 the S band. A position with fewer than 12 ranked players gets no tier at all, because a top-10% of eight players is noise wearing a medal. Tiers are cut from the same board as the rankings, so a tier can never disagree with a player's rank.
How often do projections update?
ADP refreshes daily from Fantasy Football Calculator. Projections regenerate when the model or its inputs change, and every run carries a version. This page tracks the current one: it documents v2 today, it documented v1 before, and every version change lands here in the open — numbers, gains, and losses moving together.
Can I download the rankings?
Yes. Every draft rankings page has a CSV export — name, team, position, bye, P10/P50/P90, ADP, and rank — free, no account.