Float values are one of CS2's most important pricing variables, but the system behind them isn't intuitive. Why does a Factory New AK-47 Vulcan sometimes look almost identical to a Minimal Wear? Why do some skins only exist in certain wear tiers? Why does a 0.001 float command extreme premium over a 0.05 float when both are technically Factory New? Understanding the actual mechanics behind float generation makes these questions answerable — and turns float verification from a checkbox exercise into a real value-spotting skill.
Quick answer
CS2 float values are decimal numbers from 0.00 to 1.00 generated randomly within each skin's defined wear range when the item is created. Each skin has a minimum and maximum possible float value (not all skins span the full 0.00–1.00 range). The five wear tiers (Factory New 0.00–0.07, Minimal Wear 0.07–0.15, Field-Tested 0.15–0.38, Well-Worn 0.38–0.45, Battle-Scarred 0.45–1.00) are universal labels, but specific skins exist only in tiers that overlap their wear range. Trade-up contract outputs have float calculated as the average of inputs, scaled to the output skin's wear range. The actual visual appearance scales nonlinearly with float — most visual change happens in the bottom half of the range for many skins.
How is a float value actually generated?
When a CS2 skin is created (case opening, trade-up output, drop), the game's item-generation system assigns several attributes including float. The float generation process:
How is a float value actually generated?
~12 min-
1 Determine the item's wear range
Each skin design has a defined minimum float and maximum float. For some skins this is the full 0.00–1.00 range. For others it's a narrower band — a skin might be defined to only exist between 0.06 and 0.80, for example. The wear range is set in the skin's design, not random per instance.
-
2 Generate a raw float value
The system generates a uniformly random number between 0.00 and 1.00. This is the "raw float" — a probability draw before mapping to the skin's actual range.
-
3 Map the raw float to the skin's wear range
Linear interpolation maps the 0.00–1.00 raw value into the skin's defined min-max range. A raw float of 0.5 on a skin with range 0.06–0.80 produces an actual float of 0.43 (halfway between 0.06 and 0.80).
-
4 Assign the wear tier
The resulting float value is compared against the five wear tier boundaries to determine the displayed tier. A float of 0.05 is Factory New (since 0.07 is the FN cap); a float of 0.10 is Minimal Wear; and so on.
-
5 Calculate the average of input floats
Sum all 10 input float values and divide by 10. This produces the average input float (a value between 0.00 and 1.00).
-
6 Map the average to the output skin's wear range
The average is treated as a raw float and mapped through the output skin's defined wear range to produce the actual output float.
The practical implication: if you trade up 10 inputs with average float of 0.05, the output gets a raw float of 0.05 — which maps to wherever 0.05 lands in the output's wear range. For an output skin with full 0.00–1.00 range, this produces an actual output float of 0.05 (Factory New). For an output skin with range 0.06–0.80, it produces an actual output float of 0.06 + (0.05 × 0.74) = 0.097 (Minimal Wear).
This is why low-float trade-up inputs produce low-float outputs — but only for output skins whose wear range allows low floats. Trade-up inputs to skins with restricted ranges (high minimum floats) can't produce very-low-float outputs no matter how low the input floats are.
The trade-up float math affects strategic decisions. Buyers planning specific trade-ups should research the output skins' wear ranges and select inputs accordingly. Pricing-arbitrage trade-ups (targeting specific high-value outputs) often only make sense if the output's wear range allows low floats — otherwise even a successful trade-up produces a relatively high-float output that doesn't command the premium pricing.
How does float interact with visual appearance?
Float is the data attribute; visual wear is the rendered result. The mapping between them isn't linear for most skins.
Float-sensitive skins. Skins where small float changes produce large visual changes. The AK-47 Vulcan is the textbook example — a 0.01 float Vulcan looks distinctly cleaner than a 0.05 float Vulcan, even though both are technically Factory New. The white panels and metallic edges accumulate visible wear aggressively as float increases. Similar effects on the AK-47 Asiimov, AK-47 Bloodsport, M4A4 Asiimov, and AWP Asiimov.
Float-moderate skins. Skins with noticeable but less dramatic wear progression. Most named-design skins fall here. The visual difference between low-FN and high-FN exists but isn't as striking. Pricing typically reflects modest premium for clean floats rather than extreme premium.
Float-forgiving skins. Skins where the design hides wear effectively. Minimalist designs (AK-47 Slate), heavy patterns that obscure surface wear (some Case Hardened variants), and skins where the visual style intentionally incorporates weathering (Crimson Web with intentional wear aesthetic). Float matters less; wear tier matters more than specific float number.
The non-linear visual mapping is why float verification skills matter. A trader who can recognize float-sensitive skins and verify clean floats captures meaningful pricing advantages. A trader who treats all "Factory New" listings as equivalent will overpay on float-sensitive skins and overpay relative to non-sensitive equivalents.
Where does the actual float value come from technically?
Steam's item database stores float as a 32-bit floating-point number attached to each item instance. The value is set at item creation and immutable thereafter — trading the item doesn't regenerate the float, and no in-game action can modify it.
The Steam Web API exposes float values for items, which is how third-party platforms (CSFloat, Skinport, SkinSwap, etc.) display float on listings. The CSFloat browser extension uses this API access to display float values inside Steam Community Market listings, which Steam doesn't show natively.
Some practical implications:
The same item ID always has the same float — there's no version where the float is different in different contexts.
Third-party platforms can't fabricate float values; the API access provides ground truth.
Float-checking tools that read from the Steam API are reliable; ones that estimate based on listing photos aren't.
The float is associated with the specific item instance, not the skin design — every individual instance has its own float value.
How do I check float values before buying?
The standard verification flow:
On third-party platforms: CSFloat, Skinport, SkinSwap, BUFF163 all display float directly on listings. Cross-reference float with listing price to evaluate whether the specific float justifies the price.
On Steam Community Market: install the CSFloat browser extension, which adds float display to Steam listings automatically. Alternatively, click the listing's inspect link and use a third-party float-checker tool to see the value.
For high-value purchases: verify the float through multiple methods (inspect link in browser, inspect in-game via the actual CS2 client, third-party tool cross-reference). Inconsistency between methods could indicate a display manipulation attempt.
For trade-up purchases: calculate the expected output float using the average-of-inputs formula and the output skin's wear range. Verify the actual output float matches the calculation when the trade completes.
What float-related opportunities exist for traders?
Spotting underpriced low-float items
On platforms where float isn't surfaced prominently, low-float items can sit at standard prices because casual sellers don't differentiate. Identifying these and either buying for personal use or arbitraging to platforms where float is properly priced captures meaningful margins.
Pattern-and-float intersection
Pattern-sensitive skins (Case Hardened, Doppler, Marble Fade) plus float verification compounds the value-detection edge. A low-float Tier 1 blue gem at standard Case Hardened pricing is the kind of opportunity sustained attention can occasionally surface.
Trade-up float arbitrage
Specific trade-ups targeting positive-EV outputs where low-float inputs produce low-float outputs in a skin where clean floats command significant premium. Requires research and capital, but can produce meaningful per-trade returns when conditions align.
Float-tier mispricing across platforms
Different platforms price float differently. Some platforms have float premiums baked into their pricing engines aggressively; others price more uniformly within wear tiers. Cross-platform arbitrage exploiting these differences is achievable with sustained attention.
What about the maximum-float "Battle-Scarred" market?
Most attention focuses on low-float Factory New items, but the highest-float Battle-Scarred range has its own niche market. Some specific skins look meaningfully different at very high floats (close to 1.00) than at moderate Battle-Scarred floats (around 0.50). Collectors specifically seeking maximum-wear examples for certain skins create demand at the high end.
The pattern is most pronounced on skins where heavy wear becomes its own aesthetic — certain combat-style designs, weathered themes, or skins where worn appearance fits the visual concept. The Crimson Web family is a classic example where heavily-worn examples can command premium for the specific visual effect.
For most skins, however, low float dominates pricing. The maximum-float niche exists but is much smaller than the low-float collector market.