Fantasy basketball draft model · H2H points · re-runs for your league in the browser
A projection model you can bend to your own league. Set your scoring and your playoff weeks, switch the optional factors on or off, and both the draft board and 24 seasons of backtest re-rank in front of you.
Weeks are the fantasy calendar for 2026-27 (24 weeks; the NBA Cup and All-Star weeks are merged). Replacement level is teams × roster spots + 1. The board ranks by total value (FP/G × projected games over the full season); the weeks and playoff weight apply only when the League weeks chip is on. Bonuses stack: with Yes a triple-double also earns the double-double bonus; with No it earns only the highest bonus reached.
| # | PR | ESPN | ADP | FPros | Sleeper | Player | Tm | Pos | Depth | Min | Usg | Load | Pts | Reb | Ast | Stl | Blk | 3PM | TO | FP/G | Total | eFP/G | ΔFP | LY FP/G | LY Tot | GP | Avail | Gms | PO | Δ |
|---|
Total is projected points inside your scoring window, at the games he is expected to play. Δ is his move from the shipped defaults. PR is his projected rank and does not change when you sort.
College is the board rank from this project’s college rookie model (per-minute production from draft slot + college stats, minutes from slot + the minutes his new team has open, games from slot — each part significant on its own target over 12 draft classes). Beside it, every outside signal: ESPN’s editorial rank, live ADP, the FantasyPros consensus, and the rank ESPN’s own stat line implies under this league’s math. Comb is their simple average, no fitting. Stat lines are the college model’s where it covers the player, else ESPN’s.
| # | Player | Tm | Pos | Comb | ESPN | ADP | FPros | College | ESPN line | Pts | Reb | Ast | Stl | Blk | 3PM | FP/G | GP |
|---|
Read with the base rate in mind: over eight seasons a top-5 pick’s median finish is 101st, and of the rookies ESPN projected top-104 across six backtest seasons, 42% got there (median finish 130). ESPN’s rookie lines run hot (the ESPN line column); the college model is calibrated on 17 past draft classes and was the better rookie input in the draft test (+0.31pp realistic vs ESPN’s lines, 7/7 seasons, p=.01), though ESPN orders rookies about as well (rank correlation 0.58 vs 0.54, n.s.).
Everything above starts from the one formula (Method tab). On top of it sits a documented judgment layer, set player by player from the 2026-09 audits: games rows fix projected games where a draft-day fact (a team-announced surgery timeline, an audited non-injury absence) contradicts trailing history; role rows scale a whole per-game stat line where a role changed in ways the history can’t see (new starters, bench demotions, usage squeezes). Every row carries its working and gets pruned when its reasoning goes stale. Rule-based layers — the depth-chart minutes nudge and the roster corrections — are separate and documented in their own legends.
Click a player when someone else drafts him. Click the ★ when you draft him. Marks are shared with the Board tab and survive refresh (same browser).
8-team H2H points · 2026-27 · verified against ESPN league settings
One formula, built up in five stages, then a documented layer of case-by-case judgment on top. Every number below is live from the current board, and one player — Tyrese Maxey — is carried through every stage so you can watch his rank get made.
The whole thing in one line
A player’s value is the fantasy points he puts on your scoreboard, week by week, across your season. The key idea: when he sits out, you don’t score zero — you pick someone up off waivers. In an 8-team league only 104 players are rostered, so the waiver wire always holds a real NBA starter. A missed game costs you the gap to that player, not the whole game.
Every control on this page changes one term. Your scoring settings change stage 1, the factor toggles change stage 2, waiver recovery changes stage 3, playoff weeks and weight change stage 4, and teams × roster spots change stage 5. The browser re-runs all five stages for every player whenever you touch anything.
Every parameter was chosen by walk-forward testing: build the board for a past season using only what was knowable before it, then score it against what actually happened. Twenty-four seasons, 1999-00 to 2025-26 — the last one held out of all tuning and spent once, blind, at the end. The Proof tab shows every season.
Stage 1 · fp_per_game
Built in two separate pieces, because they behave differently: how productive he is per minute, and how many minutes he plays. Each comes from his last three seasons, with last season counting most. Multiply them and you get a full per-game stat line (points, rebounds, assists, steals, blocks, threes, turnovers…), which is then scored under your settings — including the double-, triple- and quadruple-double bonuses.
Stage 2 · fp_per_game, adjusted
Stage 1 projects every player in the role he held last year. That breaks when a team collects several players who were all the first option somewhere else — there are only so many shots to go around. This stage docks players on over-crowded offenses and bumps players on thin ones.
Stage 3 · availability, recovery, replacement_fp
Availability is the share of his team’s games he is expected to play: projected games ÷ 82. For the games he misses, you get partial credit — a recovery share of what a replacement player off waivers would score. Recovery is high in the regular season and low in the fantasy playoffs, when you can’t afford to guess.
Stage 4 · games_that_week, leverage, tank_discount
Everything is priced week by week on the published 2026-27 NBA schedule, so a team with more games in your window is worth more. Only weeks 1–22 count (every team plays 72–74 games in that window). Your playoff weeks, 19–22, count 1.4× because they decide the title. And one narrow group — veterans on teams likely to tank — loses 15% in those playoff weeks.
Stage 5 · value, vorp
Eight teams × thirteen roster spots = 104 players rostered, so the 105th-best player is free — he’s on waivers all season. VORP (value over replacement) is how much more a player is worth than him. Players are ranked by value, then grouped into tiers.
On top of the formula
The formula reads three years of box scores. It cannot see news: a surgery announced in September, a trade, a new starter, a star leaving a team. So on top of it sits a documented judgment layer, set player by player in the September 2026 review of every top-130 player. No formula parameter is ever changed to fit an opinion — judgment lives only in these rows, each with its reasoning written down, and each is deleted when the news resolves.
Replace projected games (stage 3) where a draft-day fact contradicts history: a team-announced surgery timeline (Butler’s ACL → 28 games), or a past absence that wasn’t injury, or an owner durability call.
Scale a player’s whole stat line (stage 1) for a role change history can’t see — set his minutes (Giannis 32, Naz Reid 30 as a new starter) or his per-minute rate (a usage squeeze or a promotion to first option).
Trades and signings the NBA’s data hasn’t caught up with yet, so each player is priced on his real team. Removed when the official data catches up — so far every handover has moved players by a place at most.
Display only: the INJ tag and its hover text for players not ready for opening night or carrying real risk. They inform your judgment; they don’t change value.
Every games and role row — what changed, from what to what, and why — is listed in rank order in the Case-by-case adjustments ledger at the foot of the Board tab. Two rules keep the layer honest: a claimed injury is checked against actual games played and the article’s date before it ships (seasonal news gets recycled), and when a check overturns a call, the row changes and the page says so.
Every method drafts the same players and is scored the same way, one season at a time, using only what was knowable before that season. Total points = share of the best possible full-season fantasy points captured by drafting the top 104 (what the total-value board is built to predict). Standard = the same with this league’s fantasy weeks and 1.4× playoff weeks. Realistic = an 8-team snake draft played out day by day with 10 starters and a waiver pickup whenever a drafted player sits out — the only test that credits the waiver wire. The model row is today’s board, ranked by total value (FP/G × projected games). League default settings; the interactive table further down re-scores under YOUR settings with the simpler base formula.
For each season below the board was built using only what was knowable before that season started — three prior years of box scores, the published schedule, the age curve — and then scored against what actually happened, under your scoring system and playoff weighting. Where ESPN’s own pre-draft rank exists it is scored on the identical test, so the comparison is like for like.
ESPN column
ESPN’s published H2H points rankings as they stood before each season, recovered from dated Wayback Machine captures (16 Oct 2025, 7 Oct 2024, 3 Oct 2023, 23 Oct 2022, 20 Oct 2021). Corrected 1 Oct 2026: 2025-26 previously used an API rank list that turned out to be frozen in June 2025 (it still ranked Haliburton 20 after his Achilles tear); the genuine October article replaces it, and on it ESPN beat this model for 2025-26. The fantasy API’s stored rank for a past season is refreshed during the year and carries hindsight, so it is not used.
A human editor with every roster move, camp report and injury update on the day is a genuinely strong benchmark, and this model reads only box scores and a schedule — read the comparison with that in mind.
FPros column & the hybrid
FPros is the FantasyPros expert consensus for Yahoo points scoring, frozen at each tip-off and verified the same way. It is a multi-expert panel (6–12 experts per season), so a stronger benchmark than any single writer, though built for a different points format.
Experts × your league math re-ranks that consensus with this model’s magnitudes and your schedule, scoring and playoff weighting — the hybrid described on the Method tab.
What gets scored
Every season’s board is today’s full formula, built only from what was known before that season: projection with the late-season role blend, team load, availability with the injury-news, ended-hurt and returner rules, and rookies from the college rookie model (from 2012-13, the first class with three earlier college classes to learn from; rows marked RK). The optional factors on the Board tab stay off. Ranked by total value (FP/G × projected games) and scored on real full-season points unless League weeks is on.
Compared with the bare projection these boards used before 1 Oct 2026, scored against the same perfect draft: straight-down capture 89.2% vs 89.3% (a tie, 13 of 24 seasons); the realistic daily-lineup draft 95.3% vs 95.2% (+0.14pp, 15 of 24, not significant). Each added part earned its place on its own target (projection accuracy); together they move draft capture only a little.
The playoff window on this tab uses the league’s default weeks; custom windows apply to the live board.
Seasons left out, and why
2019-20 was suspended in March 2020 and finished in the Orlando bubble with 22 of 30 teams — 63–75 games and no comparable late-season calendar (where your playoff weeks live). 2020-21 was a delayed, compressed 72-game season with heavy COVID-protocol absences. 2011-12 was the 66-game lockout. Scoring a board against those measures the distortion, not the board.
Run as an exhibition anyway (capture self-prorates): 2019-20 board 90.6% vs FantasyPros 93.2%; 2020-21 board 87.1% vs 88.9%. Same direction as the official seasons — excluded for calendar comparability, not because they flatter anyone.
| # | Player | Tm | Proj | Proj pts | Actual | Actual pts | GP | Miss | ESPN | ESPN miss | FPros | FPros miss |
|---|
Value captured is the share of the best-attainable points a team would have banked by drafting straight down that ranking to fill every roster in the league. Miss is actual rank minus projected rank: positive means he finished lower than projected. A model that only ever had to beat last year’s totals would sit around 0.87; random drafting sits near 0.60.
Every outside pre-draft opinion this project has recovered and verified, season by season, as raw rows. These are the benchmarks the Proof tab scores — here you can browse what each source actually said before each draft. ESPN projections are full stat lines, so they re-score under your scoring settings above.