CS2 Trade Up Float Guide
The wear of the skin you get from a trade up is not random. It is set by the floats of the skins you put in. Get it right and the result lands in Factory New; get it wrong and it comes out Field-Tested at a fraction of the price.
Short answer: the float of a trade up result is output min + average × (output max − output min), where the average is taken over each input's normalized float: (input float − its min) ÷ (its max − its min). So the result depends on how low your inputs sit inside their own ranges and on the float range of the skin you get, which is why one contract can give Factory New on one outcome and Field-Tested on another.
New to float? Read the general CS2 float explained guide first, then come back for the trade-up formula.
Float and wear ranges
Every skin has a float value between 0 and 1 that sets its wear:
| Wear | Float range |
|---|---|
| Factory New (FN) | 0.00 – 0.07 |
| Minimal Wear (MW) | 0.07 – 0.15 |
| Field-Tested (FT) | 0.15 – 0.38 |
| Well-Worn (WW) | 0.38 – 0.45 |
| Battle-Scarred (BS) | 0.45 – 1.00 |
Many skins can't cover the full 0–1 range. A skin with a float range of 0.00–0.50, for example, can never go above 0.50, which is a light Battle-Scarred. These per-skin min/max values are what make the trade up math interesting.
The CS2 trade up float formula
Since the October 2025 update, the game works it out in three steps:
- Normalize each input: norm = (input float − input min) ÷ (input max − input min)
- Average the ten normalized values (five for Covert-to-knife).
- Map onto the output skin: output float = output min + average × (output max − output min)
Worked example
You have ten inputs whose float range is 0.00–1.00, each with a float of 0.10. They're all Minimal Wear, and their normalized value is 0.10.
- Output A has a range of 0.00–0.80 → 0.00 + 0.10 × 0.80 = 0.080 → Minimal Wear.
- Output B has a range of 0.00–0.50 → 0.00 + 0.10 × 0.50 = 0.050 → Factory New.
The same inputs give Factory New on one outcome and Minimal Wear on the other. So you need to check the float of every possible result, not just the one you want.
Real example: the Cobblestone Collection
The Cobblestone Collection has two Mil-Spec skins, MP9 | Dark Age and P2000 | Chainmail, both with a float range of 0.00–0.22. Ten of them trade up into one of two Restricted skins with very different ranges: CZ75-Auto | Chalice (0.00–0.10) and Desert Eagle | Hand Cannon (0.01–0.70).
| Input float (all ten) | Normalized | CZ75-Auto | Chalice | Desert Eagle | Hand Cannon |
|---|---|---|---|
| 0.02 (FN) | 0.091 | 0.009 (FN) | 0.073 (MW) |
| 0.11 (MW) | 0.500 | 0.050 (FN) | 0.355 (FT) |
| 0.15 (FT) | 0.682 | 0.068 (FN) | 0.481 (BS) |
The Chalice comes out Factory New even from Field-Tested inputs, while the Hand Cannon misses Factory New even with 0.02 inputs. For a Factory New Hand Cannon the inputs need to average about 0.019 or lower. A Mil-Spec contract with all ten inputs from Cobblestone is a 50/50 between these two results, so you have to price both at the wear they will really have.
Aiming for a wear tier
To get a result at or below a target float T on an output skin, you need:
average normalized input ≤ (T − output min) ÷ (output max − output min)
For Factory New (T = 0.07) on an output with range 0.00–0.70, the average normalized input must be at most 0.10. Leave a small safety margin: a result of 0.0700 or higher is already Minimal Wear.
The highest average normalized input that still gives Factory New, for common output ranges:
| Output float range | Max average for Factory New | Example output |
|---|---|---|
| 0.00 – 0.08 | 0.875 | Fade and Doppler knives |
| 0.00 – 0.10 | 0.700 | CZ75-Auto | Chalice |
| 0.00 – 0.50 | 0.140 | M4A1-S | Cyrex |
| 0.01 – 0.70 | 0.087 | Desert Eagle | Hand Cannon |
| 0.00 – 1.00 | 0.070 | AWP | Chrome Cannon |
| 0.06 – 0.80 | 0.0135 | MAG-7 | Bulldozer, Butterfly Knife | Crimson Web |
An output whose minimum float is 0.07 or higher can never be Factory New, whatever you put in.
Saving money on float
- Mix cheap and pricey floats. Only the average matters, so a few very low floats can balance cheaper, higher-float inputs.
- Use inputs with a high minimum float. Because of normalization, a skin whose range is 0.06–0.80 at float 0.10 (Minimal Wear) counts as very low (≈0.054).
- Check the worst outcome too. A cheap input set that makes your target Factory New can still push another outcome into Field-Tested or Battle-Scarred, as in the Cobblestone example above.
- Don't overpay for float you don't need. If the result will be Minimal Wear either way, low-float inputs are wasted money.
- Let a calculator check every outcome. The CS2 trade up calculator predicts the float and wear of every possible result from your exact inputs.
Frequently asked questions
What float is Factory New in CS2?
Factory New is a float from 0.00 up to 0.07. Minimal Wear is 0.07–0.15, Field-Tested 0.15–0.38, Well-Worn 0.38–0.45 and Battle-Scarred 0.45–1.00.
Does the output float depend on which skin I get?
Yes. The same average input float gives a different float on each possible output, because each skin has its own minimum and maximum float.
Did CS2 change the trade up float formula?
Yes. Since the October 2025 update, each input's float is first normalized against its own float range before averaging. Before that, the raw input floats were averaged directly. The patch notes didn't describe this; traders found it by testing contracts after the update.
Can Field-Tested inputs give a Factory New skin?
Yes, if the output's float range is narrow. Ten Cobblestone Mil-Spec skins at 0.15 (Field-Tested, range 0.00–0.22) give a CZ75-Auto | Chalice at about 0.068, which is Factory New, but a Desert Eagle | Hand Cannon at about 0.48, which is Battle-Scarred.
Does every input need a low float?
No. Only the average of the normalized floats counts, so one very low input can make up for a slightly higher one. Check the average, not each skin.