CS2 Trade-Up Calculator
Compute the exact output skins, probabilities, and predicted floats for any Counter-Strike 2 trade-up contract. Supports knife/glove 5-input contracts, multi-collection mixing, StatTrak, and reverse search.
All inputs must be StatTrak™; the output will also be StatTrak™.
Or load an example contract:
CS2 trade-up calculator. Output odds, predicted floats, and the math behind every contract.
What is a CS2 trade-up contract?
How the calculator computes each output
The CS2 trade-up float and probability formulas
- = Predicted float of the output skin for the contract.
- = Minimum and maximum float of the output skin, per its bundled CS2 data entry (sourced from ByMykel/CSGO-API).
- = Average normalised input float across all n inputs.
- = Raw float of input skin i, the value displayed in your CS2 inventory.
- = Minimum and maximum float of input skin i — these can be the canonical 0.00–1.00 or a per-skin cap (Asiimov 0.05–0.70, Redline 0.10–0.70, M4A1-S Fade 0.00–0.08, AUG Amber Fade 0.00–0.40, etc.).
- = Number of inputs: 10 for standard trade-ups, 5 for the knife/glove contract added in October 2025.
- = Inputs from a given collection divided by the total inputs (10 or 5). This is the collection's share of total output probability.
- = Number of next-tier skins (or knife/glove contains_rare entries for the case the collection feeds) in that collection's output pool.
Trade-up examples
Standard 10-input Mil-Spec, single collection, deterministic Restricted output
Multi-collection 7+3 split, weighted Restricted output
Knife/Glove 5-Covert from one case-feeder collection
Reverse mode — work backwards from a target skin
Trade-up tips
- Concentrate inputs in the smallest-output collection that contains your target. The probability formula is (n_coll / n_total) × (1 / outputs_in_collection), so a collection with one next-tier skin concentrates its entire input share into that one output. The Militia Collection (1 Restricted: M4A4 | Modern Hunter) and several Operation collections are popular for this reason — fewer next-tier outputs amplifies probability per skin even when input cost is the same as a wider collection.
- Open the float optimisation panel before committing inputs. For your primary target output, the panel solves backwards from a chosen exterior band (FN/MW/FT/WW/BS) and returns the maximum average normalised input float that still keeps the predicted output inside that band. If the ceiling is 0.082, every input has to push the average normalised float to 0.082 or lower — a strict cap that is invisible if you only watch the raw input floats.
- Use the reverse mode when you have a target skin in mind. Pick the skin, pick the exterior, choose between 'lowest float in target exterior' (deepest in the band, best quality output) and 'just inside the tier' (looser ceiling, cheaper inputs). The calculator returns the input collection that can deposit the target plus the maximum average normalised float that keeps the result inside the band — so you know upfront whether the inputs you can afford can actually deliver the exterior you want.
- Treat StatTrak gloves as impossible. StatTrak gloves do not exist in CS2, so Valve's in-game rule makes a StatTrak 5-Covert contract knife-only — all-StatTrak inputs yield a StatTrak knife. This calculator does not apply that StatTrak filter to the output pool: it draws uniformly from the full contains_rare pool of the feeder case in both modes, so the Special probabilities it lists are the in-game knife/glove distribution, not a StatTrak-only knife sub-pool. Plan around the in-game rule (DMarket and the Steam Community trade-up guide both note that the only Specials in some cases are gloves, which makes those cases unusable for a StatTrak knife contract).
- Avoid float-capped inputs at the top of their range. After the October 2024 normalised-float rewrite, a 0.30 AUG | Amber Fade input (capped 0.00–0.40) normalises to 0.75 — about 2.5× higher than the same raw float on a 0.00–1.00 skin. Wide-range inputs with floats deep inside Factory New normalise to small numbers and pull the average down; capped inputs at the upper end of their range pull the average up. The old filler-skin meta where players padded with tight-range inputs is dead under the new formula.
- Sum probabilities and confirm the total is 1.0 (100%). The calculator surfaces a check line under the output table — if it ever reports 0.98 or 1.02 instead of 1.00, you have either an input from a collection with no next-tier outputs (the contract is invalid in-game and the calculator flags it) or a rounding leak from a malformed dataset entry. The check is the cleanest sanity test that every column of the formula was applied correctly.
Frequently asked questions about CS2 trade-up contracts
Does this calculator support knife and glove trade-ups?
What changed in the October 2024 trade-up update?
What did Valve change in October 2025?
Can I mix StatTrak and non-StatTrak inputs?
Why are Souvenir skins not in the picker?
What is a normalised float?
How does the calculator determine probabilities for multi-collection inputs?
Does the calculator price the inputs and outputs?
Why does the predicted output float not match my in-game contract preview exactly?
Can I share a permalink to a specific contract?
Is this trade-up calculator free?
How accurate are the predicted output floats?
CS2 trade-up glossary
Float
The wear value of a CS2 skin, a real number in [0, 1]. Lower floats sit in cleaner exteriors (Factory New, Minimal Wear) and generally command higher market prices.
Exterior
The display band of a float: FN (0.00–0.07), MW (0.07–0.15), FT (0.15–0.38), WW (0.38–0.45), BS (0.45–1.00). Upper bounds are exclusive except BS, which is inclusive to 1.00.
Normalised float
An input float mapped to 0–1 against its own min/max range: (float − min) / (max − min). CS2's post-October-2024 trade-up formula averages normalised inputs and maps the result back into the output skin's range.
Collection
A named group of CS2 skins released together (e.g. The Mirage 2021 Collection, The Cobblestone Collection). Trade-ups draw outputs from the contributing collections' next-tier pools, weighted by input share.
Float cap
A per-skin minimum or maximum that restricts the float range below the canonical 0–1. The AWP Asiimov caps at 0.18 minimum (no Factory New version exists), the AK-47 Redline caps at 0.10–0.70, the AK-47 Asiimov at 0.05–0.70. Float caps matter under the normalised formula because they change the relative position of a given raw float on the 0–1 axis.
Covert
The rarest standard rarity tier (red), one below Special. Covert is the input rarity locked when you switch the calculator to knife/glove mode.
Special
Knives and gloves. Not part of the standard rarity ladder. Reachable only via the 5-Covert knife/glove trade-up added by Valve in the Re-Retakes Update on 23 October 2025.
StatTrak
A weapon variant that tracks confirmed kills. Trade-up contracts cannot mix StatTrak and non-StatTrak inputs, and the StatTrak status of the output mirrors the inputs. StatTrak gloves do not exist in CS2 — the StatTrak 5-Covert contract is therefore knife-only.
contains_rare
The pool of Special items (knives and gloves) a CS2 case can drop as its yellow-tier (Special) reward. The 5-Covert knife/glove contract draws uniformly from this pool for the case that the input collection feeds.
Expected Value (EV)
The probability-weighted average market value of every possible output. Common metric in the wider CS2 trade-up community for ranking contract profitability. This calculator focuses on float and probability math; pricing-aware EV is planned for a later release.
Sources & References
- Counter-Strike Wiki — Trade Up Contract: the rules the calculator implements. Ten inputs of one grade and one quality, the output float taken from the average NORMALISED float of the inputs (not the raw average) rescaled into the output skin's own range, and outcome odds weighted by how many eligible skins each contributing collection offers. The wear bands are the same page: FN below 0.07, MW to 0.15, FT to 0.38, WW to 0.45, BS above.
- Counter-Strike official blog — Valve's own release notes. It is the only place a change to the contract rules is announced, and the reason the dataset carries a date: a single update can add a collection, retire one, or change which items qualify.
- Counter-Strike 2 on Steam — the build and patch feed used to date the collection dataset, and the storefront where the Steam Community Market rules that govern tradability actually live.