Whitepaper · v3.1

The Trade Machine

A fantasy-football trade analyzer that is more data-driven, more league-specific, and more honest than anything on the market. It answers the three questions no competitor answers together: is this good for my team, in my league; will they actually say yes; and what should I do instead. And it shows its work all the way down.

Two planesData architecture Seven layersThe Brain Δ Championship oddsThe unit of value ExplainableEvery number traced
0%
Median scoring error, self-calibrated on 3,401 real player-weeks
5,000
Monte-Carlo season sims per evaluation, common-random-number paired
2.6M+
Real trades behind the market-value layer
±100
Self-calibrating verdict, anchored to this league's own trade landscape
01The market gap

Every calculator treats value as a vacuum. Real trades don't happen in one.

The #1 complaint across every trade tool is "calculator as gospel", context-blind vacuum values that block good trades and greenlight bad ones. We surveyed the 2025-26 landscape (FantasyPros, KeepTradeCut, FantasyCalc, Sleeper, ESPN×IBM watsonx, and a long tail of AI wrappers) and found a wide band of white space no shipped product occupies:

🎯

Your actual wire

True league-specific replacement level, value over your waiver pool and starting requirements, not a generic "12-team half-PPR."

📈

Playoff-odds impact

"This moves your title odds 14%→22% and theirs 8%→11%." Nobody simulates the rest of the season to price a trade.

🤝

Will they say yes?

A behavioral acceptance model built from that league's real transaction history. No competitor models the counterparty at all.

🌊

Stream, don't trade

"You can replace this TE production for free off waivers." Feasibility is part of the verdict.

📬

Your actual inbox

We can read the pending Yahoo offer sitting in front of you and answer before you ask, the only source of real rejected-offer ground truth.

🧾

A public track record

Every verdict is graded retroactively against what actually happened. The only tool a skeptic believes is one that grades itself.

02What it answers

Three questions, answered together for the first time.

Is it good for me?

Value is computed against your real roster, your league's every scoring modifier (not a PPR toggle), your exact starting requirements (superflex, 3-WR, TE-premium, all derived, never hardcoded), your waiver wire, and the remaining schedule. Expressed, ultimately, as change in playoff and championship odds.

Will they accept?

A calibrated acceptance model from that league's real trade history, draft history, rivalry records, and each manager's revealed preferences, trade frequency, positional biases, player loyalty, contention state, and loss aversion.

What should I do instead?

Generated, ranked, mutually-beneficial packages across the whole league, sorted by (your equity gain × probability of acceptance), with waiver alternatives surfaced first when they're good enough.

Positioning

Every number is of this league, decomposed, explained, and bounded with uncertainty.

The opposite of calculator-as-gospel. A lopsided-in-your-favor trade shows high value and low acceptance, and the interface makes that tension the story: "great for you; unlikely to land, here's what they'd plausibly take."

03Data architecture

Two planes. Raw facts stored once; league value computed per league.

This is what makes "millions of leagues" affordable. One global store of NFL facts serves every league; league-scored points, replacement levels, and verdicts are per-league materializations, computed lazily and recomputable from the global plane at any time.

Plane G · Global

NFL & market facts

Facts that don't depend on any league, stored once, total, regardless of whether one or a million leagues exist.

raw stat linesprojections expected points (xFP)usage / snaps schedules + Vegasinjuries market valuesID map
Plane L · League

Per-league materializations

Everything downstream of a league's settings and membership, evictable, recomputable, keyed by league.

league-scored pointsreplacement levels transactionsmanager profiles sim resultspending offers evaluations

↑ the bridge between planes is the league scoring engine ↑

04The scoring engine

The bridge, and it self-calibrates against Yahoo's own numbers.

Every league scores differently, passing yards per point, TE-premium receptions, D-line detail, first-down bonuses. The engine derives all of it from the league's own settings and scores both real stat lines and projections through the same map. No hardcoded constants, anywhere.

// canonical stat line × this league's scoring map, per player-week league_points(player, week) = Σ stats[s] × scoring_map[s] + bonuses(league, stats)

The critical safeguard is a self-calibration loop: wherever Yahoo also reported official points, we compare. If the median error exceeds 2% over a sample, the league is flagged and we prefer Yahoo's numbers while the mismatch stands, catching unmapped stats or bonus shapes without ever silently computing on wrong values.

Validated on real data

0% median error across 3,401 player-weeks of a real 8-season league.

The canonical-stat decode and scoring engine reproduce Yahoo's official scoring exactly, the foundation everything else is built on.

05The Brain

Seven layers. Each consumes only the data below it.

Value flows up the stack. Any layer functions with the ones above it stubbed, and the degradation ladder (§08) defines exactly what happens when a data source is missing, so the analyzer is useful on day one and gets sharper as data arrives.

L1

Projections

Per-player, per-remaining-week μ, σ, floor & ceiling, in league points. Aggregated across sources, decomposed into volume (sticky) vs. efficiency (regressed) via expected points, with a persistent talent term and empirical distribution shapes.

L2

Replacement & VOR

League-derived baselines. Superflex QB scarcity emerges from the flex allocation, no is_2qb flag. Single-starter positions price the best weekly stream, which is what makes "add, don't trade" quantitatively honest.

L3

Roster value

The optimal starting lineup by exact max-weight matching (greedy is forbidden, it breaks on flex interactions), plus bench, bye-coverage, and a full roster-legality guard.

L4

Simulation, the primary currency

A Monte-Carlo of the rest of the season → playoff and title odds. The trade's value is the change in championship equity, priced with common random numbers so the signal isn't buried in noise.

L5

Market values

Format-matched market prices with convex "four-quarters-≠-a-dollar" package math. When the market and your league's equity disagree, that is the product insight.

