Skip to content

analyze_trade

Evaluate a trade offer by comparing the net category impact of the players you're giving vs receiving.

What it does

analyze_trade resolves each player by name against live NHL rosters, pulls their season statistics, and runs a category-by-category comparison across the key fantasy hockey scoring dimensions. You get a full breakdown and a clear ACCEPT / DECLINE / PUSH verdict — with chirp. Counting stats are summed; GAA and SV% are averaged across goalies.

Usage

analyze_trade — giving Nathan MacKinnon, receiving Auston Matthews

Or ask naturally:

Should I trade MacKinnon for Matthews?

Parameters

ParameterTypeRequiredDescription
givingstring[]Player names you are trading away
receivingstring[]Player names you are receiving
chirp_intensitystringgentle / standard / savage / ice_cold (default: standard)
personality_modestringanalytical / motivational / roast_master / championship_coach

Multi-player trades

Both sides accept arrays — pass multiple names for package deals: giving: ["Player A", "Player B"], receiving: ["Player C"]

Categories compared

CategoryStatNote
GGoalsHigher is better
AAssistsHigher is better
+/-Plus/minusHigher is better
PIMPenalty minutesHigher is better
SOGShots on goalHigher is better
PPPPower play pointsHigher is better
WGoalie winsHigher is better
GAAGoals against averageLower is better
SV%Save percentageHigher is better

Categories where both sides have zero stats are skipped automatically.

Example response

json
{
  "trade": {
    "giving": ["Nathan MacKinnon"],
    "receiving": ["Auston Matthews"]
  },
  "players": {
    "giving": [{ "name": "Nathan MacKinnon", "found": true, "position": "C", "team": "COL", "stats": { "G": 32, "A": 61, "+/-": 22, "SOG": 187, "PPP": 38 } }],
    "receiving": [{ "name": "Auston Matthews", "found": true, "position": "C", "team": "TOR", "stats": { "G": 45, "A": 40, "+/-": 15, "SOG": 210, "PPP": 29 } }]
  },
  "category_breakdown": [
    { "category": "G",   "giving": 32, "receiving": 45, "winner": "receiving" },
    { "category": "A",   "giving": 61, "receiving": 40, "winner": "giving" },
    { "category": "+/-", "giving": 22, "receiving": 15, "winner": "giving" },
    { "category": "SOG", "giving": 187, "receiving": 210, "winner": "receiving" },
    { "category": "PPP", "giving": 38, "receiving": 29, "winner": "giving" }
  ],
  "summary": {
    "receiving_wins": 2,
    "giving_wins": 3,
    "verdict": "DECLINE"
  },
  "chirp": {
    "verdict_chirp": "💡 you'd be handing away 3 categories for only 2 back. Your opponent is praying you say yes. Hard pass.",
    "ice_cold_truth": "🔥 Savage Reality: This trade has 'I got played' written all over it. Close the chat."
  }
}

Verdict logic

ResultMeaning
ACCEPTReceiving side wins more categories
DECLINEGiving side wins more categories
PUSHEqual categories each side

Category context matters

The verdict is based on raw season stats totals. A PUSH might still be worth accepting if you're surplus at the giving player's position or need depth at the receiving player's. Use the category breakdown to decide.


Part of the CHIRP Intelligence layer — Tools Overview