How the Trade Finder ranks suggestions
Mutual SLEP gain, fairness gap, package penalty, partner propensity. The full scoring model.
The Trade Finder doesn't return every legal trade. That's noise. It returns the trades both sides actually benefit from. Here's the math.
Step 1: Per-team starting-lineup expected points
For each team we greedy-fill the league's roster slots (QB / RB / WR / TE / FLEX / SUPERFLEX / K / DST) with the highest FFP-projected player on the roster. Sum = SLEP.
Step 2: Position surplus / need
Per position, position_strength = sum(top_K_at_pos) − league_median(top_K_at_pos). Positive = surplus (tradeable). Negative = need (target).
Step 3: Candidate generation
For your team and each potential partner, enumerate 1-for-1, 2-for-1, and 2-for-2 packages where you have surplus at their need and they have surplus at yours. Capped at top-8 surplus assets per side to keep search bounded.
Step 4: Scoring
score = ΔSLEP_user + ΔSLEP_partner − α · |ΔSLEP_user − ΔSLEP_partner| − β · packagePenalty
Filters to min_mutual_gain > 0.5 AND |gap| < 100 FFP. Then we multiply by partner trade propensity (from the manager grader) so high- trading GMs surface first.
Why this beats raw "trade value"
Most trade calculators score in points. We score in *mutual lineup gain*. A 2-for-1 dumping bench depth into a star RB might look fair on a value calculator but flunks here unless both starting lineups improve.