Show your work.
The Armchair Office doesn't invent player values. It runs its own first-party engine - real crawled Sleeper trades, blended with trailing stats and market ADP - mapped to your league's format (1QB, Superflex, TE premium tiers), and reads every scoring rule Sleeper publishes for that league - not just "PPR" or "3 RB." Bonuses, return yards, big-play thresholds, team defense, and IDP all show up in the league scoring panel and in game-log point math.
How a player number is built
Every value you see is a first-party base (real trades + trailing stats/ADP, refreshed every 6 hours, format-specific) plus optional league adjustments (your roster slots and scoring rules). Player prices come from Sleeper trades, not from anyone's rankings. Draft picks are the one exception: their tiers are anchored to KTC, because picks need a yardstick outside your league - see Step 2.
Stats + ADP baseline
Every player starts with a real prior - trailing-season production rank blended with Sleeper's own global ADP - so even a player with no trade history yet has a grounded number.
Real trades, propagated
Draft picks are the one asset whose relative worth is self-evident (an early 1st > a late 1st > a 2nd). Seeded from real KTC-derived pick tiers, then every crawled Sleeper trade where one side is already priced lets us infer the other - propagating outward across the whole trade graph.
Headline value
The more real trades behind a player, the more the trade-implied price outweighs the stats/ADP prior - a thinly-traded player leans on the prior; a heavily-traded one is priced almost entirely from real market evidence.
League adjustment
Starter slots and scoring rules produce a position fingerprint. Trade math applies a ±12% position tilt and, when your league scores returns, a KR/PR value boost from real production.
What we don't do: invent insider info, write our own player projections, or replace real trade evidence with a black-box number. Projected Finish does give a season-long team outlook, but every number under it is Sleeper's own weekly projection scored to your league's rules - rolled up, not invented. It simulates the rest of the season 1,000 times: games already played count exactly as they finished (from Sleeper's standings), only the remaining weeks and the playoff bracket are simulated, and each starter's week-to-week swing is measured from Sleeper's 2025 projections against what actually happened. It reports playoff, bye and title odds and a win range rather than one confident-looking record. What we do: price your format from Sleeper's own real trades and production, and surface how much evidence backs each number.
Built from real trades, not a single oracle
Our own first-party engine computes 1QB, Superflex, and TE premium format tabs from real crawled Sleeper trades and trailing stats/ADP, refreshed every 6 hours. Trade evidence is collected per format - a player's 1QB and Superflex trade-implied prices come from separate trade graphs, not one number scaled by a multiplier. The stats/ADP prior underneath is the one place a conversion happens: the 1QB prior is derived from the SF prior through the measured ratio curve above. A flat per-position scalar used to do that job and it was wrong in both tails - it pinned elite RB and WR at the 9,999 ceiling, erasing the ordering at the top of the 1QB board, and left mid-tier QBs well below the market.
Real trade evidence is the whole point: the more trades behind a price, the more confidence backs it. The Market page highlights where our real-trade price and public consensus (KTC, FantasyCalc, DynastyProcess, and others) disagree most - that's signal, not noise to hide.
This week's matchup, not just dynasty value
Start/sit swap suggestions use Sleeper's own weekly point projections and NFL schedule (opponent, home/away) when real current-week data is available, falling back to dynasty trade value the rest of the time (e.g. deep offseason, before that week's projections are published). The schedule moved from ESPN to Sleeper on 2026-09-03: ESPN's public scoreboard returns 403 to a Cloudflare Worker, so it had silently never populated, and Sleeper returns the whole season in one request.
We don't run our own projections or invent a number - Sleeper publishes raw stat projections (targets, rush yards, TE bonus receptions, etc.), and we score them against your specific league's real scoring rules, the same way we score real game logs. Not one generic PPR number every league gets regardless of its actual settings.
Your league's rules, not a template
Values use format tabs (1QB / SF and TE premium tiers) from our own first-party trade + stats/ADP engine, refreshed every 6 hours. Separately, each league loads all non-zero point rules from Sleeper - reception scoring, position bonuses, yardage bonuses, kick and punt returns, fumbles, kicking, team defense tiers, and IDP where applicable.
Starter slots (2 vs 3 RB, 2 TE, Superflex, IDP positions) are part of the profile. Trade-value scalers already nudge RB/WR/TE/QB values in Trade Calc, waivers, and suggestions based on that fingerprint. Game logs and fantasy points use your league's full scoring_settings object.
The 1.03 isn't the 1.10
Draft picks are valued at the slot level when the league's draft order is known. A 2026 1.03 and a 2026 1.10 aren't the same asset, and treating them as a generic "first-round pick" leaves money on the table. Round-level anchors are fit against real KeepTradeCut pick data, not hand-picked constants.
Rookie classes carry through the chain of league history so future picks reflect the expected class strength as the dynasty community is currently perceiving it, not a flat historical average.
Next year's first-round order follows how most leagues actually run it: teams projected to make the playoffs pick by projected finish (the champion picks last), and everyone else by lowest Max PF first. Once the title game is played and Sleeper sets the order, Sleeper's order wins.
How often a draft slot turns into a starter
The Drafts page shows, for every QB, RB, WR and TE drafted from 2015 to 2023, how often each position and round finished top 12, top 24 or top 36 at its position (season PPR total, regular season) within the player's first three seasons, and which season the hit first came. 2023 is the last class with three full seasons behind it; groups under 15 players are marked as small samples.
Data: nflverse draft picks and season stats, used under CC-BY 4.0.
Curated feeds, no content farms
Player news pulls from a curated set of professional feeds - ESPN, RotoBaller, NBC Pro Football Talk, CBS Sports, Yahoo NFL, RotoWire - filtered to your actual rosters and refreshed continuously.
No clickbait blogs. No anonymous content aggregators. No fake-trending players juiced by add/drop bots. The signal-to-noise ratio is the whole point of the news layer.
Sleeper is the source of truth
Roster data, trade history, draft results, league settings, transactions, and league chains all come directly from Sleeper's public API - the same source the Sleeper app uses.
The Armchair Office is strictly read-only. Nothing you see here changes anything on your actual leagues. You can't accidentally propose a trade or drop a player by clicking the wrong thing.
Every 6 hours for values, live for state
Our first-party engine refreshes every 6 hours (00:30, 06:30, 12:30 and 18:30 UTC) across eight format keys including TE premium tiers. League state - rosters, trades, transactions - pulls live each session from Sleeper.
The system is built for the manager who checks in often and expects the data to keep up.
Yes - as a market signal, not the headline
Sleeper startup auctions record winning bid amounts on draft picks (type: auction). We can index those the same way we index completed trades: normalize $ spent to dynasty value units per format (budget, teams, SF/TEP), aggregate across leagues, and show an Auction implied line in the player drawer when sample size is meaningful.
We would not replace the first-party engine's price with one league's auction - budgets ($200 vs $1000), nomination order, and manager tilt make single-league prices noisy. Same rule as everything else here: real evidence stays confidence-weighted, not a single-league override.
Status: feasible with our existing Sleeper crawl + implied-value pipeline; not wired into the first-party engine yet. If your league is auction startup, completed draft results are already on Sleeper - we're building toward surfacing them.
Real trades, not just polls
We index completed Sleeper trades from your leagues and your leaguemates' leagues - about 457,000 trades across more than 32,000 leagues so far. From 1-for-1 swaps and multi-player packages, we infer market prices and propagate them through the trade graph - this isn't a side signal anymore, it's the primary driver of the headline value itself. Package legs split proportionally: a known anchor side prices unknown legs on the other side (remainder after known values).
How much evidence backs a number scales with real trade count - Assets shows a Verified / Moderate / Thin badge per player based on it. Market Radar (under Scouting) highlights the biggest gaps between our real-trade price and public consensus. Confidence comes from trade count, not fake precision.
Live draft room (in-app sidebar during active Sleeper drafts) ranks best available by roster need, flags value vs ADP deltas, and warns when a pick duplicates cross-league exposure or stacks an NFL team you already own heavily.
Your real lineup against the best one
Lineup Sweep compares the lineup you actually set in Sleeper this week with the best lineup by this week's projections, scored to each league's own rules. Players whose game has already been played stay where they are, so it never tells you to start someone who is locked. Because the schedule gives game days rather than kickoff times, games on today's date are flagged rather than guessed at.
The Slate shows every matchup you have this week with live scores and win odds, and updates itself every minute while games are on.
The portfolio view is the wedge
Most dynasty tools treat your leagues as independent problems. The Armchair Office stitches them together - cross-league Assets (exposure), waivers, and trade workflow - while keeping per-league ranks honest (no blended value total across formats).
Your dynasty life is more than the sum of spreadsheets. The product is built around that - without pretending one number captures SF and 1QB in the same bucket.
People, priced the same way players are
The Manager Board reads the managers you play against the way the rest of the site reads players: from what actually happened, not from reputation. Every roster owner in your leagues comes straight from Sleeper, which names them - so inside your own leagues there is no guessing about who owns what.
"Who to send an offer to" is a trade record, not a vibe. Each completed trade is priced with the same engine that prices your roster, and a manager's average result is what ranks them - not their total. Somebody who lost one lopsided trade is not the same as somebody who is down on eleven of them, and averaging is what keeps those apart. Below three scored trades we show the number but attach no label at all, because two trades is a coincidence.
Counting leagues means collapsing seasons first. Sleeper issues a brand-new league id every year and links it to last year's, so a five-year league arrives as five separate leagues. We follow those links and count the lineage once - the difference is not cosmetic: 99 league-seasons on a real account collapsed to 73 actual leagues.
Signup dates are exact, not estimated. A Sleeper user id has its creation time encoded inside it, so "joined Sleeper in March 2019" is read from the id itself rather than inferred from the oldest league we happen to have crawled.
What we don't claim
We don't run our own crystal ball. We don't have insider information. We don't predict specific game outcomes or guarantee a winning trade. Anyone who tells you they do is selling something.
What we do is give you the cleanest possible view of the dynasty community's collective intelligence, mapped to your specific leagues, with the math on display.
And we don't accuse anyone of anything. The Investigator can point out that two accounts in your league were created seconds apart, or hold teams in the same league, or have near-identical handles - and it only says so when at least two of those line up at once. Those are facts, not findings. Two friends who signed up together at a draft look exactly like one person with two phones, and the difference is something your commissioner knows and we never will. There is no cheating score and no badge, on purpose: we hand you the dates and let you decide.