A trade-up contract turns ten skins you do not want into one skin of a higher rarity. It is the oldest way to “craft” in Counter-Strike, and with the right inputs you can predict both the possible results and their wear. Here is how the odds and the float are worked out, and how to check whether a contract is worth it before you sign it.
The basic rules
- 10 inputs of the same rarity give 1 output of the next rarity: Consumer to Industrial, Industrial to Mil-Spec, Mil-Spec to Restricted, Restricted to Classified, Classified to Covert.
- Covert is the top. Ten Coverts do nothing; since October 2025 five Coverts can go into the separate knife trade-up instead.
- StatTrak inputs must all be StatTrak, and the result is StatTrak.
- Souvenir inputs are allowed since the update of 22 May 2026 and can be mixed with normal ones. The Souvenir status is stripped and the result is a normal skin.
- Contraband (the M4A4 | Howl) cannot be used or produced.
The output always comes from a collection that one of your inputs belongs to, and only from its next rarity tier.
How the odds work
The game picks one of your ten inputs at random, then gives you a random next-tier skin from that input’s collection. So:
Chance of an outcome = (inputs from its collection / 10) × (1 / next-tier skins in that collection)
SteamDB’s example: six inputs from Operation Breakout give each of its three Classified skins 6/10 × 1/3 = 20%. The other four inputs decide the remaining 40%.
Two things follow from this:
- Ten inputs from one collection lock the result to that collection.
- Collections with few next-tier skins give each outcome a bigger slice. Recent cases such as the Fever Case have 2 Coverts, 3 Classifieds, 5 Restricted and 7 Mil-Specs, so a Classified-to-Covert contract from one case is a coin flip between two skins.
You can check every tier for a case in our case simulator, for example the Operation Phoenix Weapon Case.
How the output float works
The output float is predictable. According to SteamDB the game does it in three steps:
- Each input’s float is turned into its position within that skin’s own range. A skin with range 0.00 to 0.40 at 0.05 counts as 0.125.
- The ten positions are averaged.
- The average is placed into the output skin’s range.
Example: if your average position is 0.10 and the output is an AWP | Asiimov (range 0.18 to 1.00), the result is 0.18 + 0.10 × 0.82 = 0.262, which is Field-Tested.
This is why capped skins catch people out. A 0.05 input looks Factory New, but if its range ends at 0.40 it counts as 0.125 and can push your result into Minimal Wear.
Doing the profit check
Work out the expected value before you click: for each outcome, multiply its chance by its price in the wear you will get, then add them up. Compare that with what the ten inputs cost, and take off the fee of the market where you will sell.
SteamDB ran three real contracts with July 2026 prices:
| Contract | Input cost | Expected value | Result |
|---|---|---|---|
| Cheap Minimal Wear inputs | $17.80 | $17.52 | 0.98x before fees, about $15.24 after Steam’s fee |
| Ordinary Factory New inputs | $43.70 | $21.13 | 0.48x, two outcomes land in Minimal Wear |
| Low-float Factory New inputs | about $55 | $63.99 | about +16% before fees, only with very low floats |
The pattern is typical. Most contracts return less than they cost once fees are counted, and the profitable ones depend on very cheap inputs with exact floats and on prices that may move the next day. The Steam Market takes roughly 13% of the buyer price, third-party markets usually 2 to 8%.
Before you sign
- Check the next tier of every collection in your contract, including the cheap outcomes.
- Use the exact float of each input and its range, not just the wear name.
- Price the outputs in the wear they will actually come out in.
- Count the fee of the market where you will sell.
Do this for every contract, and treat the ones that still look good with suspicion until you have checked current prices.






