Magrathea Software ← Blog

Field Notes

We ran the math and kickers should go in round 3, and why that's wrong

22 July 2026 · Kyle Twogood, Magrathea Software

While building the draft engine for RotoAlpha, our fantasy sports AI co-manager, our value-over-replacement math handed us an unambiguous answer: the best kicker in the league is worth a third-round pick. The math was correct. Following it would wreck your draft. This is the story of a number that was right and an answer that was wrong, and the one-line rule we used to reconcile them.


Why raw projections rank the wrong players first

Start with the naïve approach: rank every player by projected fantasy points, highest first. It sounds reasonable and it is quietly broken. In our 2026 preseason build, a raw points ranking put Jahmyr Gibbs, the RB1, at #11 overall, behind ten quarterbacks. Sorting by raw points floods the top of the board with QBs, because a starting quarterback simply scores more total points than a running back does.

The fix is an idea as old as fantasy analysis: value over replacement. A player isn't worth his point total; he's worth the points he gives you above what you could have gotten for free at his position. A quarterback who scores 320 when the next startable QB scores 300 has given you 20 points of edge. A running back who scores 260 when replacement-level is 140 has given you 120. That RB is far more valuable, even though he scores fewer raw points. Value over replacement is what makes Gibbs an early first-rounder again.

Our baseline is a simulation, not a magic number

The hard part of value over replacement is defining "replacement level" without hand-tuned constants that break the moment scoring settings change. RotoAlpha derives it instead. We run a league-wide greedy starter simulation: fill every team's dedicated starting slots with the best available players by projection, then fill the flex slots with the best remaining flex-eligible players. A position's replacement level is the projection of its best player who doesn't crack anyone's starting lineup: the best guy left on the table.

Then every player's draft value is simply:

draftValue = projectedPoints − positionalBaseline

Rank the whole pool by that surplus and you get a board that respects scarcity automatically. Change to PPR, add a superflex, run a 14-team league, and the simulation re-derives every baseline from the same projections. No per-position fudge factors. We wrote up the full decision in our internal architecture record; the mechanism is one rule applied to everyone.

Then the rule said: draft a kicker in round 3

Here's where honest math produced a dishonest recommendation. Kickers have exactly one starting slot per team and never appear in a flex. So on the real 2026 standard-scoring board, the "best kicker who doesn't start anywhere" is roughly the 13th-best kicker, because the top twelve are locked into the twelve teams' single K slots. Replacement level for kickers is therefore K13.

And the projected gap between the best kicker and K13 was about +35 points. That is a genuinely large surplus, larger than the edge many mid-round running backs offer over their replacement level. So the pure value-over-replacement model did exactly what it was told and priced the K1 at around pick 28. Third round. For a kicker.

The number wasn't a bug. Kickers really are top-heavy in projection, and K1 really is projected to out-score K13 by a lot. If your only question is "who provides the most points above a freely available replacement," the model answered it correctly.

The surplus that never shows up

So why is drafting K1 in round 3 a mistake anyone who has played fantasy football knows in their gut? Because that surplus never accrues.

Value over replacement quietly assumes you can only get replacement level for free. For running backs and receivers, that's true: the waiver wire in a competitive league is thin, and the drop from a startable RB to a streamable one is real and permanent. For kickers, the assumption collapses. A near-best kicker is always on waivers. Kicker week-to-week scoring is close to noise; last year's K1 is next year's K18 and nobody can predict the reshuffle. You can stream a top-five-ish kicker off the wire in most weeks for the cost of a roster spot you were going to churn anyway.

So the +35-point "edge" the model priced at pick 28 is an edge over a baseline you'll never actually be stuck at. In practice your replacement kicker isn't K13; it's whoever is hot and available, which is much closer to K1 than the math assumed. The honest surplus evaporates on contact with the real waiver wire. Spend a third-round pick on it and you've paid a real RB or WR's price for points you could have had for a dollar of free-agent bidding.

This is the trap in one line: a mathematically correct valuation can still be strategically wrong when the "free" baseline it assumes doesn't match the one reality offers you. Our bot logic made the failure vivid: a best-player-available draft bot running pure value over replacement would visibly reach for kickers in round 3, and every human in the room would know it was broken.

The fix: one different baseline, still one rule

We were tempted to bolt on a constant: "cap kickers at round 13" or similar. We didn't, because a magic number is exactly the thing the greedy simulation exists to avoid; it would be wrong the moment scoring or roster settings changed.

Instead we changed what replacement level means for the two positions that are never flex-eligible and are streamable week to week: kickers and defenses. For those two, the baseline is the position's top player, not its best non-starter. In other words, we tell the model the truth about the waiver wire: your realistic replacement for a kicker is roughly a best-available kicker, so measure surplus against that.

The effect is immediate. K1 and DEF1 fall to the replacement boundary, right around their real average draft position, where experienced drafters actually take them, and the kickers still stay correctly ordered among themselves below that line, so if you do reach for one, the model still tells you which one. Critically, it's still one rule, no tuned constant: "baseline = top player at the position" is as principled and as settings-independent as "baseline = best non-starter." We just applied the version that matches how the position is actually replaced.

What this taught us about building a draft AI

The lesson generalizes well beyond kickers, and it's shaped how we build the rest of RotoAlpha's valuation:

So: when should you actually draft a kicker? Dead last, like you always suspected, and RotoAlpha's board now agrees with you, for a reason it can defend rather than a constant we typed in. The interesting part was never the answer. It was watching a correct number produce a wrong recommendation, and learning to tell the difference.

RotoAlpha is our AI co-manager for fantasy sports, launching this season. More field notes on the draft math and the backtests behind it are coming as we approach launch at rotoalpha.com.

Kyle Twogood

Kyle Twogood is the founder of Magrathea Software. He’s been building production software since 1997.