Player Data
The two blends — where every number starts
Blended points (BPTS). Every source’s raw stat line (FantasyPros, ESPN, CBS, FFToday for offense; FantasyPros and FFToday for IDP) is re-scored under your league’s own scoring rules, then averaged with equal weights. A missing source is dropped and the rest reweighted — nothing is penalized for silence. Pre-scored totals from a source are never blended; only raw lines, so the math is always your league’s math. A calibration shrink then pulls each projection toward the positional mean of the draftable pool, because every projector over-spreads: QB ×.67, TE ×.72, RB ×.79, WR ×.85 (IDP unshrunk until we can measure it).
Blended ADP (BADP). Format-matched market streams only — FF Calculator (nearest league size), FantasyPros site ADPs, ESPN, CBS — equal weights, missing streams dropped. Spread stats (FFC’s std deviation, CBS’s HI/LO) ride alongside for future survival math.
Two layers: projection is static, value is live
A player’s projection never changes because somebody else got drafted. Every value below does: the three baselines are read from the players still on the board and the starter seats still open, so the board you see at pick 60 is the board for pick 60. Before the first pick the live board and the preseason board are the same thing.
VORP — value over replacement
The draft pool is teams × rounds players. For each position, the replacement is the best player still available whose market price falls past that pool — the guy freely available when the music stops. VORP = your points − his points. A player no ADP feed prices (most IDP) is not treated as undraftable: the engine estimates where he goes from roster demand — this league’s starter seats at his position, scaled to the draft’s length, with FantasyPros’ positional rank ordering the position — and flags that estimate low confidence in his card.
VOLS — value over last starter
Starter seats per position = teams × roster slots; FLEX seats are pooled and handed out greedily to whichever eligible position’s next man up scores highest. Live, every drafted player fills a seat (his position’s first, then the flex family), so the baseline is the last starter among the seats still open: VOLS = your points − the last starter’s points. When a position’s starter seats are all gone, VOLS runs from the best player left — everyone there is bench now.
VONA — value over next available
Snake math finds your next open pick — a keeper pinned in one of your slots is not a pick you get to make. Survivors are the available players whose market price falls after it. VONA = best available at the position − best expected survivor. High VONA means the position craters before the draft comes back to you — the on-the-clock urgency number.
VBD — the composite
VBD = V·VORP + L·VOLS + N·VONA. Live weights right now: V ? · L ? · N ? (phase: ?). Presets: pre-draft V .6 / L .3 / N .1 leans on season-long value; live draft V .3 / L .2 / N .5 leans on what dies before your next pick. The Phase / V·L·N knobs in Advanced’s verification toolbar are live — turn them and every board reorders.
Tiers — experts first, for real
Every player gets an expert mean, and every voice is read on its own scale first: an expert’s tier is a fraction of how many tiers that expert uses at the position, so Dave’s tier 3 of 6 and FantasyPros’ tier 5 of 12 both mean “the middle of the board” instead of 3 and 5. The position’s common scale is the weighted average of the voices’ tier counts, and the mean is the weighted average fraction put back on that scale — with one voice weighted, that is exactly that voice’s tiers, verbatim. Every voice has its own weight (the dials below; 0 silences a voice): FantasyPros starts at 2 — their tiers are a consensus of many rankers — the four individuals at 1. Trust the individuals over the consensus? Drop FantasyPros to 1 or 0. Tier = the mean, rounded (halves round to the worse tier), and the label is the tier number — T4 always means consensus tier 4. The order IS the expert mean: tier, then the un-rounded mean, then projection — so experts can drop a man below his projection (the whole point). A voice that tiers fewer than four men at a position, or uses a single tier, is thin and sits that position out (a half-parsed article must not set a scale). A man with no usable voice — or fewer than Min voices — is placed by his projection beside the voiced players and marked ⬚; only players who project below every voiced man drop to a tail tier. Monster VBD cliffs — a gap bigger than Cliff× the position’s average gap — only SUB-SPLIT a tier (T4a / T4b), never renumber it; Cliff× 0 turns math off. A position with no usable voices at all falls back to pure VBD cliffs, and the voices table above tells you which world each position lives in.
The market is the sixth voice (9/6). At depth the expert mean thins to one voice, and FantasyPros’ tier 8 of 14 reads as “middle of the board” on their own scale while the CBS writers stopped tiering sixty men ago — that floated Kyle Williams (ADP 227) into WR T6 above DK Metcalf, and a healthy RB4 nobody drafts into RB T6. The market never thins: every priced man has an ADP, and the men no feed prices are the men nobody drafts. So his blended ADP is read as a positional rank against how many of his position this league drafts, put on the position’s common scale (the M chip), and averaged in at the Market weight — unpriced, or priced past the draft, is one tier past the last. It never counts toward Min voices, never defines a scale alone, and sits out a position with fewer than six priced men (IDP). Sideline drops the men Sleeper lists on IR / out / inactive into an OUT tier at the bottom — they hold no value and set no baseline — and Stale after retires a source’s record on a man that source has since dropped (the 216 stale points on a receiver out for the year).
Research is the seventh voice — as a nudge, not a scale (9/7). The daily research ledger (Player Data → Research ledger; the site’s copy loads itself) records who said what about whom: sleeper, breakout, bust, role, market, scheme calls with their outlet, date and evidence. Every player’s buzz counts the live calls of the last 14 days, one vote per outlet (three FantasyPros pages are one outlet), weighted by source tier and strength and halved every 5 days; net = up − down. Net buzz moves his expert mean by up to one tier (±net ÷ 2, clamped) × the Research dial, so three fresh independent up-calls ≈ one tier better and a lone August mention ≈ nothing. Health and availability events show as a ⚕ chip and never move a tier — the Sideline gate reads Sleeper for that. The ▲/▼ chips on every row open the evidence on hover; the player card’s Research tab has the full timeline and the still-a-value check against today’s ADP; the Research channel under Players is the day’s file, sortable.
The dials, live right here — every change re-tiers all the boards instantly:
Voice weights
Reality checks
Tier inspector — the receipts, player by player
Pick a position: expert order, each man’s tier and expert mean, his VBD, the gap to the man above him, every expert tier we imported for him, how many voices counted (⬚ = placed by projection), and exactly where and WHY each boundary landed (⚖ expert tier steps down · ⚡ monster sub-split). Copy it and paste it wherever the argument is happening.
Market gap & verdicts
Market gap = current pick − BADP for a player still on the board — how far past his market price he has fallen (positive) or how early taking him would be (negative). The Jumbotron’s verdict stamps read the same gap:
| Gap | Verdict |
|---|---|
| ≥ +8 | STEAL |
| ≥ +3 | VALUE |
| ≥ −3 | ON MARKET |
| ≥ −8 | REACH |
| below | BIG REACH |
Want different numbers?
Everything above is deliberate and adjustable: blend weights, shrink slopes, phase presets, tier sensitivity, verdict thresholds. The V·L·N and relevance knobs are live in Advanced today; the rest changes in a build — now that the machinery is on the table, say which dial and where.
New here? Two minutes to a full app, in order: 1 · Grab a free FantasyPros API key — the blue box below has the links and takes about two minutes. 2 · Paste it in the box. 3 · Hit Load all data and let it work. (Already have a savant-pool-….json from a friend? Drop it on the Players tab and skip all of this.) The numbered buttons below re-run one source at a time; the verification board at the bottom shows every number next to the source that said it.
Load all data
One click pulls every source — rankings, projections, ADP, tiers and three seasons of history, including the FantasyPros exports staged on this site. It takes a few minutes; the bar below narrates. Needs your FantasyPros key from Step 1 above — free, two minutes, explained in the blue box.
What actually landed. The cards below are per-source coverage counts from the last run — matched players, unmatched names, anything clamped or repaired. Under them, the verification board is the engine's output rendered raw, straight from this workbench, so you can eyeball the data with your own eyes before trusting it on draft day: filter the universe, sanity-check a projection, click a row for the full player record. The Phase / V·L·N weights in its toolbar are live — they drive the Rankings and Savant Board too. The ECR≤ / Proj≥ / IDP≤ boxes set the relevance filter: who counts as a real player when the pool commits to the app.
