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.
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:
True league-specific replacement level, value over your waiver pool and starting requirements, not a generic "12-team half-PPR."
"This moves your title odds 14%→22% and theirs 8%→11%." Nobody simulates the rest of the season to price a trade.
A behavioral acceptance model built from that league's real transaction history. No competitor models the counterparty at all.
"You can replace this TE production for free off waivers." Feasibility is part of the verdict.
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.
Every verdict is graded retroactively against what actually happened. The only tool a skeptic believes is one that grades itself.
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.
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.
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.
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."
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.
Facts that don't depend on any league, stored once, total, regardless of whether one or a million leagues exist.
Everything downstream of a league's settings and membership, evictable, recomputable, keyed by league.
↑ the bridge between planes is the league scoring engine ↑
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.
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.
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.
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.
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.
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.
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.
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.
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.
A calibrated acceptance model with real negatives from vanished pending offers, loss aversion, loyalty, contention, luck misperception, rivalry.
Calibration, composition, stability guarantees, and a plain-English decomposition, every sentence carries the number behind it.
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.
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.
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.
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.
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.
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.
Δ playoff / championship equity, what the trade is actually worth to your season. Drives recommendation. Computed against your roster, your league, your schedule.
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."
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.
Confidence badges, value ranges, and a defined ladder, never false precision.
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.
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.
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.
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.
The acceptance model, manager reads, the pre-analyzed pending-offer Inbox, report cards, and share modes are built, tested, and live.
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.
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.