What Is a Trade Up Contract?
A CS2 trade up contract lets you submit 10 weapon skins of the same rarity (or 5 for Covert tier) and receive 1 skin of the next higher rarity. The output skin is selected from the next-tier skins available in the collections your inputs belong to.
The outcome is probabilistic — but the probabilities are fully deterministic and calculable before you execute the contract. Understanding how those probabilities are computed is the difference between gambling and informed trading.
Input Requirements
- Submit exactly 10 skins of the same rarity tier
- The exception is Covert (red) tier, which only requires 5 skins
- All inputs must be the same rarity — you cannot mix Mil-Spec and Restricted, for example
- For StatTrak™ trade ups, all inputs must be StatTrak — the output will also be StatTrak
- Input skins can come from different collections — and this is how you control the outcome probabilities
How Output Probability Actually Works
Each of your 10 input skins carries an equal 1/10 share of the total probability (or 1/5 for Covert). For each input, the contract looks up all unique next-tier skins in that input's collection. That input's probability share is then split equally among those possible outcomes.
This means two things determine an outcome's probability:
- How many inputs point to that collection — more inputs from a collection means more probability flowing to its outcome pool
- How many unique outcomes that collection has — fewer possible outcomes means each one gets a bigger slice of the probability
If the same outcome skin can be reached through multiple inputs (because they share a collection), the probabilities accumulate. This is the core mechanism you exploit to build profitable contracts.
Worked Example — Why Collection Size Matters
Consider 7 inputs from Collection A (which has 3 unique next-tier skins) and 3 inputs from Collection B (which has only 1 next-tier skin):
Collection A outcomes (3 skins):
Each input contributes 1/10, split 3 ways → 1/30 per outcome per input
7 inputs × 1/30 = 7/30 ≈ 23.3% each (70% total to Collection A)
Collection B outcome (1 skin):
Each input contributes 1/10, split 1 way → 1/10 per input
3 inputs × 1/10 = 30%
Even though Collection B has fewer inputs, its single outcome gets 30% — higher than any individual Collection A outcome at 23.3%. A collection with one expensive next-tier skin concentrates all its probability into that single prize, making it powerful even with fewer inputs.
This is why the calculator shows you exact per-outcome probabilities, and the simulator accounts for collection pool sizes when searching for optimal contracts.
How the Output Float Is Determined
The output skin's float value is not a simple average of your input floats. Instead, each input's float is first normalized to its own float range:
The normalized values are averaged across all inputs, then that average is mapped onto the output skin's range:
This means a skin's float range matters as much as its float value. A full-range skin (0–1) at float 0.10 contributes a normalized value of 0.10, while a half-range skin (0–0.5) at that same float contributes 0.20 — twice as much. Wider-range inputs are more efficient.
For a complete breakdown with worked examples and optimization strategies, see our Float Values guide.
Why This Makes Profitable Trade Ups Possible
Because both probabilities and output floats are fully calculable, you can evaluate any contract before committing money. The profitable edge comes from finding combinations where:
- High-value outcomes have high probability — by directing most inputs toward collections with expensive next-tier skins, especially collections with fewer possible outcomes
- Output wear condition maximizes value — by selecting inputs with low normalized floats to push the output toward Factory New or Minimal Wear, often worth 2–10x more than lower wear conditions
- Input costs are low relative to expected output value — the expected value (sum of each outcome's price × probability) minus your total input cost is your mean profit per contract