
Projection model
Fantasy Football Model
A 1-point-PPR projection for every position, trained on 27 seasons and measured against the only benchmark that matters.
- Player-weeks trained on
- 153,026
- 1999–2025
- Seasons back-tested
- 20
- each fitted only on what came before
- Best gain over recent form
- 15%
- defense, where the market carries it
- Worst gain over recent form
- 7%
- the honest number for a noisy target
What this model is for
It avoids bad calls. It does not call scores.
Everything below is one claim, measured 20 different ways: this model beats “assume the player keeps doing what he has been doing” by a modest amount, reliably. It is a second opinion that is right slightly more often than the obvious assumption. The value is in how consistent that edge is, not how large, and a projection system that claimed more than this on weekly fantasy scoring would be describing a leak rather than a skill.
What holds up
- Start-or-sit calls. 73.5% of startable player-weeks land within 8 points of the real score, against 67.7% for recent form, in 20 of 20 back-tested seasons, never fewer.
- Not being badly wrong. The whole edge sits in the tails. The model rarely projects a player at fifteen who scores two, and that is worth more to a lineup than precision it does not have.
- Kicker and defense, week to week. The largest lift of any position, because their signal is in the betting line for the game rather than in their own history, which is exactly what a player’s recent form cannot see.
- Ordering a position in-season. Relative ranking is far more reliable than the point estimate it is built from.
What does not
- Precision. At a 2-point margin the model is beaten by recent form in 19 of 20 seasons. It is not calling scores and should not be read as though it were.
- Drafting a kicker or a defense. Draft-day rank correlation is 0.13 at kicker and 0.16 at defense, close enough to zero that the order of those boards is not information.
- A quarterback’s season total. 55.1% within 40 points against 54.3% for assuming he repeats himself. That gap is not worth acting on.
- The floor and ceiling. The band is built to hold 80% of outcomes and holds 67% to 81%. Read it as indicative, not as a probability.
- Who plays. There is no injury input. The model projects a player’s rate, never his availability, and it has nothing at all to say about a rookie.
How much room is left. An oracle told each player’s own season median in advance, a number no one could have, would hit 78.5% at this margin. The model reaches 73.5%, or 94% of it. Most of what is knowable at this resolution has already been extracted, and the rest is a receiver catching a sixty-yard touchdown he was never going to be projected for. That is the ceiling this page is measured against, and it is the reason the numbers below are quoted against a baseline rather than against zero.
1999–2025, measured
153,026 player-weeks across 27 seasons. The headline test is 2025, held out entirely, but one season is an anecdote, so the model is also re-fitted and re-scored for each of 20 seasons in turn, training only on what came before it.
Read this column before the others
Weekly fantasy scoring is mostly noise. The benchmark that matters is not zero error, it is “assume the player keeps doing what he has been doing”, which is his own three-game average. Beating that by six or seven percent at the skill positions is the honest result for this problem, and it is roughly what published projection systems manage. Anything dramatically better would mean a leak, not skill.
Average error across 20 back-tested seasons
| Position | Model error | Recent-form error | Better by | 2025 season totals |
|---|---|---|---|---|
| QB | 5.96 | 6.48 | 8.2% | ±28 |
| RB | 4.98 | 5.34 | 6.8% | ±19 |
| WR | 5.08 | 5.47 | 7.2% | ±19 |
| TE | 3.88 | 4.21 | 7.8% | ±16 |
| K | 3.37 | 3.87 | 13.0% | ±15 |
| DST | 4.08 | 4.81 | 15.3% | ±18 |
Errors are points per game. Season totals are far more accurate than the weekly figures suggest, because week-to-week errors are largely independent and cancel across seventeen games. Kicker and defense gain most because their signal is not in their own past. It is in the betting line for the game they are about to play.
How often is it close?
Average error says how far off the model is. It does not say how often it is about right, which is the question you ask before setting a lineup. Across the same 20 back-tested seasons, 73.5% of startable player-weeks landed within 8 points of the real score, against 67.7% for recent form.
Why 8 points. Not because it is the band that flatters most, since that would be a wider one, but because it is where the model is furthest ahead of the baseline. The gap grows from four points of hit rate at a ±5 margin to roughly six around ±8, then stops growing: past that both are simply catching everything. 8 points is also a start-or-sit tolerance rather than a called-the-week one, which is the decision a weekly projection is actually for.
The edge is not a sampling artifact. On the 37,044 weeks scored here, the model was inside the band and recent form outside it 4,405 times, against 2,243 the other way. A split this lopsided arises by chance with probability below 1 in 10100 (McNemar’s test, paired on identical rows). It also holds in every individual season: 20 of 20. Significance was never the hard part at this sample size, which is why the band was chosen on the size of the edge instead.
| Position | Median week | Within 8 | Recent form | Within 10 | Recent form |
|---|---|---|---|---|---|
| QB | 17.6 | 68.6% | 63.9% | 79.0% | 74.2% |
| RB | 13.3 | 68.0% | 62.1% | 79.5% | 73.5% |
| WR | 12.6 | 66.7% | 60.3% | 79.0% | 71.3% |
| TE | 10.0 | 75.2% | 69.3% | 86.6% | 80.1% |
| K | 8.0 | 95.2% | 90.5% | 98.1% | 96.2% |
| DST | 8.0 | 87.6% | 81.3% | 93.4% | 89.4% |
“Startable” is the top 12 quarterbacks, 24 backs, 36 receivers and 12 tight ends by projection that week, ranked on what the model said beforehand, never on what happened, which would make this a measure of hindsight. 37,044 player-weeks, every one of them out of sample. Over all 117,069 player-weeks the 8-point figure rises to 83.4%, and that is the easier question rather than the better answer: 8.6% of those rows are players who scored nothing and were projected near nothing.
What the margin is worth
The same startable weeks, at every margin. The bar is the model, the tick is recent form; the gap between them is the whole claim. It widens through the middle of the range and closes at both ends: at 2 points because nobody can call a week that precisely, at 10 because almost everybody can.
- ±2 pts22%
- ±3 pts32%
- ±5 pts52%
- ±8 pts73%
- ±10 pts84%
The edge is in avoiding disasters, not hitting the number
Counted by season rather than pooled, the model beat recent form in 20 of 20 seasons within 8 points and 20 of 20 within 5, but 8 within 3, and 1 within 2. Widen the band and the advantage is reliable; tighten it and it disappears.
That is a description more than a flaw. On the 10,061 weeks a player scored nothing, a trailing average that has already collapsed toward zero lands within 2 points 32.2% of the time against the model’s 13.9%, because the model regresses that player back up to a positive number. On the weeks a player did score, the two are level, at 29.3% against 29.5%. The model earns its lift by not being badly wrong, which is worth more to a lineup than precision it does not have.
A season total is a different question
Everything above is one week at a time. A draft is a bet on a whole season, and the honest version of that question is harder than it looks, so this is measured from what the model would have said in August: its projection on each player’s first row of the season, when every feature it can see comes from the year before. The baseline is what a drafter would otherwise assume, which is that the player repeats his own rate from last year.
63.6% of seasons land within 40 points of the real total, against 61.1% for repeating last year, with an average miss of 38 points against 40. Across a seventeen-game season that band is about two and a half points a game. Because season totals run an order of magnitude apart, the scale-fair version is worth having beside it: 59.4% of seasons land within 30% of the real figure, against 56.6%. 5,410 player-seasons of at least 10 games. The same paired test puts this gap at p < 0.0001, smaller than the weekly edge and still not chance.
- ±10 pts20%
- ±15 pts29%
- ±20 pts37%
- ±25 pts45%
- ±30 pts52%
- ±40 pts64%
- ±50 pts73%
| Position | Median season | Within 40 | Repeat last year |
|---|---|---|---|
| QB | 236 | 55.1% | 54.3% |
| RB | 132 | 52.4% | 49.5% |
| WR | 130 | 56.2% | 54.3% |
| TE | 87 | 72.7% | 69.5% |
| K | 127 | 94.1% | 88.6% |
| DST | 96 | 77.6% | 76.0% |
A fixed points band is a far harder test at the positions that score most. 40 points is 17% of a median quarterback season and 46% of a median tight end’s, which is most of why those two rows differ. The model is ahead of the baseline at every position here, but only just at quarterback: 55.1% against 54.3%, across 508 player-seasons. Projecting a quarterback’s season is close to the point where assuming he repeats himself is as good as anything this model knows.
Two numbers this deliberately does not quote. Summing the seventeen weekly forecasts instead gives an average miss of only 22 points, but each of those forecasts knew everything up to its own week, so that number describes a manager re-projecting all season, not a drafter in August. And recent form cannot be scored at this scale at all: summed over a year, a trailing three-game average is a lagged copy of the player’s own scores and tracks his season total at r=0.99. It is an excellent description of the season and no forecast of it, which is why the baseline here is last year’s rate instead.
Season by season
Each bar is one season’s average error for that position, with the recent-form baseline marked. Shorter is better; the marker sitting to the right of the bar is the model beating the baseline that year. The scale starts at 3.1 rather than zero, because every season lands between 3.1 and 7.0 and a full axis would draw twenty identical bars.
- 20065.97
- 20075.84
- 20085.51
- 20095.88
- 20105.79
- 20115.71
- 20125.72
- 20136.05
- 20145.96
- 20156.09
- 20165.68
- 20175.80
- 20186.19
- 20196.32
- 20206.32
- 20216.05
- 20225.58
- 20235.97
- 20246.20
- 20256.47
- 20065.12
- 20074.99
- 20085.63
- 20095.13
- 20105.10
- 20114.80
- 20124.68
- 20134.80
- 20144.90
- 20155.18
- 20165.08
- 20174.98
- 20185.32
- 20195.20
- 20205.09
- 20215.25
- 20224.98
- 20234.47
- 20244.40
- 20254.46
- 20065.25
- 20075.39
- 20085.05
- 20095.26
- 20105.39
- 20115.21
- 20125.13
- 20135.45
- 20145.23
- 20155.26
- 20165.05
- 20174.77
- 20185.10
- 20195.28
- 20205.22
- 20215.07
- 20225.01
- 20234.53
- 20244.59
- 20254.27
- 20063.60
- 20073.69
- 20083.78
- 20094.07
- 20103.75
- 20114.04
- 20124.17
- 20134.15
- 20144.36
- 20154.25
- 20164.04
- 20173.88
- 20183.87
- 20193.88
- 20204.03
- 20213.82
- 20223.66
- 20233.47
- 20243.57
- 20253.57
- 20063.07
- 20073.22
- 20083.33
- 20093.07
- 20103.22
- 20113.27
- 20123.39
- 20133.32
- 20143.44
- 20153.43
- 20163.36
- 20173.58
- 20183.30
- 20193.27
- 20203.46
- 20223.41
- 20233.47
- 20243.68
- 20253.70
- 20064.61
- 20074.28
- 20084.29
- 20094.29
- 20104.31
- 20114.09
- 20124.42
- 20134.21
- 20144.09
- 20154.11
- 20163.92
- 20174.11
- 20183.92
- 20194.07
- 20203.83
- 20213.98
- 20223.68
- 20233.93
- 20243.65
- 20253.75
Does the old data help?
Football in 1999 is not football in 2025, so training on all of it is a choice that has to be justified rather than assumed. Both were run across the same back-tested seasons:
| Position | All history | Last 5 seasons only | Difference |
|---|---|---|---|
| DST | 4.079 | 4.107 | +0.028 |
| K | 3.367 | 3.378 | +0.011 |
| QB | 5.955 | 6.054 | +0.099 |
| RB | 4.977 | 4.998 | +0.021 |
| TE | 3.882 | 3.911 | +0.029 |
| WR | 5.075 | 5.089 | +0.013 |
All history wins at every position. The margins are small, but they are consistent and they point the same way, so the model trains on everything it has. The extra seasons buy more than the era drift costs.
Ordering, which is what a ranking is for
Average error measures distance. A ranking is used to sort players, so the thing to measure is order. These are rank correlations against how the 2025 season actually finished.
| Position | Players | Week by week | From August only | Top 12 hit |
|---|---|---|---|---|
| QB | 62 | 0.95 | 0.55 | 11/12 |
| RB | 119 | 0.97 | 0.73 | 10/12 |
| WR | 213 | 0.95 | 0.79 | 8/12 |
| TE | 107 | 0.95 | 0.72 | 10/12 |
| K | 40 | 0.89 | 0.13 | 9/12 |
| DST | 32 | 0.62 | 0.16 | 8/12 |
The two middle columns answer different questions and only the second is a draft. The first sums seventeen weekly forecasts, each allowed to use everything known up to that week, so it follows a back who takes over a backfield in October. The second projects from a player’s first week of the season, when the model knows only what August knew. At kicker and defense that figure is near zero, which is not a flaw in the model but the reason those positions are streamed rather than drafted, stated as a number.
Is a projection of twelve worth twelve?
| Projected band | Player-weeks | Mean projected | Mean actual |
|---|---|---|---|
| Under 5 | 2,439 | 2.77 | 2.55 |
| 5–10 | 2,612 | 7.36 | 7.12 |
| 10–15 | 1,274 | 12.31 | 12.15 |
| 15–20 | 582 | 17.02 | 16.76 |
| 20–25 | 85 | 21.31 | 19.45 |
Close to honest across the range, running a quarter of a point optimistic in the middle. The top band is the exception, and it is the one where over-projection is most tempting to trust.
The floor and ceiling are narrower than they claim
They are tenth and ninetieth percentile fits, so they should contain 80% of outcomes. Measured on 2025, most positions fall short:
- QB71.9%
- RB69.9%
- WR66.8%
- TE81.4%
- K71.8%
- DST79.2%
The marker sits at the 80% the range claims. Treat the published floor and ceiling as a tighter band than advertised. Outcomes escape them nearer a third of the time than a fifth.