Fundamentals 7 min read

How CS2 Trade Up Contracts Work

Learn the real mechanics behind CS2 trade up contracts: per-input probability weighting, how collection outcome pools split probability, how normalized floats determine output wear, and why the number of outcomes per collection matters.

1

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.

2

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
3

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.

4

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.

5

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:

normalized = (float − min_float) / (max_float − min_float)

The normalized values are averaged across all inputs, then that average is mapped onto the output skin's range:

output_float = output_min + avg_norm × (output_max − output_min)

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.

6

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

Frequently Asked Questions

How many skins do I need for a CS2 trade up contract?

You need exactly 10 skins of the same rarity tier for a standard trade up contract. The exception is Covert (red) tier, which only requires 5 skins. All inputs must be the same rarity, and for StatTrak trade ups, all 10 inputs must also be StatTrak.

How are CS2 trade up contract outcome probabilities calculated?

Each input skin carries an equal share of the total probability (1/10). For each input, the contract looks up all unique next-tier skins in that input's collection and splits the probability equally among them. If multiple inputs share a collection, their contributions to the same outcomes accumulate. This means both the number of inputs per collection and the number of possible outcomes per collection determine the final probabilities.

Does the number of skins in a collection affect trade up probabilities?

Yes — specifically, the number of unique next-tier skins in each input's collection. A collection with only 1 possible outcome concentrates all probability into that single skin, while a collection with 4 possible outcomes splits the probability four ways. This makes single-outcome collections powerful for targeting specific prize skins.

Do float values affect trade up contract results?

Yes. Each input's float is normalized relative to its own float range, then the normalized values are averaged and mapped to the output skin's range. This means a skin's float range matters as much as its actual float — wider-range skins contribute less to the normalized average at the same absolute float, making them more efficient inputs.

Are CS2 trade up contract outcomes random?

The outcome is randomly selected, but the probabilities are fully deterministic and calculable from the inputs. You know the exact chance of every possible outcome before executing the contract. The float calculation is also deterministic — given the same inputs with the same floats, the output float is always the same.

More Guides

Ready to try it?

Find profitable trade ups using these strategies.

Open Simulator