CS2 Trade-Up Contracts: The Float Formula and How Odds Work
How CS2 calculates output floats in trade-up contracts, how collection weighting determines odds, and when a trade-up is actually profitable.
Trade-up contracts in CS2 are not random. The output float is calculated from your inputs using a formula, and the odds of getting each possible skin are determined by collection weighting. Here's how both work.
The float formula (3 steps)
After the October 2024 update, CS2 uses per-skin normalization:
Step 1: Normalize each input
normalized = (input_float - skin_min) / (skin_max - skin_min)
An AK-47 Redline with a 0.15 float has a range of 0.10 to 0.70:
(0.15 - 0.10) / (0.70 - 0.10) = 0.083
A skin at its minimum possible float always normalizes to 0. A skin at its maximum normalizes to 1.
Step 2: Average all 10 normalized values
avg_normalized = sum(all_normalized) / 10
If all 10 inputs normalize to 0.083, the average is 0.083.
Step 3: Map to output range
output_float = output_min + avg_normalized × (output_max - output_min)
If the output skin has a range of 0.00 to 0.50:
0.00 + 0.083 × 0.50 = 0.042 → Factory New
What changed in October 2024
Before the update, the formula assumed a global 0–1 range for all skins. A 0.15 float was treated as 0.15 regardless of the skin's actual range.
After the update, each skin is normalized against its own min/max. This means a "low float for this skin" (like 0.15 on a Redline with 0.10 minimum) gets properly recognized as being near the floor.
The practical result: trade-ups with skins at their minimum floats now reliably produce lower-float outputs than before.
How odds work (collection weighting)
The probability of each output skin is not uniform. It's weighted by how many inputs came from each collection.
Formula:
P(collection) = inputs_from_collection / total_inputs
P(specific_skin) = P(collection) / skins_at_target_rarity_in_collection
Example:
- 7 inputs from The Huntsman Collection
- 3 inputs from The Breakout Collection
- Huntsman has 2 Restricted skins, Breakout has 3 Restricted skins
Odds:
- Each Huntsman skin: 7/10 ÷ 2 = 35%
- Each Breakout skin: 3/10 ÷ 3 = 10%
To maximize odds of a specific output, stack inputs from the collection that contains it.
When trade-ups are profitable
A trade-up is profitable when expected value (EV) is positive:
EV = Σ(probability × output_price) - total_input_cost
Positive EV means that if you ran this exact trade-up many times, you'd profit on average. But individual results vary. A 10% chance of a $50 skin means most contracts won't hit it.
Conditions that tend to produce positive EV:
- Cheap inputs from a collection with an expensive next-tier skin
- Stacking 10/10 from one collection to guarantee the output pool
- Finding skins where the market hasn't priced in the trade-up math yet
Common mistakes
Not checking the output pool. Mixing collections dilutes your odds. Always check what skins exist at the next rarity tier in each collection you're using.
Ignoring float impact on value. A Classified skin at 0.04 (Factory New) might be worth 3× more than the same skin at 0.20 (Field-Tested). The predicted float matters for EV calculation.
Using outdated calculators. Pre-October 2024 tools use the old formula. If the calculator doesn't normalize per-skin, the float prediction will be wrong.
Knife trade-ups
Since October 2025, you can trade up 5 Covert skins to an Extraordinary item. Five regular Covert inputs can produce a regular knife or gloves item from a collection represented by the inputs. Five StatTrak™ Covert inputs produce a StatTrak™ knife from one of those collections. The exact output pool depends on the collections you submit, so check the input set rather than assuming every knife and glove is eligible.
Knife trade-ups are essentially gambling with extra steps. The math says EV is almost always negative. Some people do it for content or the thrill. If you want to know your exact odds, run it through the CS2 trade-up calculator.
Try the calculator
The trade-up calculator implements the exact formula above. Select your 10 inputs, see the predicted float for each possible output, check the probability distribution, and enter prices to calculate EV. Everything runs in your browser.
While you are optimizing your setup, check your DPI converter settings and run a sensitivity converter if you switch between CS2 and other titles. Small differences in mouse speed compound over hundreds of rounds.