The trade-up contract is the only tool in CS2 that lets you "melt down" cheap skins into a more expensive one without opening cases. The mechanic is fully deterministic: both the odds and the float of the result can be calculated in advance, before you press the button. In this guide we will walk through all the math with concrete numbers and honestly answer the main question: when does a contract make money, and when are you simply donating to the market?
The Core Mechanic: 10 Skins Become 1
The contract rules are simple and strict:
- You put in exactly 10 skins of the same rarity tier — for example, ten blues (Mil-Spec).
- In return you get 1 skin of the next tier up — purple (Restricted) in our example.
- The result comes only from the collections your input skins belong to. If all ten inputs are from the Dust 2 collection, the output will be a purple skin from Dust 2.
The rarity ladder for contracts: Consumer (white) → Industrial (light blue) → Mil-Spec (blue) → Restricted (purple) → Classified (pink) → Covert (red). Red skins are the ceiling: there is no trade-up out of Covert, so knives and gloves cannot be obtained through a contract.
Odds: A Worked Example
Since 2019, the probability of hitting a specific collection is proportional to the number of possible outcomes (next-tier skins) in that collection, multiplied by how many of your inputs come from it. Within a collection, all outcomes are equally likely.
Example. We build a contract out of blue skins:
- 6 inputs from collection A, which has 3 purple skins. Weight: 6 × 3 = 18.
- 4 inputs from collection B, which has 2 purple skins. Weight: 4 × 2 = 8.
Total weight is 26. From here it is simple arithmetic:
| Outcome | Calculation | Probability |
|---|---|---|
| Collection A (any of 3 skins) | 18 / 26 | 69.2% |
| A specific skin from A | 18 / 26 / 3 | 23.1% |
| Collection B (any of 2 skins) | 8 / 26 | 30.8% |
| A specific skin from B | 8 / 26 / 2 | 15.4% |
The money-saving takeaway: if the target collection contains many "junk" outcomes, every extra skin in it dilutes your chance of the expensive result. The ideal contract collection is one with few outcomes where all of them are valuable.
Output Float: Formula and Example
The float of the result is not random — it is computed from the average normalized float of the inputs. The algorithm:
- For each input, compute the normalized float: (float − skin's minimum) / (maximum − minimum).
- Take the average across all 10 inputs.
- Project it onto the output skin's range: output float = output minimum + average × (output maximum − output minimum).
Example: the average normalized float of your inputs is 0.19, and the output skin has a range of 0.05–0.70. Then the result's float is: 0.05 + 0.19 × 0.65 = 0.1735 — that is Field-Tested. If you want Minimal Wear or Factory New on the output, you will need to source low-float inputs. For how wear ranges work, read our float guide and the breakdown of wear tiers.
Profit or Loss: Calculating EV
The expected value (EV) of a contract is the sum of "probability × sale price" over all outcomes, minus the marketplace fee, minus the cost of the inputs. Formally:
EV = Σ (p × outcome price × (1 − fee)) − cost of 10 inputs
And here is the uncomfortable truth: after fees, EV is almost always negative. The reasons:
- The market is efficient: popular profitable contracts instantly push input prices up.
- Marketplace fees (from 2–7% on third-party markets to 13–15% on Steam) eat the thin margin.
- Expensive outcomes are usually diluted by cheap ones in the same collection, and the cheap ones drop more often than you would like.
A positive-EV contract is a rare and short-lived find. If you have found one, either prices have not corrected yet, or you made a mistake in the math. It is usually the latter.
"Safe" Contracts on Cheap Collections
A separate class is contracts where any outcome is worth roughly as much as the inputs cost. On old, cheap collections you sometimes get situations where 10 inputs cost 3–4 dollars, the worst outcome returns about the same after fees, and the best one pays 2–3x. This is not a money printer — it is a lottery with a near-zero ticket price: limited downside, pleasant upside.
What to look for when picking one:
- Worst outcome × (1 − fee) should be close to the total input cost.
- The fewer outcomes in the collection, the more predictable the result.
- Input floats must produce the wear tier you want on the output — Field-Tested and Battle-Scarred versions of the same skin can differ in price by a factor of two.
Where to Buy Inputs Cheaply
Input price decides everything: a 10–15% difference across ten skins turns a break-even contract into a losing one. We compare prices on Skinport, Lis-Skins and Market.CSGO and refresh them every 30 minutes — no money or skins ever pass through us, we only show you where it is cheaper. Here is a live selection of the cheapest rifles for contract fodder:
G3SG1 | Jungle Dashed
G3SG1 | Red Jasper
FAMAS | Byproduct
G3SG1 | Desert Storm
AUG | Commando Company
Galil AR | Grey Smoke
And before selling the result, compare prices across marketplaces — on popular skins the spread can be significant:
Pre-Contract Checklist
- List every outcome and its probability using the formula above.
- Calculate EV including the fee of the marketplace where you plan to sell.
- Verify the output float: average normalized input float × output range.
- Compare input prices in the catalog — overpaying on inputs kills even a good contract.
- Remember: a contract is irreversible. Ten skins are consumed for good.
A trade-up is not an income strategy — it is an engineering mini-game with transparent math. Do the math before, not after. And if you enjoy the idea of "melting cheap into expensive," make sure to read our breakdown of case opening odds — the math there is even more brutal.