How every number is built

Methodology

Every stat on this site, defined exactly, with the settings in use.

This page is the written definition of every stat on the site. It is generated on every compute run from this template and the knob values the run actually used, so the numbers below are always the ones in force. The knobs are listed with their defaults under Settings in use at the end; the commissioner can change any of them in admin, and a change recomputes the site and this page.

Stats describe what happened. Nothing here predicts, except the season simulation, which is the site's one model.

Score+

Score+ puts every team-week on the same scale, so seasons with different scoring can be compared. 100 is that season's average team-week, and every 15 points of Score+ is one standard deviation.

Score+(team-week) = 100 + 15 × (points − season mean) / season standard deviation

The mean and standard deviation are over that season's regular-season team-weeks. Playoff weeks are scored against the same regular-season mean and standard deviation. Season and career Score+ are the mean of weekly Score+, never the Score+ of a total. All-time lists sort by Score+ and show raw points beside it. The record book's team-count filter hides seasons with a different team count but leaves career totals as they are, since they count every season; the rates beside them are fair across league sizes.

Standard deviations are population standard deviations (a season's team-weeks are the whole population, not a sample). Percentiles interpolate linearly between ranks (linear).

Expected wins and the all-play record

Each regular-season week, a team's expected wins (xW) are the share of the other teams it outscored: (teams outscored) ÷ (team count − 1). A tie counts 0.5. Season xW is the sum over the regular season.

The all-play record counts the same comparisons as a record: each week a win for every team outscored, a loss for every team that scored more and a tie for an equal score.

Luck

Luck = actual wins − expected wins, for a season and a career. A robbed game is a loss with a score ranked in the top 3 that week; a gifted game is a win with a score ranked in the bottom 3 (tied scores share a rank). Luck, robbed and gifted games, true standings, the schedule swap and the Opponent Team make up the luck family.

True standings

Every team ranked by cumulative expected wins, week by week: who would be leading if every week were all-play. Exactly tied teams are ordered by team id.

Schedule swap

Team i's record had it played team j's schedule: i keeps its own scores and meets whoever j met each week. The weeks i and j played each other stay as that head-to-head game. The grid shows every pair.

Opponent Team

Whoever a team faced each regular-season week forms an imaginary Opponent Team, with its own season Score+.

  • Opponent Score+ is the mean weekly Score+ of the scores posted against the team.
  • Schedule Strength is, for each game, that opponent's usual Score+ (its regular-season mean with its games against this team left out), averaged over the team's games.
  • Opponent Luck = Opponent Score+ − Schedule Strength: how far above or below their usual level opponents played against this team. It is shown in Score+ and in points per game (Score+ × that season's standard deviation ÷ 15).

So Opponent Score+ = Schedule Strength + Opponent Luck. The Opponent Team is also ranked among that season's real teams by regular-season Score+ (ties share the better rank).

Schedule luck

Out of every schedule the league could have drawn, where would each team have finished the regular season?

  • The universe. The league's rule: weeks 1 to n − 1 are a round robin (each of the n teams meets every other once), and from week n on the schedule replays week 1, 2, … So a season's schedule is an ordered round robin of its teams: for 10 teams, 1,225,566,720 round robins × 9! orders, about 4.4 × 10¹⁴ schedules, each equally likely. Each season's real schedule is checked against the rule first; a season that breaks it, or has an odd team count, is left out.
  • The replay. Every team keeps its actual score in every regular-season week; only who it faced changes. Each schedule's records are ranked with the real standings rule (see Standings and tiebreaks). Points for never change. No model is involved, so this is not a prediction.
  • Sampling. Schedules are built one round at a time, each round drawn evenly from the pairings still possible. That favours some schedules, so each one is weighted by how many choices it passed through (a dead end counts zero), which makes every schedule count equally. Drawing stops at 40,000 effective samples, which puts each percentage within about ±0.5 points (95%). The draws are seeded per league and season, so the numbers do not move between runs.
  • The numbers. For each owner: the share of schedules finishing in each place, the expected (mean) place, the share reaching the playoffs, and places vs expected: the expected place minus the real place. Positive is lucky: a champion whose expected place was 1.9 reads +0.9, and a team that finished 10th against an expected 9.2 reads −0.8. Zero is exactly the finish a typical schedule gives, and across a season the owners' numbers add up to zero. All-time, each owner's average over their complete seasons.

Regular season only: teams that missed the playoffs play no playoff games, so the universe stops at the regular season.

The season in progress is replayed after every completed week, through the weeks played so far. It uses the same seed and the same sampled schedules as the full season, each cut off after the weeks played; since every full schedule is equally likely, the cut-off schedules are exactly as likely as they should be. Places are the standings to date by the same tiebreak. The numbers are to date, not a forecast: the odds of how the season ends are on Predictions. In the first weeks few games have been played, so places mostly follow points scored. Completed seasons are replayed again if the ranking rule or sample-size setting changes, or one of their weekly scores is corrected.

Standings and tiebreaks

The real standings use one rule everywhere: the site, the simulation and the payouts. Teams are ordered by the league-season's tiebreak order, set from Yahoo's settings page. The default is record, then points for, then head-to-head record among the tied teams. Each tie counts as half a win: two ties equal one win and one loss. This also applies to simulated standings, schedule comparisons and head-to-head tiebreaks. Teams still level after every tiebreak are ordered by team id and flagged unresolved, and a payout is never decided that way. A tied playoff game goes to the team with the better regular-season standing.

Seeds come from the regular-season standings. Final place is the playoff finish for playoff teams (the bracket and the third-place game) and the regular-season rank for everyone else; consolation games are not kept. Playoff places are checked against the final rank Yahoo shows.

Elo

Elo is kept as a reference and trend stat (the Elo River and peak Elo). It is not used for game odds or power rankings. Every team starts at 1500; after each game, playoffs included:

change = K × margin multiplier × (result − expected)
  • K = 32
  • margin multiplier = min(2.0, ln(|point margin| / 10 + 1))
  • expected result = the standard Elo logistic with divisor 400
  • between seasons, every rating moves 1/3 of the way back to 1500
  • a new owner starts at 1500

Peak Elo is an owner's highest weekly rating (the earliest week wins a tie).

Power rankings

power score = 0.4 × recent form + 0.2 × season Score+ + 0.4 × projected strength
  • Recent form is mean Score+ over the last 4 weeks (early in the season, the weeks played so far).
  • Season Score+ is the mean over the regular-season weeks so far.
  • Projected strength is the simulator's projected rest-of-season strength. It arrives with the season model; until then it is left out and the other two weights are scaled up to add to 1.

Rankings are weekly, regular season only, with the change from the prior week. Each week's ranking is the one it had that week: its Score+ uses the average and spread of the regular-season games played by then, so later weeks never change it. Each week also says why a team moved: the change in each part, the teams it passed or that passed it, and the main driver (the part that moved its score most, or other teams when its own score moved the other way).

When a team's rank changes, the week also names the event behind it if one clearly explains the move:

  • Season high (a climb): its highest score of the season so far.
  • Trade or pickup (a climb): a new starter who arrived since last week by a trade or a waiver/free-agent add; the biggest one is named.
  • Injury (a fall): last week's starter listed Out on this week's NFL injury report who did not start; the biggest one is named.

An event counts only if it is worth at least 15% of the team's average week before it (the season high's margin over that average, the new starter's points, the injured starter's points per start); the biggest that counts is named. Otherwise the move is a mix, or others passed when other teams moved around it.

Efficiency, perfect weeks and worst benchings

Efficiency = actual lineup points ÷ best possible lineup points, each week, judged with hindsight. The best lineup is an exact solve over that week's roster and the season's starting slots; a player fills at most one slot. Position eligibility comes from the season's archived dedicated starting slots, then the player catalog, then a cross-season repair when every other archived season agrees on one position. A week with an unresolved player has no efficiency; it is never capped or guessed. Bench loss = best − actual.

  • A perfect week is a week with no bench loss (efficiency 100%). Perfect weeks count every week with an efficiency, playoffs included.
  • A worst benching is the best single legal swap that week: a bench player's points minus the points of the starter he would have replaced (starters may be re-seated to make it legal; an empty slot counts as 0). The league's 50 worst are listed.
  • Career bench loss (All-time) = every solved week's bench loss, summed.

Consistency, boom and bust

Team consistency is measured in weekly Score+ over the regular season only; playoffs are kept separate (see Clutch).

  • Consistency is the standard deviation of weekly Score+. The steadiest and wildest seasons rank complete regular seasons by it.
  • Floor is the 20th percentile week and ceiling the 80th percentile week.
  • A boom week has Score+ ≥ 115; a bust week has Score+ ≤ 85. Both are against the league average, not the team's own, so a weak team's good week is not a boom.
  • Career spread (All-time) is the standard deviation of every regular-season weekly Score+ an owner has posted, pooled across seasons.

Player boom/bust covers the regular-season weeks a player started. A start is a boom at ≥ 1.5× the average league starter at his position that week, and a bust at ≤ 0.5×.

Clutch

Clutch = mean playoff Score+ − mean regular-season Score+, for teams in the playoff bracket. Career clutch pools every bracket week against every regular-season week. Clutch covers the playoffs; Pressure (below) covers the regular season.

Pressure

Did a team score better in the regular-season weeks that mattered most?

  • Leverage. Before each week's games the one model's kickoff run (the stored forecast for that week; see Forecast accuracy) gives each team its playoff odds if it wins that week and if it loses. Leverage = odds if it wins − odds if it loses. A must-win game has high leverage; a week that cannot change a settled race has none. A tiny negative value (simulation noise) counts as zero.
  • Pressure = the leverage-weighted mean of the team's weekly Score+ − its plain mean Score+ over the same weeks, in Score+ points. Positive means the team scored better, against the league, in the weeks that moved its playoff odds most. Big-week Score+ is the weighted mean and usual Score+ the plain one.
  • Minimum. A team needs 6 weeks with a stored pregame stake; with fewer, Pressure is left blank (not zero).
  • Coverage. Only weeks with a stored kickoff run count. Seasons without one have no Pressure: kickoff runs are not rebuilt for past seasons. The season in progress is shown through its latest week and joins careers once its regular season is complete.
  • Career pools every counted week of an owner's complete seasons into the same formula.

Points above replacement

Draft, keeper, waiver and trade stats share one scale: points above replacement (PAR).

  • Points are regular-season points, Yahoo first: a rostered player's week is his Yahoo roster points, and a week off every roster is filled from nflverse stats scored with the league's scoring settings (kickers use nflverse points; defenses count rostered weeks only).
  • Replacement level, per season and position: starter demand is the league's usual starting slots times the team count, with FLEX slots going to the best remaining RB, WR or TE. The next player at the position after the starters sets the level.
  • Season PAR = season points − replacement level. Weekly replacement = the level ÷ the season's regular-season weeks, so weekly PAR adds up to season PAR.
  • A player's share of a team's starting points is his starting points ÷ that team-season's own starting points across every roster spot.

Hidden gems

Every non-keeper pick gets a gem score: its PAR minus the median PAR of the non-keeper picks around it in the same draft, in a window of as many picks as the league has teams. The window is centred on the pick where it can be and shifts at the ends of the draft (pick 1 is compared with the picks after it). Keepers are neither graded nor used for comparison, and seasons are not compared with each other. Gems are ranked within the season and all-time.

What you passed on

Each pick is compared with the picks other managers made before the same manager picked again (its window). For every alternative in the window, the pick is swapped for it on the manager's end-of-draft roster (drafted players plus keepers) and the season's best weekly lineups are re-solved; the gain is the swapped roster's lineup points minus the real roster's. A pick's percentile is the share of its window it beat, a tie counting half, and its typical gain is the median alternative's gain. Windows with fewer than three alternatives are shown but left out of the averages.

Per manager and season: the mean percentile, points left on the table (the sum of positive typical gains) and total regret, the sum of each pick's best-alternative gain when it is positive. Total regret approximates the gap to a perfect draft, since each swap is judged on its own.

The season in progress is graded on the weeks played so far and marked "through week N"; it joins careers and all-time ranks once it is complete.

Career draft (All-time): the mean percentile over every graded pick, points left on the table and gem score, each summed over the owner's drafts.

Keeper surplus

A keeper's keeper surplus = his season PAR − the median PAR of the non-keeper picks around the draft slot he occupied, same season, with the hidden-gem window. The Keeper GOAT board ranks players by their career surplus, every keep by anyone added up. A keeper chain follows the player's keeper clock, not the owner: one player kept in consecutive seasons, his keeper year rising by one each season, whoever holds him. A player traded mid-chain keeps his clock (keeper rule 6), so his chain carries on under the new owner and lists both owners in order. A gap year, or a keeper year that does not follow on (a re-draft resets the clock), starts a new chain. Keeper Chains ranks the chains of two or more kept seasons by their summed surplus. Keepers in a season still under way are valued but not graded. Career keeper surplus (All-time) sums an owner's graded keepers.

The Keeper Center measures a keep a second way, surplus over his round: PAR − what his round usually buys (the median PAR of that round's non-keeper picks over the 3 complete seasons before). That is the only benchmark known before the draft, so the keeper grades, the suggestions and the keeper tracker use it. Keeper surplus compares a keeper with the picks actually made around him that season; surplus over his round compares him with what the round has bought in recent drafts. They differ by how that draft's neighbouring picks did against the round's usual haul.

Keeper grades

Keeper Day's letter grades judge the keepers each team declared, before a snap is played, with the one model. A keeper's model surplus is his projected points above replacement next season minus what the round he takes usually buys (his surplus over his round, above) — the same number the keeper board shows. A keeper who moved to an earlier round in a round clash is priced at the round he takes.

Keeper value: the year-ahead projection. A keeper is kept for next season, so every keeper value, suggestion, grade, board row and trade keeper value reads one projection of next season, from one of two sources (the board names which):

  1. Next season's preseason projections, once they exist: the player's Sleeper season-long line, scored with the league's scoring, per game (÷ 17) × next season's regular-season weeks. Grading at a draft uses the newest pull before draft day (the 2026 keepers are graded on the 2026 preseason projections the Draft Desk used; that file was loaded after the draft, so its earliest pull stands in for the one before).
  2. Otherwise, the year-ahead estimate from this season: his healthy per-game rate — the average of his weekly projections over only the weeks he was projected to play (a week he was ruled out or on a bye never counts, so an injury at the end of a season is not a zero next year) — × next season's regular-season weeks × an age curve × a second-year adjustment (1.182) for a player coming off his rookie season. The curve is a multiplier by position and age on 1 September of next season:
PositionAge next seasonMultiplierRange (x the talent swing)
QB25 or younger0.6530.941
QB26-290.6091.062
QB30 or older0.5411.176
RB25 or younger0.6931.057
RB26-290.6311.147
RB30 or older0.4811.724
WR25 or younger0.760.871
WR26-290.6560.979
WR30 or older0.5071.14
TE25 or younger0.7840.937
TE26-290.6360.942
TE30 or older0.6191.106
Kany0.7330.896
DEFany0.5251.422

The multipliers are fitted walk-forward on the league's history: from each season's end (2018 to 2024), predict each player's points the next season, and fit, by least squares, the multiple of his healthy rate that best predicts it. They sit below 1 because a full healthy season is a ceiling: players miss games, and the best seasons regress.

Replacement is the same projections' replacement level (the player ranked just past the league's starters at his position), so PAR = projected points − replacement. A player with no provider id link (usually a new rookie) has no model value; the page counts them, and each one is a Needs you item to link.

Range. Each value carries a year-ahead standard deviation: the one model's season-long talent swing (56% of a projection) × his projection, scaled for an estimate by the right-hand column above (the fit's own misses for that position and age band, as a multiple of that swing). The board shows value ± one standard deviation, and when two sets of keepers have the same total surplus the suggestion takes the one with the smaller combined range.

