I Backtested What Actually Predicts CS2 Skin Returns (And Caught My Own Tool Lying to Me)
Description and use
The author backtested CS2 market signals, finding that inverted momentum, retired cases, and low prices predict returns after Steam’s fee. Two bugs in the backtest were identified and fixed.
Problem
Determine whether market signals such as momentum, case retirement, and price level predict CS2 skin returns after Steam’s 15% fee.
Outcome
Inverted momentum predicts negative returns; retired cases yield +48% gross (+25.8% after fee); low‑price items outperform high‑price ones; no short‑term strategy clears the fee; two bugs (future leakage and fee miscalculation) were identified and fixed.
Workflow
- Collect 3‑year price history via SkinVault’s cache
- Compute candidate factors (momentum, price level, case‑retirement status, etc.)
- Calculate information coefficient (IC) for each factor against future returns (7, 30, 90, 365 days) cross‑sectionally on the same date
- Identify significant predictors and quantify their ICs
- Validate backtest logic by re‑running after each code change
- Document bugs and correct them
- Publish findings and source code
Evidence
I built a tool to track my own CS2 (Counter-Strike 2) skin inventory — what it's worth, what I actually made after the Steam Market's 15% fee.
For each candidate factor (momentum, price level, case-retirement status, and a few others), I measured its information coefficient (IC): the rank correlation, across items on the same date, between the factor's value and the item's return over some later horizon (7, 30, 90, 365 days).
Finding 1: momentum is inverted… Items that had just risen went on to perform worse than items that hadn't, at every horizon I tested from 7 days out to a year.
Finding 2: retired cases are the one edge that survives the fee… cases that had been pulled from the active drop pool returned a median +48% per year (+25.8% after the fee).
Finding 3: price is a ceiling… Items under R$1 returned a median +73% over a year; items above R$500 returned +8.7%.
The backtest caught two bugs in itself… A fee miscalculation. The portfolio fee model treated Steam's cut as a percentage of the buy price rather than the sell price.
Survivorship bias. The dataset only covers items that still trade.
- Record date: 2026-10-23T00:11:17.048Z