The bug: points are not value
Sort every player by projected points, highest first. It's the obvious thing to do and it is quietly wrong. In our 2026 preseason build, that sort put Jahmyr Gibbs, the consensus RB1, at #11 overall, behind ten quarterbacks.
Nothing was broken. Quarterbacks really do score more raw fantasy points than running backs, because they touch the ball on every snap and get credit for passing yards and touchdowns. The sort is faithfully reporting that. It just isn't answering the question a drafter is asking.
The question a drafter is asking is: if I don't take this player, what do I end up with instead? Because you aren't collecting points in the abstract. You are filling a fixed lineup against opponents filling the same lineup. Every team is going to start a quarterback. What separates rosters is not who has a QB, it's who got more out of the slot than the field did.
Replacement level, in one paragraph
A player is worth the points he gives you above the best player at his position you could have gotten for nothing. That freely-available standard is replacement level, and the surplus above it is a player's draft value:
draftValue = projectedPoints − positionalBaseline
Rank by that instead of by raw points and the board rearranges itself around scarcity. A quarterback projected for 320 points, when the QB you could have had for free is projected for 300, has handed you 20 points of edge. A running back projected for 260, when free-agent RBs project for 140, has handed you 120. The QB scores more. The RB wins you the league. That difference is the whole idea, and it's what puts Gibbs back at the top of the board where your gut always had him.
This is not a new idea; value-based drafting has been around fantasy analysis for decades. The part everybody quietly disagrees about is the second term in that subtraction.
The hard part is the baseline
"The best guy you could get for free" sounds concrete until you try to compute it. Most published cheat sheets pick a constant (replacement is QB12, or RB30, or "the last starter in a 12-team league"), and those constants are load-bearing. Change from standard scoring to PPR and the right constant moves. Add a superflex and it moves a lot. Play in a 14-team league and it moves again. A board built on numbers that were correct for someone else's league is a board that's wrong for yours in ways you can't see.
So we don't pick constants. We simulate the league:
- Take every team's starting lineup requirements (how many QB, RB, WR, TE, K and DEF slots, plus flex slots) from the actual league settings, and multiply by the actual number of teams.
- Fill every dedicated slot league-wide with the best available players at that position, by projection. Greedily, best first.
- Then fill the flex slots with the best remaining flex-eligible players, whoever they happen to be.
- A position's replacement level is the projection of its best player who ended up in nobody's starting lineup: the best guy left on the table.
That's the whole mechanism. One rule, applied identically to every position.
Why simulating beats guessing
The simulation earns its keep at the flex slot, which is where hand-tuned systems go to die. A common shortcut is to split each flex slot by a fixed heuristic (say 45% running back, 45% receiver, 10% tight end) and fold that into the baseline. We considered it and rejected it, because that split is a claim about how the season projects, and it is wrong at different rates in every format. Full PPR pushes flex demand toward receivers. Superflex changes what "flex-eligible" even means.
Filling the flex greedily makes the split fall out of the projections themselves. We never state it, so we can never state it wrong. Switch the league to PPR and more receivers survive into flex slots, which raises the RB baseline and lowers the WR baseline, automatically, with no code aware that PPR happened.
We also rejected extending the baseline into benches, the "starters plus some share of the bench" approach, for the same reason. Bench composition is discretionary; every drafter builds one differently, so any share you pick is a per-position heuristic wearing a disguise.
The consequence worth internalizing: replacement level is not a quotable number. It moves with the projection set, the scoring rules and the league size. Anyone who tells you replacement level is QB12 is telling you about their league, not yours.
Every format gets a genuinely different board
This is the payoff, and it's the part cheat sheets structurally can't give you. Because the baselines are derived rather than declared, a 10-team standard league and a 12-team half-PPR superflex league produce two boards that disagree about far more than the margins. In superflex, quarterbacks are suddenly consumed by two slots per team, replacement-level QB collapses, and elite quarterbacks legitimately rise, not because we added a superflex rule, but because the simulation ran out of quarterbacks.
Two smaller design choices fall out of the same commitment to one rule:
- Below-replacement players keep negative values and stay ranked. They sort to the bottom, which is correct, but they don't vanish. Late in a draft you still need to know which of the negative-value players is least bad.
- Missing inputs degrade to raw points, loudly. If we don't know the team count or the starting slots, we fall back to the old points-order behavior rather than guessing a baseline. A silently wrong baseline is worse than a known-wrong ranking, because it looks like an answer.
Where the one rule needed help
Honesty section, because a post that ends at "we derived it, so it's right" would be selling you something. The pure last-starter baseline is correct math that produces two specific wrong recommendations, and both took real work to fix without reintroducing the magic constants we'd just spent all that effort avoiding.
- Kickers and defenses. Measured against the best non-starting kicker, the K1 showed a surplus worth a third-round pick, a surplus that never accrues, because a near-best kicker is always sitting on waivers. We changed what replacement means for the two never-flex, weekly-streamable positions. That story is here.
- Quarterbacks and tight ends. The same baseline ranked elite QBs and TEs well ahead of where the market takes them, and it turned out the market was right, and we proved it with six years of actual results instead of projections. That story is here.
Both exceptions share a shape worth remembering when you read anyone's rankings: value over replacement is only as honest as its claim about what you can get for free. Where that claim holds, the formula is the best tool in fantasy football. Where it doesn't, the formula is wrong with total confidence and perfect arithmetic.
What to take to your draft
You don't need to run a simulation to draft well, but you do need the habit the simulation encodes. Before you take a player, ask what you'd have at that position if you passed. Not in the abstract, but in your league, with your starting slots and your number of teams. Ranking by points answers a question nobody asked. Ranking by surplus over what you'd otherwise be stuck with answers the only one that matters.
RotoAlpha is our AI co-manager for fantasy sports, launching this season, and its board is built exactly this way: per-format, derived, with the two exceptions above and no other thumbs on the scale. More field notes on the draft math and the backtests behind it are coming at rotoalpha.com.