Validation. Walk-forward over 2019–2025 (each season predicted with knobs fitted only on the seasons before it), scored on keeper-eligible players against what they did the next season: the estimate replaced the old stand-in (this season's current per-game projection over a full season) only because it beat it on both the error of next-season PAR and rank correlation. The admin Model room shows the scorecard.

Once the commissioner locks declarations, each team's declared keepers' surplus is added up (a team keeping nobody has 0) and compared with the league's other teams that season as a z-score: (team total − league average) ÷ the standard deviation. The letter is the first cutoff reached: A at a z of 1 or above, B at 0.35, C at -0.35, D at -1, and F below that. When every team's total is the same, everyone gets a C. The model run is the newest one as of the lock, so the grades do not change afterwards. A season whose keepers were declared on Yahoo rather than on this site is graded the same way from its draft's keeper slots (the slot's round is the keeper's round), with the year-ahead projection as of the draft day; the Keeper Center says "graded from the draft's keepers" and shows each keeper's surplus over his round. A season the model never ran for before that draft is shown without grades.

These grades are about the decision, on the information at the time. Keeper surplus (above) is the other half: what the keeper actually returned once the season was played.

The suggested keepers on the board use the same numbers: for each team, the legal set of keepers (at most the league's maximum, clashes stacked into earlier rounds as the rules require) with the largest total surplus.

Keeper tracker

The keeper tracker follows every keeper a season's draft slotted, while the season is played. PAR so far is his regular-season points to date minus the replacement level for the weeks played. Projected full-season PAR adds the model's projected points for the rest of the regular season, minus the replacement level for those weeks. The round's typical value is what his round usually buys, as in the keeper grades (the median PAR of that round's non-keeper picks over recent seasons), so the tracker's surplus is surplus over his round, not the keeper surplus above. Surplus so far = PAR so far − the round's value times the share of the regular season played; projected full-season surplus = projected full-season PAR − the round's value, and the tracker is sorted by it. Once the regular season is over nothing is left to project, so the tracker is the final result.

Waivers and trades

Both count started PAR: for each regular-season week the player was in the starting lineup, his points − the weekly replacement level. Benched weeks count nothing.

  • A waiver pickup adds up started PAR from the pickup until the player leaves the roster. Bench, IR and playoff weeks add nothing, so a pickup who never started is worth zero; the rostered points beside it count the whole stint.
  • A trade adds up each side's started PAR from the trade to the end of the regular season, while the players stay on the receiving roster. The side with more wins the trade; within 10 points it is called even. A trade in the season under way is provisional.
  • A trade also shows each side's change in keeper value: the model keeper surplus (never below zero) of the players it received minus those it sent, priced by the model as of the trade.
  • Career trades and pickups (All-time): trades won, lost and even, net started PAR (received minus sent), and the started PAR of every scored pickup, summed over every season, the one under way included.

Full season attribution

A team's wins above an average team (wins − games ÷ 2) split into parts that add up exactly:

wins above .500 = QB + RB + WR + TE + K + DEF + lineup decisions + luck
  • Position groups: each week, the points of the team's best lineup at that position minus the league average.
  • Lineup decisions: −(the team's bench loss − the league-average bench loss).
  • Luck: actual wins − expected wins.

Each week's points are turned into wins with the same all-play replay as expected wins and shared among the parts so they add up. Weeks without complete lineups for the whole league are left as a residual. The champion's version is the Title Anatomy. Career attribution (All-time) sums each part over every season an owner played.

Season rollups, money and awards

Each team-season has one summary row (record, points, Score+, finish, the luck family, efficiency, consistency, clutch, attribution and money), and each owner a career row: titles, playoff appearances and their rates, perfect weeks and peak Elo. The career row also carries the owner page's career numbers: the Opponent Team trio (each season weighted by its games, over the seasons with a Schedule Strength, so Opponent Score+ = Schedule Strength + Opponent Luck still holds), boom and bust rates over every regular-season week, lineup efficiency weighted by solved weeks, and luck as wins above expected summed over every season.

Money. Payouts go to the champion, the runner-up, third place and the regular-season winner, with the amounts in that season's settings. Every team pays the season's buy-in. Net winnings = payouts − buy-ins, ROI = net ÷ paid in and cost per title = paid in ÷ titles. A league that pays a weekly high prize pays it each completed regular-season week to the highest-scoring team (a tie splits it; playoff weeks never pay), so an unfinished season's total grows week by week.

Awards, each completed season: champion, regular-season winner, luckiest and unluckiest, steadiest and wildest, most clutch, worst benching, best hidden gem, best trade and best waiver pickup. A tie goes to the lower team id.

Season simulation

One model (WALKTHROUGH 5.1–5.6). Everything that predicts — game odds, playoff/title/seed odds, magic numbers, the Ribbons history, projected strength, remaining schedule, keeper value — reads one brain run: for every player and remaining week, his expected points in this league's scoring, his own spread, and how he moves with others. The champion is the simple brain (model/simple.py); a factor-model challenger runs in shadow and replaces it only if it wins on accuracy and calibration.

* Expected points: the player's Sleeper projected stat line for the week, scored with the league's own scoring settings; a week with no line yet uses his latest weekly line, but in a week whose lines are out a player without one is not projected to play (0); a bye has none; Out on the week's injury report projects 0, Doubtful 0.35 of the line. * Spread: his own week-to-week spread of points in this league's scoring over this season and the two before, weighted 3/2/1, shrunk toward his position's typical spread at his projected points as if the position contributed 6 games (rookies get the position's). Team defenses use the league's own Yahoo defense scores. * Co-movement: shares of each player's variance ride on his team's offense that week, his game's environment (both offenses up, both defenses down), a QB with each of his top 3 receivers, and a handcuff between a team's depth-chart RB1 (up) and RB2 (down). A defense moves against the opposing offense. * Season-long swing: weekly draws alone forget that a player's level itself can turn out different (talent, injuries that last, new roles). So each simulated season draws one talent shock per player that carries through all his weeks: his expected points h weeks after the run's first week are scaled by 1 + 25% × √h × a standard normal draw (none in the run's own week). The swing stops growing 5 weeks ahead, so a full season ahead is about 56% of his projection either way.

