How we calculate

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.

Share this

How a player number is built

Every value you see is a first-party base (real trades + trailing stats/ADP, refreshed every 3 hours, format-specific) plus optional league adjustments (your roster slots and scoring rules). No borrowed rankings — just Sleeper's own real trade data and production.

Step 1 · Prior

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.

Step 2 · Trade graph

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.

Step 3 · Confidence blend

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.

Step 4 · Your league

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.

prior = blend(trailing-stats rank value, ADP rank value) tradeConfidence = min(1, n_trades / 12) — more real trades, more weight on trade price over the prior headlineValue = blend(prior, trade-implied price, weight = tradeConfidence) 1QB shift = SF value × real market ratio (RB 1.223× · WR 1.211× · TE 1.186× · QB 0.729×) — not the same number in both formats leagueValue = round(headlineValue × positionScaler) + returnBoost positionScaler = clamp(0.88 … 1.12) from RB/WR/TE/QB emphasis vs 12-team baseline pick value = round-tier anchor from real KTC pick data  |  bucket × slot multiplier (1.01 ≠ 1.10)

What we don't do: invent insider info, run season-long fantasy projections, or replace real trade evidence with a black-box number. What we do: price your format from Sleeper's own real trades and production, and surface how much evidence backs each number.

Player Values

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 3 hours. Every format is computed independently — a player's 1QB and Superflex numbers come from separate trade graphs, not one number scaled by a multiplier.

Real trade evidence is the whole point: the more trades behind a price, the more confidence backs it. Market Radar highlights where our real-trade price and public consensus (KTC, FantasyCalc, DynastyProcess, and others) disagree most — that's signal, not noise to hide.

Weekly Start/Sit

This week's matchup, not just dynasty value

Start/sit swap suggestions use Sleeper's own weekly point projections and ESPN's 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).

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.

Format & Scoring

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 3 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.

Picks and Rookies

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.

News and Signals

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.

Roster and League Truth

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.

Refresh and Freshness

Every 3 hours for values, live for state

Our first-party engine refreshes every 3 hours 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.

Startup auctions

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.

Trade-implied values

Real trades, not just polls

We index completed Sleeper trades from your leagues and your leaguemates' leagues. 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 — My Assets shows a Verified / Moderate / Thin badge per player based on it. Market Radar on All Leagues 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.

Cross-League Composition

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.

Honest Limits

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.