CS2 trade-up contracts are one of the few gambling-adjacent systems in Counter-Strike where the outcome is fully deterministic in math — only the final skin selection is random. If you know the float formula, understand collection weighting, and can calculate expected value (EV) against live input costs, trade-ups become a solvable optimization problem rather than a coin flip.
This guide breaks down the complete mathematical framework as of August 2026, including the normalized float system confirmed since the October 2024 Retakes Update, the October 2025 Covert-to-knife expansion, and reviews of the four best trade-up calculator tools available today.
How Trade-Up Contracts Work
A trade-up contract consumes 10 skins of the same rarity and returns 1 skin of the next-higher rarity. The output is determined by two independent systems:
- Collection selection — the game randomly picks one of your 10 input skins, then randomly selects an output from that skin's collection at the next rarity tier
- Float calculation — the output wear is computed deterministically from all 10 input floats using normalized averaging
Rarity Chain
| Input rarity | Output rarity |
|---|---|
| Consumer Grade (white) | Industrial Grade |
| Industrial Grade (light blue) | Mil-Spec |
| Mil-Spec (blue) | Restricted |
| Restricted (purple) | Classified |
| Classified (pink) | Covert |
| Covert (red) | ⚠ See below |
October 2025 update: Valve added 5-Covert → 1 knife/glove contracts from specific collections. This opened a new supply channel for knives and crashed some knife prices while spiking Covert input demand. Always verify which contract type you are running.
Hard Rules
- All 10 inputs must be the same rarity
- StatTrak™ inputs produce StatTrak™ outputs — StatTrak and non-StatTrak cannot mix
- Souvenir skins cannot be used in trade-up contracts
- Contraband items (M4A4 Howl) cannot be used
- Consumer Grade and Contraband are excluded from the chain entirely
The Golden Float Formula (Normalized)
This is the most misunderstood mechanic in CS2 trade-ups. Output float is NOT the simple average of your 10 raw input floats.
Since the October 2024 Retakes Update, CS2 uses relative float mapping (normalization). Each skin has its own min/max float range, and the game converts every input to a 0–1 percentage within that skin's range before averaging.
The Three-Step Formula
Step 1 — Normalize each input:
Adjusted Float = (Input Float − Input Min) / (Input Max − Input Min)
Step 2 — Average all 10 adjusted values:
Average Adjusted Float = (Adj₁ + Adj₂ + ... + Adj₁₀) / 10
Step 3 — Map to the output skin's range:
Output Float = Output Min + (Average Adjusted Float × (Output Max − Output Min))
The output min/max come from the output skin, not the inputs. This is why Factory New inputs can produce Minimal Wear outputs — and why the "filler strategy" works.
Worked Example
Goal: Craft a Classified skin with the lowest possible float.
Inputs: 10× P250 | Supernova (Restricted, float range 0.00–0.40), each at raw float 0.05
| Step | Calculation | Result |
|---|---|---|
| Normalize one input | (0.05 − 0.00) / (0.40 − 0.00) | 0.125 (12.5%) |
| Average (all 10 identical) | 0.125 | 0.125 |
| Output: Desert Eagle Conspiracy (range 0.00–0.30) | 0.00 + (0.125 × 0.30) | 0.0375 (Factory New) |
| Output: Five-SeveN Fowl Play (range 0.00–1.00) | 0.00 + (0.125 × 1.00) | 0.125 (Minimal Wear) |
Same inputs, different outputs — the output skin's float cap determines the final wear tier.
Wear Tier Boundaries
| Tier | 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 |
A float of 0.0699 vs. 0.0701 can mean a 2–5× price difference on liquid skins — that 0.0002 gap is where trade-up profit lives or dies.
Calculating Outcome Probabilities
The skin you receive is random; the float is not. Probability depends on how many inputs come from each collection and how many skins exist at the next rarity in that collection.
The Probability Formula
For a specific output skin S from collection C:
P(S) = (Inputs from C / 10) × (1 / Skins at next rarity in C)
Example: Mixed-Collection Contract
You submit:
- 7× Restricted skins from the Breakout Collection
- 3× Restricted skins from the Phoenix Collection
Breakout Collection has 3 Classified skins at the next tier. Phoenix has 2 Classified skins.
| Output skin (Collection) | Calculation | Probability |
|---|---|---|
| Any Breakout Classified | (7/10) × (1/3) | 23.33% each |
| Any Phoenix Classified | (3/10) × (1/2) | 15.00% each |
Total Breakout probability: 7/10 = 70% Total Phoenix probability: 3/10 = 30%
Collection Stacking Strategy
To target a specific output, maximize inputs from its collection:
| Inputs from target collection | Probability of that collection's output |
|---|---|
| 10/10 | 100% (guaranteed collection) |
| 9/10 | 90% |
| 7/10 | 70% |
| 5/10 | 50% |
| 1/10 | 10% |
You cannot guarantee a specific skin within a collection unless that collection has only one skin at the next rarity tier.
The Filler Strategy
Because normalization uses relative floats, you can drag down the average adjusted float with cheap, ultra-low-float skins from any collection:
- Buy 1–2 expensive skins from your target collection (determines which outputs are possible)
- Fill remaining 8–9 slots with the cheapest FN skins available (e.g., $0.10 skins at 0.001 float)
- The fillers pull the average adjusted float toward 0%
- If you hit the target collection's output, it lands in Factory New
Cost impact: Instead of 10× $4 inputs ($40), you might spend $4 + $4 + 8× $0.15 ($1.20) = $9.20 for the same FN probability on hit.
This is the core technique used by every profitable trade-up calculator.
Expected Value (EV) and ROI Analysis
A trade-up is profitable when its expected value exceeds input cost after marketplace fees.
The EV Formula
EV = Σ (P(outcome_i) × Price(outcome_i) × (1 − sell_fee)) − Total Input Cost
Where:
- P(outcome_i) = probability of each possible output (from collection math above)
- Price(outcome_i) = current market price of that output at the predicted wear tier
- sell_fee = marketplace commission on selling the output
- Total Input Cost = sum of all 10 input purchase prices
Break-Even Threshold
Before calculating EV, know your break-even output price:
| Sell venue | Fee | Break-even multiplier |
|---|---|---|
| Steam Community Market | 15% (10% + 5%) | Input cost / 0.85 |
| CSFloat | 2% | Input cost / 0.98 |
| Skinport | 8% (6% above €1,000) | Input cost / 0.92 |
| Buff163 | ~2.5% | Input cost / 0.975 |
Example: $50 input cost, selling on CSFloat:
- Break-even output price = $50 / 0.98 = $51.02
- If EV of outputs > $51.02, the contract is +EV before variance
ROI Calculation
ROI = (EV / Total Input Cost) × 100%
| ROI | Interpretation |
|---|---|
| < 100% | Negative expected return — you lose money on average |
| 100% | Break-even before variance |
| 100–120% | Modest +EV — viable with low input costs |
| 120%+ | Strong +EV — verify input prices are actually available |
| 150%+ | Excellent on paper — check liquidity and float availability |
Critical caveat: +EV means profitable on average over many attempts. Any single contract can still miss every valuable outcome. Variance is real.
Worked EV Example
Contract: 10× Restricted @ $2.00 each = $20.00 input
| Output | Probability | Price (predicted wear) | Weighted value |
|---|---|---|---|
| Skin A (FN) | 23.33% | $45.00 | $10.50 |
| Skin B (MW) | 23.33% | $18.00 | $4.20 |
| Skin C (FT) | 23.33% | $8.00 | $1.87 |
| Skin D (FN) | 15.00% | $30.00 | $4.50 |
| Skin E (MW) | 15.00% | $12.00 | $1.80 |
| Total EV (gross) | $22.87 |
After CSFloat 2% sell fee: $22.87 × 0.98 = $22.41 net EV Profit: $22.41 − $20.00 = +$2.41 (+12% ROI)
This contract is +EV — but you have a 76.67% chance of hitting an outcome worth less than $20. The math works over 100 attempts, not every single try.
Risk Management and Variance
| Risk factor | Mitigation |
|---|---|
| Input price spikes | Buy inputs before committing; recalculate EV at purchase time |
| Output price drops | Sell immediately or set a stop-loss price |
| Missing target collection (70% stack) | 30% of contracts hit the wrong collection entirely |
| Float miscalculation | Use a calculator — never eyeball normalized floats |
| Liquidity | +EV means nothing if you cannot buy inputs at listed prices |
| Steam Trade Protection (7-day lock) | Outputs cannot be re-traded for 7 days after receipt |
Bankroll rule: Never invest more than 5–10% of your skin budget in a single trade-up contract unless you have verified +EV across 50+ simulated runs.
Top Trade-Up Calculator Tools (2026)
Manual EV calculation is impractical at scale. These four tools automate the math:
Comparison Table
| Tool | URL | Scanner | Float math | Fee-adjusted EV | Price source | Free tier | Best for |
|---|---|---|---|---|---|---|---|
| TradeUpSpy | tradeupspy.com | Weekly profitable picks | Normalized | Yes | SteamMarket/SkinSnipe API | Yes (+ Premium) | Tracking P&L over time |
| TradeUpX | tradeupx.app | Full collection scanner | Normalized | Yes (configurable) | Cached multi-market | Yes | Discovering new +EV contracts |
| TradeUp.gg | tradeup.gg | — | — | — | — | — | ⚠ Domain parked (see note) |
| SkinPulse | skinpulse.pro | Profit threshold filter | Normalized | Yes (marketplace fees) | 8,000+ skin database | Yes | Quick EV/break-even checks |
TradeUpSpy — The Analytics Platform
URL: tradeupspy.com
TradeUpSpy is the most feature-complete trade-up platform, combining a calculator, weekly profitable contract picks, and long-term P&L tracking.
Key features:
- Full trade-up calculator with normalized float display ("true average after normalizing each input")
- Weekly profitable trade-ups — curated contracts published twice per week with fixed prices
- Stats tracker — log completed contracts, track profit/loss over time
- Chrome extension for Steam inventory sync
- Outcome price override (manually adjust output prices for conservative estimates)
- Souvenir and uncapped-float filters
- Premium plan: extra saved trade-ups, advanced statistics, ad-free
Strengths: Best for traders who execute multiple contracts and want to verify their long-term edge with data.
Limitations: Premium features paywalled; weekly picks can go stale if input prices move before you buy.
TradeUpX — The Scanner-First Calculator
URL: tradeupx.app
TradeUpX emphasizes automated discovery — its scanner ranks all possible contracts in a rarity tier by ROI and EV without manual input selection.
Key features:
- Trade-Up Scanner — scans all collections in a selected tier, ranks by ROI
- EV Calculator — manual 10-input builder with editable prices and floats
- Output Simulator — preview every result, drop chance, and output float
- Configurable marketplace fee in EV calculation (default ~13% gross / 87% net)
- 34,790+ price points, 1,200+ skin guides
- No account or login required
- Supports 5-Covert → knife contracts (post-October 2025)
EV formula used: EV = Σ(prob_i × price_i × 0.87) − total_input_cost
Strengths: Fastest way to discover new +EV contracts across the entire game. Clean, no-login UX.
Limitations: Cached prices may lag live listings by hours; always verify input availability before buying.
TradeUp.gg — Status Note
URL: tradeup.gg | Contact: [email protected]
TradeUp.gg appears in community tool lists and outreach directories, but as of August 2026, the public domain displays a domain-for-sale page rather than an active calculator. The contact email ([email protected]) may still reach the original developers.
Recommendation: Use TradeUpX or TradeUpSpy for active calculator functionality. Monitor tradeup.gg for potential relaunch.
SkinPulse — The Quick EV Calculator
URL: skinpulse.pro/tools/trade-up
SkinPulse offers a streamlined trade-up calculator focused on fast EV and break-even analysis.
Key features:
- Search 8,000+ skins with autofill pricing
- Per-row float input with instant output wear prediction
- Break-even threshold calculation (minimum output value to profit)
- Fee-adjusted EV (accounts for 15% Steam or 3–7% third-party fees)
- Profit threshold filter — quickly identify viable contracts
- Wear tier reference table built into the UI
Strengths: Fastest path from "I have these 10 skins" to "is this profitable?" — minimal UI friction.
Limitations: No automated scanner; no long-term P&L tracking; smaller skin database than TradeUpX.
Tool Workflow Recommendation
| Step | Tool | Action |
|---|---|---|
| 1. Discover candidates | TradeUpX Scanner | Scan Restricted→Classified or Classified→Covert tiers |
| 2. Verify float math | TradeUpSpy Calculator | Input exact floats, confirm normalized average |
| 3. Quick EV check | SkinPulse | Confirm break-even threshold and fee-adjusted EV |
| 4. Buy inputs | CSFloat / Skinport | Purchase at the prices assumed in the calculator |
| 5. Execute in-game | CS2 Trade-Up Contract | Submit the 10 skins |
| 6. Track result | TradeUpSpy Stats | Log outcome, update long-term P&L |
Common Pitfalls (Safety Checklist)
Before submitting any trade-up contract, verify:
- All 10 inputs are the same rarity (and same StatTrak status)
- No Souvenir or Contraband items in the contract
- Float math uses normalization, not raw averages
- Output float prediction accounts for the output skin's min/max range
- Collection probabilities match your intended stack ratio (e.g., 7/3 not accidental 5/5)
- Input prices verified at current listings, not 7-day-old calculator snapshots
- EV calculated after sell fees on your chosen marketplace
- You accept variance — +EV does not guarantee profit on a single attempt
- Output will be Trade Protected for 7 days — cannot instantly re-trade
Profitable Contract Archetypes (August 2026)
These patterns consistently appear in scanner results. Verify live prices before executing — market conditions shift weekly.
| Archetype | Input tier | Strategy | Typical ROI range |
|---|---|---|---|
| Float-capped FN craft | Restricted → Classified | Filler strategy targeting outputs capped below 0.50 float | 110–140% |
| Single-collection stack | Any → next tier | 10/10 collection stack for guaranteed collection output | 105–125% |
| StatTrak premium play | Classified ST → Covert ST | Exploit StatTrak price gaps on low-population collections | 100–130% |
| Covert → Knife (5-input) | 5× Covert → Knife/Glove | Post-Oct 2025 mechanic; high variance, high upside | 80–150% |
| Souvenir-adjacent avoidance | Restricted → Classified | Target collections without Souvenir competition for inputs | 110–125% |
take.skin Trade-Up Resources
For hands-on simulation with real-time pricing, use the CS2 Trade-Up Calculator on take.skin. It pulls live market prices, calculates EV and outcome probabilities, and predicts output floats using the same normalized formula described above.
For the complete normalization deep-dive with worked examples, see our published guide: CS2 Trade-Up Contract Ultimate Guide.
Check input and output skin prices on take.skin before every contract — a $0.50 input price change across 10 skins swings EV by $5.



