CS2 Trade-Up Guide

CS2 Float Values Explained: Wear Tiers, Trade-Up Math, and Why 0.07 Matters

Published March 4, 2026 · Updated July 9, 2026 · 7 min read
TL;DR

A CS2 float value is a number between 0.00 and 1.00 that controls how worn a skin looks and what wear tier (Factory New through Battle-Scarred) it falls into. Float values are assigned at skin generation and never change. In trade-up contracts, the average normalized position of your inputs within their individual float ranges deterministically sets the output float — which is why restricted input ranges must be handled correctly.

What are CS2 float values?

Every CS2 skin in existence has a float value — a 32-bit floating point number between 0.00 (perfect) and 1.00 (destroyed). Float is set when the skin is generated (from a case, a contract output, or a drop) and is permanent. You cannot change a skin's float; you can only inspect it and sell it.

Float values are uniformly distributed within a skin's wear range. If an AK-47 Redline has a min-float of 0.10 and a max-float of 0.70, any value in that range is equally likely on a freshly generated Redline.

How does float map to wear tier?

The wear-tier mapping is fixed across all CS2 skins:

Wear TierFloat RangeCommon Abbrev.
Factory New0.00 – 0.07FN
Minimal Wear0.07 – 0.15MW
Field-Tested0.15 – 0.38FT
Well-Worn0.38 – 0.45WW
Battle-Scarred0.45 – 1.00BS

Two skins with floats of 0.0699 and 0.0701 are visually almost identical — but the first is Factory New and the second is Minimal Wear, and FN typically sells for 1.5–3× the MW price. These boundary points are where price cliffs live.

How is float calculated for a CS2 trade-up output?

The Valve formula is:

normalized_i = (raw_float_i − input_min_i) / (input_max_i − input_min_i)
avg_normalized = sum(normalized_i) / number_of_inputs
output_float = output_min + avg_normalized × (output_max − output_min)

Where:

Normalization is explicit and happens before averaging. Never insert the raw arithmetic mean into the output formula unless every input happens to use the full 0.00–1.00 range. Inputs with different min/max ranges must each be normalized separately.

Worked example: why a restricted input range changes the result

Suppose all 10 inputs are the same skin, its allowed range is 0.00–0.08, and their raw floats average 0.04. Because they share a range, their average normalized position is:

avg_normalized = (0.04 − 0.00) / (0.08 − 0.00)
               = 0.50

Now suppose one eligible output has a range of 0.10–0.70:

output_float = 0.10 + 0.50 × (0.70 − 0.10)
             = 0.10 + 0.30
             = 0.40

The result is 0.40, not the 0.124 that a raw-average calculation would produce. A raw 0.04 looks low globally, but it is halfway through a 0.00–0.08 input skin's usable range. This is why every input's own min/max range matters.

How do I check the float of a CS2 skin before buying?

Three main options:

For trade-up input shopping, the browser extension is by far the fastest. A profitable contract usually requires inputs at a specific float (e.g. "below 0.10") and you cannot tell from the Steam listing thumbnail alone.

The four float boundary numbers every CS2 trader should memorize

If your trade-up output float lands within 0.01 of one of these boundaries, you are sitting on a float-edge contract — see our post on CS2 trade-up edge cases.

Frequently Asked Questions

What does a 0.00 float mean in CS2?
A 0.00 float is the lowest possible value, representing a pristine Factory New skin. True 0.00 floats are extraordinarily rare because they require both the skin's min-float to be 0.00 and the RNG to roll exactly 0 — most 'FN' skins have floats in the 0.001–0.07 range.
Can a CS2 skin's float change over time?
No. Float values are assigned at skin generation and are permanent. Inspecting, trading, or storing a skin does not alter its float.
Why are CS2 float values not always 0–1 for every skin?
Each skin has its own min-float / max-float range, set by the developer. The Glock-18 Fade has min 0.00 / max 0.08, so every Fade is Factory New. Other skins like the AK-47 Redline have min 0.10 / max 0.70, so no Redline can ever be Factory New.
How accurate is the CS2 trade-up output float formula?
It is deterministic when you use each exact raw input float and the correct min/max range for every input and output skin. Only the chosen output skin is random; once that skin is selected, the normalized-input calculation fixes its float.
Does StatTrak affect a CS2 skin's float?
No. StatTrak adds a kill counter overlay but does not change the float distribution or wear tier mapping. A StatTrak skin generated alongside a non-StatTrak skin can have any float in the skin's normal range.
CS2FloatWear Tier

Stop calculating contracts by hand

TradeUpTarget ranks opportunities found within each timestamped, bounded CS2 scan, with normalized float math, post-fee modeled EV, and execution state kept separate.

Open the Scanner →