The simulator (model/season_sim.py) runs N = 10,000 seeded seasons (seed 20260923; the same data gives the same numbers). Rosters are the freshest known at the run: a team's live roster capture when it was taken after the last completed week, otherwise the last captured week (before week 1, the draft) plus every add, drop and trade dated before the run's day. Lineups: a player whose game has already kicked off plays in the slot his manager locked him into; every other slot takes the best projected legal lineup, where a player ruled out (Out, or no projection that week) projects 0 and the next best fills in; a slot still empty (a bye or an injury with nobody behind it) takes the best projected free agent, as a manager would pick one up. Roster turnover: each week ahead, 6% of the gap between a team's projected lineup and the league's average lineup closes, as injuries, waivers and trades reshape rosters. Each starter's score is drawn from the brain, floored at 0 (−4 for a defense). A starter whose game is final instead contributes his captured Yahoo points exactly, including zero or negative points, with no uncertainty or floor. A finished bench player stays on the bench, and a free agent whose game started cannot fill a slot. These actuals apply only to this week; future weeks keep their projections. Sunday and Monday captures include every team's current-week page. A player shown as not started keeps his projection even when the upload or refresh happens after kickoff. Scores reflect the saved pages until a new capture arrives; the refresh timestamp is when the forecast ran, not a live score update. “Scores uploaded” is the receipt time; a saved page may be older. Missing team pages, unknown or in-progress starter game states, or missing points for a final starter hold the previous dated forecast. Only captures known at the run's time are used.

