A trade kill is killing the opponent who has just killed your teammate, within a short window.
Trading is the mechanism that makes aggressive Counter-Strike survivable. A duel lost on entry costs the round only if it goes untraded; if the opponent is immediately killed, the numbers are level again and the map control taken by the entry frag is retained. This is why positioning is coached around trade distance: two players spread too far apart cannot trade each other, so every duel becomes a straight coin flip. It is also why a traded death still counts toward KAST — the death bought space, and the stat records it. That round impact is what modern ratings try to price; HLTV's Round Swing, introduced with Rating 3.0, is one attempt.
Here is where wording matters, because the API does not do what people assume. There is no per-duel record and no killer-to-victim pairing — nothing that says "player X traded player Y." What the data holds is counts: trade_kills and trade_deaths per player per match (both nullable integers), plus trade tallies per team per round. A trade is bounded by a time window, so the count depends entirely on where that window is drawn; a wider window records more trades from the very same demo. Treat the figure as a windowed tally, not a log of who avenged whom. The two counts are complementary: a high trade_deaths marks a player who dies but is regularly avenged, typically someone taking space in a support role, while a high trade_kills marks the one doing the avenging.
For how trades fold into a round's economy and a player's consistency, see KAST in CS2 explained.