L6

Manager behavior

A calibrated acceptance model with real negatives from vanished pending offers, loss aversion, loyalty, contention, luck misperception, rivalry.

L7

Verdict & explanation

Calibration, composition, stability guarantees, and a plain-English decomposition, every sentence carries the number behind it.

06Key ideas

The methods that make it different.

Emergent scarcity

Replacement level is computed by allocating every league starting slot, dedicated and flex, across the whole player pool. In a superflex league, QBs seat into the flex, so the QB baseline gets deeper and QB value explodes on its own. No positional-multiplier table; scarcity lives in the baseline.

Common random numbers

Every stochastic quantity is a pure function of (player, week, sim, channel). A traded player carries his exact draws and injury path with him, so the pre/post-trade sims stay aligned, trading X for X yields Δequity ≡ 0 in every sim. That's what pulls a real signal out of a noisy season.

Convex package math

Four quarters aren't a dollar. A star out-values a bundle of throw-ins because lesser pieces are discounted against the best asset in the deal. So "more raw value given" can still be a win after consolidation, the thing every naive calculator gets backwards.

Prospect-theory acceptance

Fair-by-value offers get rejected; only visible-surplus offers land. The model weights what a manager gives up ~2× what they receive, loss aversion and the endowment effect are the best-documented behavioral facts in this exact domain.

Real rejected-offer signal

A pending offer that vanishes without executing is a true negative, with full asset detail, per manager. Reading the user's Yahoo inbox gives us the industry's only acceptance-model training data with real negatives.

Structure-exact or honestly refused

Two-week playoff rounds, first-round byes, divisions, median games, reseeding, all real Yahoo shapes. We simulate them exactly or fall back to a market verdict and say so. A silently-wrong simulation is the one forbidden outcome.

07Two currencies, never blended

What a trade is worth to you ≠ what makes trades happen.

Currency 1

League value

Δ playoff / championship equity, what the trade is actually worth to your season. Drives recommendation. Computed against your roster, your league, your schedule.

Currency 2

Market value

What managers believe assets are worth, what makes trades happen. Drives acceptance modeling and the fairness read your leaguemates will quote back.

They're kept strictly separate and shown side by side, never averaged into one mystery number. When they diverge, the tool names it: "the market underrates what this does for your lineup; expect the league chat to call this a loss."

08Honest about uncertainty

A defined degradation ladder. Never a placeholder number.

The cardinal sin of prior engines was computing on invented values, age = 27, null usage, schedule = 0. Here, when a source is missing, the confidence badge changes and factors mark themselves unavailable. The verdict is recomputed without them, it never crashes and never silently zeroes.

A
Full
Synced, projections & market fresh, the full equity currency.
B
Building
Stats present but projections stale, equity sim runs on historical PPG + variance.
C
Early season
Under three weeks of stats, a market-weighted estimate with a limited sim.
D
Draft-only
Never stats-synced, market values by format; the first-run surface is your league's graded trade history, a strength, not an apology.
E
Source outage
Any single adapter down, that factor is marked unavailable, the verdict recomputes without it, coverage drops.
F
Unsupported format
A structural setting we can't simulate exactly, market-currency verdicts only, never a silently mis-simulated one.
Confidence badges, value ranges, and a defined ladder, never false precision.
09Validation

Built against a real 8-season league, tested layer by layer.

Correctness isn't asserted; it's demonstrated. Each layer ships with property tests, and the empirical gates run against eight seasons of real league history before anything launches.

T-1Scoring engine vs. Yahoo-reported points0% median
T-2Lineup optimizer ≡ exhaustive searchgreen
T-3Replacement baselines across league formatsgreen
T-5Convex package-math monotonicitygreen
T-6Backtest on real historical tradesphase 2
T-10Season-scale sim calibration (Brier)phase 2
T-11CRN sync, null trade → Δ ≡ 0phase 2
T-8Acceptance calibration & loss-aversion λphase 3
10Roadmap

Shipped in phases, each one ships user-visible value.

Phase 0Shipped

Data foundation

Two-plane schema, global sync jobs, the scoring engine + self-calibration, ID mapping, structural-format gate, transaction backfill. Validated on prod at 0% T-1 error across 3,401 player-weeks.

Phase 1Shipped

Value core

L1, L2, L3 + L5, replacement/VOR & market currencies, the self-calibrating ±100 verdict, config presets, plain-English reasons, and the graded trade ledger. Wired into the app and live on real league data.

Phase 2Shipped

The simulation

The counter-based CRN Monte-Carlo, game-correlation, structure-exact playoffs, equity verdicts and true playoff-odds impact. Built, tested, and speed-tuned (a trade re-simulates only the two teams it touches); calibrating on real games this season.

Phase 3Shipped

Behavior & the Inbox

The acceptance model, manager reads, the pre-analyzed pending-offer Inbox, report cards, and share modes are built, tested, and live.

FinderF1+F2 live

The Trade Finder

The fit-adjusted win-win finder is live: it scans the league for deals that help both sides in your scoring. Negotiation ladders and multi-team search are next.

The through-line

League-specific or nothing. Two currencies, kept separate. Explainable all the way down. Honest about what it doesn't know.

Four principles, held from the schema to the verdict card.

This document describes the product & technical vision of the Offseason Trade Machine (spec v3.1). Phase 0 is complete and validated on production; Phase 1 (the draft-only analyzer) is live; the simulation (Phase 2) is built and tested, calibrating on real history; the behavioral layer is next. Fantasy data provided by Yahoo Fantasy. Market values derived from public trade data. Figures reflect validation against a real multi-season league and are subject to change as calibration continues.