The remaining schedule is played (a week with no pairing on file gets a seeded random one); standings use the league's tiebreak order; the top seeds take any byes; a tied playoff game goes to the better seed. Outputs: the week's game odds, playoff, title and seed odds, projected final record, magic numbers (below), stakes (playoff odds if a team wins vs loses this week), a rooting guide (which other game moves a team's odds most), the remaining schedule as projected Opponent Score+, and the projected strength the power ranking uses. The Ribbons chart preserves one official checkpoint per completed week: the first complete calculation saved before the next week's kickoff. Every required matchup and team page must be complete. Later live updates and stat corrections do not replace that point. Week 0 is preseason; the last checkpoint records known playoff/title outcomes. Missing checkpoints remain gaps. The table and chart identify reconstructed and legacy records separately from original official forecasts. Each new checkpoint retains its exact simulation inputs, code fingerprint and seed for replay without later roster, rule or result changes. Past seasons from 2018 (Sleeper's first) are rebuilt week by week with each week's first kickoff as the cutoff (moves dated that day are left out, since they may have come after it); Sleeper's historical lines were saved after the games, so those reconstructed predictions are approximate. Verified evidence requires an original forecast saved before kickoff, regardless of its season. Seasons before 2018 have no predictions.

Magic numbers are exact, not simulated. A team's magic number is the fewest of its remaining games it must win to be sure of a playoff spot whatever else happens: with those wins, no combination of results in the other remaining games (on the real schedule) lets enough rivals finish level with it or ahead. Future points are unknown, so a tie on record counts against the team. Clinched = magic number 0. Eliminated = no combination of results gets it in, even winning out (here a tie on record counts for it). No magic number is shown when winning out would still leave it needing help, when it is eliminated, or while part of the remaining schedule is not on file.

Draft Desk

One engine (WALKTHROUGH 9.2–9.6) runs in the browser on the league's scenario bank: the season simulation's brain, drawn 200 times per player before the draft. It makes no player predictions of its own.

* Pick ownership. Each captured overall pick belongs to its Yahoo team, including first-round trades. Every league team remains available to select, and the simulation keeps every player from extra picks. Without a current capture, the previous season's teams provide a labelled provisional snake order; previous trades are not carried over. * The pick table. For each candidate, the rest of the draft is played many times (continuations): he goes to you now, the other managers pick by the opponent model (ADP, roster need and each owner's habits from the league's past drafts), and your later picks follow a simple default policy (best value over replacement at a position you can still use). Each continuation plays a block of 50 bank scenarios through the season with the season simulation's rules. Title, Playoffs and Wins are your odds and expected regular-season wins if you take him; each Δ is against the best other candidate. Every candidate sees the same draws, so the Δs are paired. * Tier groups candidates the continuations cannot yet tell apart: a candidate joins a group while his title-odds gap to its first player is within 1.96 standard errors (the ± shown). Stable means the top group has not changed for three updates after at least 64 continuations. * Avail. next is the chance he is still there at your next pick (the opponent model, played 400 times). Gone by is the expected number taken at each position before then. vs ADP is the pick minus his ADP; Risk is the spread (sd) of your regular-season wins. * Keeper value (keeper leagues): his value over replacement minus a typical pick's in the round he would cost next year. * A drafted player the bank does not have (not in bank, mostly rookies) fills a roster spot and scores 0. He is shown by the name Yahoo's player list gives him, when the pre-draft capture has it. * Mocks. A practice draft uses the same table against model opponents; the draft simulator plays whole drafts with the default policy in your seat. The debrief compares each of your picks with the table's best and your final title odds with the default policy's over 100 drafts. Nothing from a mock is stored.

Forecast accuracy

How good are the forecasts? (WALKTHROUGH 5.6; model/validate.py, job model-validate, re-run after captures and at each season end.) Player projections use each player's own kickoff. Model forecasts use the run saved before the week's first kickoff; historical reconstructions are reported separately. A rostered player's actual points are his Yahoo points; the model's wider player pool uses nflverse stat lines scored with this league's settings.

  • Player projections: each rostered player's last live Sleeper snapshot saved strictly before his own NFL kickoff, scored with this league's settings, against his final Yahoo points (starters and bench). Thursday, Sunday and Monday players have separate deadlines. Average absolute miss (MAE) and root mean squared error (RMSE) measure the difference in points. Missing projections or actuals are omitted, not treated as zero. A player with only historical imports uses the earliest imported snapshot and is reported as backfilled; later live postgame updates cannot replace it.
  • Final-lineup projection: add the archived pregame expectations of the players in the final fantasy starting slots. Bench projections are retained for accuracy and keeper analysis but excluded from this total. A starter with zero or negative points, or who never took an NFL snap, still counts. Missing projections leave the team total unknown; the page shows how many starters have projections and how many were backfilled. This is a benchmark assembled for the final lineup, not a team forecast published at one instant. Original published matchup odds are kept separately.
  • Game odds: the win probability the site showed for each game, against who won. The Brier score is the average squared miss (0 is perfect; a coin flip, always 50%, scores 0.25); log loss punishes confident misses harder. Two yardsticks on the same games: the coin flip and the favourite by record (Bill James's log5 on the two records so far, each padded with one win and one loss). Calibration: games are grouped by the favourite's probability (50–60%, 60–70%, …) and each group's average forecast is set against how often its favourites actually won; a well-calibrated forecast sits on the diagonal.
  • Season odds: preseason (before week 1) and midseason playoff and title odds against who made the playoffs and who won, as Brier scores, next to "everyone equal" (playoff spots ÷ teams; 1 ÷ teams).
  • Week-opening model accuracy and ranges (the commissioner's scorecard): the MAE and RMSE of expected points for players and for team totals, and whether the stated ranges held — the bias statistic (the spread of misses measured in forecast standard deviations; 1 is right, above 1 means the ranges were too narrow) and how often the outcome fell inside the 80% range (about 10% should fall below it and 10% above).
  • Evidence. Verified pregame captures are reported separately from backfilled or unverified history. A later download can preserve a useful historical projection without proving it was available before play. A season can contain both kinds. Model forecasts must have been saved before the week's kickoff using only then-known inputs; reconstructed forecasts remain approximate. A later reconstruction never displaces an original verified forecast when grading published matchup odds.
  • Champion and challenger. The factor-model challenger replaces the simple brain only if, over the latest four complete seasons and the three before them, it is at least as accurate on team totals, has a team bias statistic closer to 1, and has a lower Brier score on game odds.

Record Watch

The record is the most regular-season points in any completed season before this one. After each week the chaser is this season's points leader. A chase is live once at least 4 weeks are played, weeks are still to play, and the chaser's points are at least 85% of the record's through the same week. Each week also gives the pace finish (points per week so far × the season's weeks) and the season model's projected finish.

Manager DNA

Five traits describe how each owner wins, each as a percentile against the league's owners (100 = best in the league, 0 = worst; owners level with each other share the middle):

percentile = 100 × (owners below + half the owners level) ÷ (owners compared − 1)

  • Drafting: total hidden-gem score of the owner's draft picks per season (see Hidden gems), averaged over seasons.
  • Trading: net started points above replacement from trades (what the owner received minus what the other side received; see Waivers and trades), per completed season.
  • Lineup setting: mean lineup efficiency and the perfect-week rate (see Efficiency); the percentile is the average of the two percentiles.
  • Luck: wins above expected wins per season (see Luck).
  • Clutch: playoff Score+ minus regular-season Score+ (see Clutch).

Career traits use completed seasons only. An owner needs at least 2 completed seasons (and that many drafts, seasons with lineups and seasons with luck for those traits), at least one trade for Trading and at least one playoff week for Clutch; otherwise the trait is left blank rather than set to the middle. Each season also has its own DNA, ranked among that season's teams.

Rivalries

Every pair of owners who have met has one all-time series. The regular season and the postseason (every game after the regular season, bracket and placement games alike) are counted apart; a playoff meeting is a postseason game between two teams that both made the playoffs. Streaks run over every meeting in date order, and a tie ends a streak.

Best rivalries ranks the pairs by

rivalry score = meetings − |wins apart| + playoff meetings

so a long, even series ranks high, a lopsided one low, and each playoff meeting counts once more. A tie goes to the closer series, then the longer one.

Matchups

Every game has a matchup page. A played week shows what happened, the same way in every season: both lineups as Yahoo recorded them (starters, then the bench), each player's points, and for each side

  • bench points: the points of every player left on the bench (IR excluded);
  • optimal lineup and left on bench: the best legal lineup from the same roster, judged with hindsight, and how far the real lineup fell short of it (the bench loss under Efficiency; blank for a week with an unresolved player).

The title leads with one fact from those numbers, the first that applies: a tie; the loser left more on the bench than the margin (his own best lineup would have won); the winner's starting position group that outscored the loser's same group by the most; otherwise the margin.

The current or upcoming week shows the one model's newest run (see Season simulation): win odds, each side's projected score, the stakes (playoff odds with a win and with a loss), and each team's projected lineup as the simulator plays it (locked slots as set, then the best projected lineup, free agents in any hole), with each player's projected points and his ± spread (one standard deviation, his own swing plus what he shares with teammates and the game). The key player is each side's starter with the largest spread. Only the newest run's lineups are kept, so a finished week never shows a projection.

Settings in use

Every knob, the value this page was generated with, and its default. The commissioner changes them in admin.

FamilySettingIn useDefault
Score+Score+ average100100
Score+Score+ points per standard deviation1515
Expected winsAll-play tie weight0.50.5
LuckRobbed/gifted cutoff33
EloElo starting rating15001500
EloElo K3232
EloElo margin divisor1010
EloElo margin cap22
EloElo logistic divisor400400
EloElo off-season regression1/31/3
EloElo rating for a new owner15001500
Power rankingsPower: recent form weight0.40.4
Power rankingsPower: season weight0.20.2
Power rankingsPower: projection weight0.40.4
Power rankingsPower: recent form weeks44
Power rankingsPower: event threshold0.150.15
Consistency and lineupsFloor percentile0.20.2
Consistency and lineupsCeiling percentile0.80.8
Consistency and lineupsTeam boom cutoff115115
Consistency and lineupsTeam bust cutoff8585
Consistency and lineupsPlayer boom ratio1.51.5
Consistency and lineupsPlayer bust ratio0.50.5
Consistency and lineupsWorst benchings kept5050
Draft and keeper valueHidden gem window00
TradesTrade even margin1010
Keeper gradesKeeper grade A cutoff11
Keeper gradesKeeper grade B cutoff0.350.35
Keeper gradesKeeper grade C cutoff-0.35-0.35
Keeper gradesKeeper grade D cutoff-1-1
The one model (simulation)Simulations per season1000010000
The one model (simulation)Simulation seed2026092320260923
The one model (simulation)Draft Desk scenarios200200
The one model (simulation)Draft Desk pool depth22
The one model (simulation)Draftable pool cutoff44
The one model (simulation)Swing history: this season weight33
The one model (simulation)Swing history: last season weight22
The one model (simulation)Swing history: older weight11
The one model (simulation)Swing shrink games66
The one model (simulation)Position spread minimum games66
The one model (simulation)Doubtful share0.350.35
The one model (simulation)Team offense: QB share0.0950.095
The one model (simulation)Team offense: RB share0.0150.015
The one model (simulation)Team offense: WR share0.010.01
The one model (simulation)Team offense: TE share0.0050.005
The one model (simulation)Team offense: K share0.1050.105
The one model (simulation)Game environment: QB share0.250.25
The one model (simulation)Game environment: skill share0.0150.015
The one model (simulation)Game environment: K share00
The one model (simulation)Defense vs opponent0.80.8
The one model (simulation)Defense vs game0.020.02
The one model (simulation)QB-receiver pair: QB share0.5550.555
The one model (simulation)QB-receiver pair: receiver share0.2250.225
The one model (simulation)QB-receiver pairs33
The one model (simulation)Handcuff: starter share0.0550.055
The one model (simulation)Handcuff: backup share0.30.3
The one model (simulation)Keeper value history33
The one model (simulation)Season-long talent swing0.250.25
The one model (simulation)Season-long swing horizon55
The one model (simulation)Roster turnover0.060.06
The one model (simulation)Year ahead: QB young0.6530.653
The one model (simulation)Year ahead: QB prime0.6090.609
The one model (simulation)Year ahead: QB veteran0.5410.541
The one model (simulation)Year ahead: RB young0.6930.693
The one model (simulation)Year ahead: RB prime0.6310.631
The one model (simulation)Year ahead: RB veteran0.4810.481
The one model (simulation)Year ahead: WR young0.760.76
The one model (simulation)Year ahead: WR prime0.6560.656
The one model (simulation)Year ahead: WR veteran0.5070.507
The one model (simulation)Year ahead: TE young0.7840.784
The one model (simulation)Year ahead: TE prime0.6360.636
The one model (simulation)Year ahead: TE veteran0.6190.619
The one model (simulation)Year ahead: K0.7330.733
The one model (simulation)Year ahead: DEF0.5250.525
The one model (simulation)Year ahead: second year1.1821.182
The one model (simulation)Year-ahead range: QB young0.9410.941
The one model (simulation)Year-ahead range: QB prime1.0621.062
The one model (simulation)Year-ahead range: QB veteran1.1761.176
The one model (simulation)Year-ahead range: RB young1.0571.057
The one model (simulation)Year-ahead range: RB prime1.1471.147
The one model (simulation)Year-ahead range: RB veteran1.7241.724
The one model (simulation)Year-ahead range: WR young0.8710.871
The one model (simulation)Year-ahead range: WR prime0.9790.979
The one model (simulation)Year-ahead range: WR veteran1.141.14
The one model (simulation)Year-ahead range: TE young0.9370.937
The one model (simulation)Year-ahead range: TE prime0.9420.942
The one model (simulation)Year-ahead range: TE veteran1.1061.106
The one model (simulation)Year-ahead range: K0.8960.896
The one model (simulation)Year-ahead range: DEF1.4221.422
The factor model (challenger, shadow only)Usage half-life44
The factor model (challenger, shadow only)Team context half-life66
The factor model (challenger, shadow only)Size half-life66
The factor model (challenger, shadow only)Factor covariance half-life5252
The factor model (challenger, shadow only)Factor covariance shrinkage0.30.3
The factor model (challenger, shadow only)Co-movement half-life104104
The factor model (challenger, shadow only)Own swing half-life1616
The factor model (challenger, shadow only)Own swing prior88
The factor model (challenger, shadow only)Exposure clip44
The factor model (challenger, shadow only)Team offense factors33
The factor model (challenger, shadow only)Game environment factors11
The factor model (challenger, shadow only)Game script factors11
The factor model (challenger, shadow only)Largest shared share0.90.9
The factor model (challenger, shadow only)Factor analysis rounds3030
The factor model (challenger, shadow only)Smallest stored loading0.0050.005
Record WatchRecord Watch chase threshold0.850.85
Record WatchRecord Watch minimum weeks44
Manager DNAManager DNA minimum seasons22
Schedule luckSchedule luck samples4000040000
PressurePressure minimum weeks66
Capture checksnflverse check margin0.50.5
Capture checksUnmatched player weeks33
Capture checksJob failures before Needs you33