TradeUpX TradeUpX.app
Want the full scanner? TradeUpX finds profitable combos automatically. Scans all collections, all rarities, with real prices. Free.
Open Trade-Up Scanner →

CS2 Float Formula Explained: How Output Float Is Calculated in Trade-Ups

The CS2 trade-up float formula is the single most important concept for advanced trade-up trading. Once you understand it, you can precisely engineer the output wear of expensive Covert skins — turning a mediocre trade-up into a highly profitable one. This guide breaks down every step of the calculation with real examples.

Why Output Float Matters

In CS2, the difference in price between a Factory New and a Field-Tested skin can be enormous. For example:
  • AK-47 | Asiimov does not come in Factory New — it starts at Field-Tested (0.15)
  • AWP | Dragon Lore Factory New (0.00–0.07) can be worth 10× more than Field-Tested (0.15–0.38)
In a trade-up, the output float is not random. It is mathematically determined by the average adjusted float of your 10 input skins. This means you can deliberately engineer your inputs to produce a specific output float — and therefore a specific wear tier — on a target output skin. This is the foundation of the Mixed Float strategy.

Step 1: Every Skin Has Its Own Float Range

Most people assume all skins go from 0.00 to 1.00. That is wrong. Each skin has a manufacturer-set min and max float embedded in the game data. Examples:
  • MP5-SD | Kitbash: 0.00 – 0.80 (can never be Battle-Scarred)
  • AK-47 | Asiimov: 0.15 – 1.00 (can never be Factory New or Minimal Wear)
  • Desert Eagle | Blaze: 0.00 – 0.08 (always Factory New or Minimal Wear)
  • AWP | Dragon Lore: 0.00 – 1.00 (full range)
This matters enormously for trade-up calculations. A skin with a capped float range behaves differently as a filler skin.

Step 2: Normalize Each Input Float

To calculate the trade-up output, CS2 first normalizes each input skin's float to the range [0, 1] relative to that skin's own min/max range:
adjusted_float = (raw_float - skin_min_float) / (skin_max_float - skin_min_float)
Example: You use a MAC-10 | Derailment with float 0.1900. Its range is 0.00–0.70:
adjusted = (0.1900 - 0.00) / (0.70 - 0.00) = 0.1900 / 0.70 = 0.2714
Example 2: MP5-SD | Kitbash with float 0.0890, range 0.00–0.80:
adjusted = (0.0890 - 0.00) / (0.80 - 0.00) = 0.0890 / 0.80 = 0.1113
Notice how the same raw float produces very different adjusted values depending on the skin's own range. This is why you cannot simply average raw floats.

Step 3: Average All 10 Adjusted Floats

Once you have adjusted floats for all 10 inputs, average them:
avg_adjusted_float = (adj_1 + adj_2 + ... + adj_10) / 10
Example with mixed inputs (6× Derailment + 4× Kitbash):
  • 6× MAC-10 | Derailment at 0.1900 → adjusted 0.2714 each
  • 4× MP5-SD | Kitbash at 0.0890 → adjusted 0.1113 each
avg = (6 × 0.2714 + 4 × 0.1113) / 10
    = (1.6286 + 0.4450) / 10
    = 2.0736 / 10
    = 0.2074
This value — 0.2074 — is what the game uses to calculate the output float.

Step 4: Map to Output Skin's Range

Finally, the average adjusted float is mapped into the output skin's float range:
output_float = output_min_float + avg_adjusted_float × (output_max_float - output_min_float)
Example: Your avg_adjusted_float is 0.2074. The output skin has range 0.00–1.00 (full range):
output_float = 0.00 + 0.2074 × (1.00 - 0.00) = 0.2074 → Field-Tested (0.15–0.38)
Example with capped output: Same avg_adjusted_float (0.2074), but output skin has range 0.00–0.45:
output_float = 0.00 + 0.2074 × (0.45 - 0.00) = 0.0933 → Minimal Wear (0.07–0.15)
Notice how the same inputs produce different output wears depending on the output skin's own float cap. This is why output skin selection matters so much in Mixed Float strategies.

Engineering Target Output Float: The Mixed Float Strategy

If you know the output float formula, you can work backwards. Given a target output float, you can calculate what average adjusted float you need, and then find input float combinations that achieve it.

Reverse Formula

target_avg_adjusted = (target_output_float - output_min) / (output_max - output_min)
Example: You want the output skin (range 0.00–1.00) to be Factory New (max float 0.07):
target_avg_adjusted = (0.06 - 0.00) / (1.00 - 0.00) = 0.06
You need your 10 inputs to average an adjusted float of just 0.06. That means you need skins with very low floats — ideally Factory New inputs.

Mixed Float: Using Main + Filler Skins

If you can't get all 10 inputs at a low float, you can mix:
  • Main skins (the skin you're actually targeting for outputs) at a certain float
  • Filler skins (cheap skins from the same collection or compatible collections) at a different float
avg_adjusted = (main_count × main_adj + filler_count × filler_adj) / 10
TradeUpX's Mixed Float mode automates this entire calculation for every possible main/filler combination.

Practical Float Targets by Wear Tier

When scanning for profitable trade-ups, TradeUpX uses these representative midpoint floats per wear tier:
  • Factory New (0.00–0.07): Representative float 0.035
  • Minimal Wear (0.07–0.15): Representative float 0.110
  • Field-Tested (0.15–0.38): Representative float 0.265
  • Well-Worn (0.38–0.45): Representative float 0.415
  • Battle-Scarred (0.45–1.00): Representative float 0.700
These midpoints are used because they are achievable via Steam marketplace buy orders for the vast majority of skins, unlike near-boundary floats (e.g. exactly 0.15 Field-Tested) which are extremely rare and practically unobtainable at market price.

Frequently Asked Questions

Is CS2 trade-up output float random?
No. The output float is deterministic — it is calculated from the average adjusted float of your 10 input skins, mapped through the output skin's own float range. TradeUpX shows the exact predicted output float for every combination.
How do I target Factory New output in a CS2 trade-up?
Use inputs with very low adjusted floats. Since Factory New is 0.00–0.07, you need an average adjusted float below ~0.07. With full-range (0.00–1.00) output skins, use Factory New inputs averaging below 0.06 raw float. TradeUpX's Mixed Float mode finds the exact input combination automatically.
Does every skin have a 0.00–1.00 float range?
No. Each skin has its own min/max float range set by Valve. For example, MP5-SD Kitbash goes 0.00–0.80 and AK-47 Asiimov goes 0.15–1.00. TradeUpX uses the real float ranges from the ByMykel CS2 API for all 460+ skins.
Calculate Float-Optimized Trade-Ups Free TradeUpX scans thousands of combinations instantly. Free, no account needed.
Open Scanner →

More Guides