Guide
Fantasy Projections Explained
By Blitzen · September 1, 2026 · 7 min read
A projection looks like one number and is really two questions stacked on top of each other: how good is this player in the games he plays, and how many games will he play. Most boards answer the first carefully and the second with a survivor's average — the games of the players who came back, with the ones who didn't quietly deleted. This guide covers how the second question is supposed to be answered, what it looks like when it isn't, and four questions you can ask any projection source, ours included.
A projection is two estimates wearing one hat
Take a wide receiver projected for 210 points. Somewhere behind that number, a model decided two separate things: a rate — how many points per game he scores in the games he plays — and availability, how many games he plays at all.
They multiply out to a season total, so they look like one estimate on the board. They are not. They come from different data, they fail in different ways, and only one of them gets attention. Everybody argues about the rate: target share, scheme, quarterback play. Almost nobody audits the availability number, and it is the one that is usually broken.
The trap: averaging the players who came back
Here is how availability quietly goes wrong. You want to know how many games a receiver plays next season after an injury-shortened year, so you find every historically similar receiver and average the games they went on to play.
The bug is in the word went. If you build that cohort from players who have a next-season stat line, you have already thrown out everyone who never played again — and those are exactly the outcomes you were trying to price. The average that comes back is the average of the survivors, and it is far too high.
This is not a hypothetical. It is a bug we shipped and then fixed. Our first-generation projection model carried a lookup table for expected games that was fit through that same survivor gate. A receiver coming off a 4–8 game season was credited with 10.10 expected games. Measured over everyone in that situation — including the ones with no next season at all — the honest figure is roughly half that. In the words of the code comment that replaced the table: it “had averaged the games of the players who came back and deleted the 40% who did not.”
Ten games and five games are not a rounding difference. On a 14-point-a-game receiver that is a ~70-point swing in a season projection, applied to precisely the players whose price you were least sure of.
What the fix looks like
The repair is not a cleverer model. It is a rule about who is allowed into the comparison group: membership is decided entirely before the outcome is known — no next-season gate, no inner join anywhere in the chain.
On our board, a player's comparison group is the 400 most similar historical player-seasons — similar in the rank the model gave them and in how many games they played the year before — including every one of them who got hurt, lost the job, or never played again. Expected games is then the average over that whole group, zeros included. A player who never plays enters the arithmetic as a literal zero rather than as a missing row.
That is the entire trick. It is unglamorous, it makes the numbers smaller and less flattering, and it is the difference between a projection and a wish.
Why the range matters more than the point estimate
Once availability is priced honestly, a single number stops being able to carry the answer. So the board publishes a range around it — and it publishes two different ranges, on purpose:
- The floor–ceiling range on points per game describes the player in the games he plays. It is the 10th and 90th percentile of the rate: a bad week and a good week, not a bad season and a good season.
- The season range additionally prices the chance of no season at all. That is why, deep enough down the board, the floor is exactly 0.0 — for a player with a one-in-four chance of never taking a snap, the honest 10th percentile really is zero.
Those two bands answer different questions and can differ by up to ten points of coverage, so they should never be quoted interchangeably. If a source shows you one range and one caption, ask which of the two it is.
Coverage: the number that grades the range
A range is a claim, and a claim can be checked. The check is coverage: over history, how often did the real outcome actually land inside the published band? A nominal 80% band that covers 55% of outcomes is decoration.
Ours is measured walk-forward — each season scored by a grid refit only on earlier seasons, so no season is graded by a model that had already seen it. On the season axis, the band covers about .85 of outcomes at the top of the board and .92 in the deep tail, against a nominal 80%.
The second number being above nominal is worth explaining rather than hiding. It happens because a large share of deep-tail outcomes are exactly zero, and nothing sits below zero, so the interval over-covers down there by construction. The lower level is deliberately not tuned to force the nominal rate. A band that has been massaged until it hits 80% everywhere is a band that has been fit to its own scorecard.
Four questions to ask any projection source
You can run this audit on any board in about a minute, including ours.
- “Is your expected-games number averaged over everyone, or only over players who played?” If the answer is the second one, or if there is no answer, the availability estimate is optimistic on exactly the players you are least sure about.
- “Does your range answer the per-game question or the whole-season question?” If a source cannot say which, the range is decorative.
- “How often did the real result land inside the range — and was the model refit for each season, or fit once on all of it?” A backtest where the model has already seen the season it is being graded on measures memory, not prediction. We wrote that one up separately: what walk-forward grading is.
- “Which rows are measured and which are priors?” Rookies have no NFL game history to fit on. Their numbers are a reasonable prior, not a measurement, and no honest board should let the two look identical.
What ours says, and what it does not
Being specific is the whole point, so: the season-long board is fit on 27 seasons of NFL game logs (1999–2025), the comparison cohorts are built over target seasons 2002–2025, and the final points-per-game figure is 70% statistical model, 30% consensus. The consensus side is what carries offseason news, depth-chart moves and age — none of which the historical fit can see on its own.
It is walk-forward validated, which is a weaker and more accurate phrase than “validated against held-out history”: recent seasons are inside the coefficient fit, and each season's grade comes from a refit on earlier data only. On that walk-forward, the model came in ahead of a naive carry-forward — projecting each player as last year's player — at all four positions, on both average error and rank order. That is a comparison against one baseline over five seasons. It is not a claim about your league.
Rookie rows are priced off consensus rank, not the fitted model, and the accuracy and coverage figures above exclude them — a rookie has never been a member of a veteran comparison cell, so a veteran coverage figure simply does not apply to him.
And the honest limit on all of it: a projection is an estimate of rank order and of the shape of a distribution. It is not a prediction of a stat line, and no coverage figure is a statement about what happens in your draft. The useful thing a projection does is tell you how sure it is — which is why the range, the expected-games number and the coverage figure matter more than the ranking they produce.
Blitzen is an analytics and research tool, not betting advice or a picks service. Nothing here predicts a financial outcome. Sports betting carries real financial risk — wager only what you can afford to lose, and only where it is legal. Must be 21+. If gambling stops being fun, help is available: call 1-800-GAMBLER.