methodology
How this works
This site ranks players for best ball tournaments by what they win you in prize money, not by points scored. The engine behind it plays the 2026 NFL season start to finish, 1,000 times, and replays real tournaments inside every one of those seasons. This page explains the whole machine at whichever depth you want.
source one · our simulation
We simulate the season 1,000 times and replay real best ball tournaments inside every run. Every dollar figure here comes from that: the rankings, the weekly splits, each player's upside and downside, the draft room's advice.
source two · the draft market
Every day we snapshot where players are actually being drafted on Underdog, DraftKings, and Drafters. Every ADP, every 7-day move, every availability percentage is the market's number, shown as is. It never leaks into the dollars.
Most pages put the two side by side. When the dollars and the ADP disagree about a player, that gap is the whole game.
Same pipeline, three altitudes. Every level walks the same eight steps, so you can switch anytime without losing your place.
We simulate the 2026 NFL season 1,000 times, week by week, player by player. In each simulated season, teams have good and bad years by realistic amounts, players get hurt at realistic rates, workloads shift the way they really do when someone goes down, and touchdowns bounce around the way they really bounce. A player's projection is his average across all 1,000 seasons. His upside and downside are the spread. And his ranking is what he is worth, in prize money, to a real tournament roster. Here is each piece of that, in order.
step 1
The starting point: a hand-built projection
Everything starts with two authored inputs, maintained daily through draft season. First, a team-level projection for all 32 offenses: pass attempts, rush attempts, yards, touchdowns, and points per game, built from a disciplined process (regress hard toward league average, trust play-calling data over coach-speak, reset assumptions when the coach or quarterback changes) and checked against the betting markets.
Second, for every team, each player's share of the pie: what fraction of the team's pass attempts, carries, and targets he gets when healthy. Shares on a team always add up to exactly 100 percent, including a slice for unnamed depth players. On top of the shares, each player carries his own efficiency profile (catch rate, yards per catch, touchdown rates), grounded in three years of play data and adjusted by hand where we know something the averages miss.
a deliberate choice
We author the middles, not the randomness. A human sets what a player's role should look like and, occasionally, how high his realistic ceiling runs. The engine owns every number about variance, calibrated from history. Nobody ever hand-tunes how streaky a specific player is.
step 2
Every team's season breathes
A projection is a midpoint, not a promise. So in each simulated season, every team draws one season-long swing, up or down, that colors its whole year. The size of that swing is not a guess: we measured how far real teams have landed from their preseason betting-market expectations in recent seasons (a few points per game in either direction) and made our simulated seasons wander by exactly that much.
Two details make this feel like real football. A team having a great scoring year mostly gets there through efficiency and touchdowns, not by suddenly throwing 60 more passes; volume barely moves with quality, so that is how the engine plays it. And separately from scoring luck, each team's pass-run mix can drift a bit for the season, the way real offenses lean into what is working.
One more honest connection: a chunk of why teams fall short in real life is injuries. So a team's injury luck in a given simulated season is wired into its season swing. If the quarterback misses eight weeks in one of our seasons, that team's year sags the way it would in reality, rather than the sim pretending the two things are unrelated.
step 3
Injuries, benchings, and lost jobs
Each healthy week, every player carries a small chance of getting hurt, based on his position (roughly one chance in 15 to 25 per week, depending on position). When an injury hits, its length is drawn from real recovery patterns: lots of one-week absences, a long tail of season-enders. Star players get special treatment backed by data: top quarterbacks do not get hurt more often than others, but when they do, the injuries skew catastrophic, while elite skill players play through more than backups do.
Injuries are not the only way roles change, so the engine also models benchings (a struggling starter losing his job for weeks) and quiet role erosion (a receiver drifting from 25 percent of targets to 17 by December), each at rates measured from recent seasons. Players we know are safe from benching are marked safe by hand. Known situations are authored directly: a player recovering from a torn ACL gets a realistic return window, a suspension costs exactly its games, and a training-camp quarterback battle plays out across the 1,000 seasons with each candidate taking over at realistic times.
step 4
Play the games
With the season-level table set, each week gets played. A game's pass and run volume swings with game script (teams that fall behind throw more; the two move against each other), and each game also has its own quality of day: when the passing game clicks, completion rate and yards per attempt rise together. Touchdowns, interceptions, sacks, and fumbles are drawn as whole-number events, which is exactly why they are streaky in the sim: rare counted things are streaky in real football too. Touchdowns get two extra doses of realism: a team's touchdowns in a game are a limited number of real chances converted at a rate, so monster touchdown games stay exactly as rare as they really are, and those chances follow the yards, so big scoring days and big yardage days arrive together the way they really do.
The schedule matters as well. Every simulated game gets nudged by that week's actual betting line for that matchup, so a soft December schedule shows up as more scoring in December. The nudges average out to zero over the season: they move scoring to the right weeks without inflating anyone's season totals. We do not model defenses or weather separately; the betting market has already priced all of that in, and it does that job better than we would.
step 5
Split it among the players, exactly
Every simulated game produces a team stat line, and the players carve it up. A player's share of targets or carries in a given season wobbles realistically around his authored role, and here the engine leans on a finding from three years of forecast data: target shares are stable and predictable, while running back workloads are genuinely chaotic. Lead-back roles swing wildly from projection; that is not a bug, that is backfields.
When someone is out, his work gets reallocated: explicitly routed where we have a strong belief (this handcuff inherits that lead role), tilted toward next-man-up depth otherwise, and, importantly, about a third of vacated work leaks to players who are on nobody's radar in June, because every real season hands real volume to a few names no one projected.
the rule we never break
Player stats always add up to the team stats. Exactly. Every catch is somebody's completion, every receiving yard is a passing yard, every touchdown is accounted for, in every week of every one of the 1,000 seasons. A quarterback and his receivers cannot drift apart, because their stats are literally the same plays viewed from two sides.
step 6
Calibrate against reality, and stay honest
After every engine change, the 1,000 seasons get audited against real NFL history at several altitudes. Do team totals land right? Does the league produce about the right count of 100-catch, 1,300-yard, and 13-touchdown seasons? Is week-to-week volatility right for stars and role players alike? Do games-played numbers match reality position by position, including the late-season pile-up of absences?
When a check fails, we fix the mechanism, for everyone at once. We never edit one player's outcomes because they look weird, and we never patch a symptom in one place. The engine also keeps a running list of known imperfections and the tradeoffs we chose on purpose. Two worth naming plainly: no simulator can both keep projections consistent with today's beliefs and perfectly reproduce how often real players lose their roles (we chose a middle point on purpose), and unit-for-unit, extremely rare record-chasing seasons are slightly rarer in our worlds than in history.
step 7
From 1,000 seasons to rankings: insertion value
Season averages do not win best ball tournaments, so we do not rank by them. Instead, every player is priced the same way: by what he adds to a tournament entry.
It works like this. We take thousands of real drafted rosters from this year's contests. On each roster we open one seat at the player's position, insert him, and replay the entire tournament inside a simulated season: best ball lineups set themselves automatically each week, the roster's score climbs the real bracket (or the real season-long leaderboard), and prize money gets paid from the contest's actual payout ladder. The difference between that roster's expected winnings with him and without him is his value in that world, in dollars. Average it across many rosters and all 1,000 seasons, and that number is his ranking. No comparison to a made-up replacement player, and ADP appears nowhere in the math.
why duds are free
Best ball starts your best scorers automatically, so a player's bad weeks just sit on the bench, costing nothing, while his spike weeks pour straight into the lineup. Picture two players with identical season totals: one steady, one boom or bust. The steady one cracks the lineup a little more often; the spiky one delivers the huge weeks that actually win money in a top-heavy tournament. The dollars capture that difference. Averages cannot.
step 8
Reading the dollars on the boards
Each contest gets its own board because each contest pays differently. Underdog's Best Ball Mania and DraftKings' Millionaire are brackets: weeks 1 through 14 decide who advances, then weeks 15, 16, and 17 are single-week playoff rounds where the giant prizes live. On those boards a player's value splits into what he contributes to advancing plus what he adds in each playoff week. Late-season points are worth several times a September point on Underdog, and the effect is far stronger on DraftKings, whose final pays even harder. Drafters has no bracket: nearly all of its money follows the full 17-week total, so steady season-long production carries the day there.
The dollar values are scaled so that one 12-team draft room's picks split exactly what the room paid in (300 dollars on Underdog and DraftKings, 180 on Drafters). So if your roster's picks add up past your seat's share, you drafted a team that beats the room average. One reading tip: two players a few cents apart are effectively tied. Trust the size of the dollar gaps more than the exact rank order.
And the Universes tab is the same machine with the lid off: each universe is one of the 1,000 simulated seasons, shown in full, so you can see exactly the kinds of worlds the averages are built from.