The KNIVES index sums every priceable knife variant in the CS2 catalog — every weapon × pattern × wear × StatTrak combination — into a single daily total. Because knives are rare-drop items with a fixed supply curve and high per-unit prices, the index is one of the cleanest views into the high-end skin market.
Methodology
A SKU enters the daily total when its cross-market median has been refreshed in the last 24 hours and at least one marketplace is reporting. Souvenir knives don't exist on the open market in the way other categories do, so the souvenir exclusion has limited impact here — what you're tracking is essentially the entire knife market on a delay of one daily aggregation cycle.
FAQ
Knives Index — Frequently Asked Questions
Why is the Knives index more volatile than the others?
Knives are low-supply, high-unit-price items with thin marketplaces. A single big listing or sale can move medians for a SKU by several percent, and the index sums many such SKUs. Pair that with the rare-drop nature of every covert knife — supply is fixed, demand swings with operation drops and StatTrak meta — and the Knives index will swing harder than ALL_ITEMS or the sticker indexes on any given day.
Are knife trade-up outputs (rare special items) counted in the Knives index?
Yes. Every priceable knife variant — operation drop or trade-up output, regular or StatTrak — is counted as long as it has a fresh cross-market median. The index makes no distinction between drop sources; if it sells with a real price, it counts.
Does the Knives index include souvenir or vanilla knives?
Souvenirs are excluded from every index, so no souvenir knives count. Vanilla (no-pattern) knives like the Vanilla Karambit are counted — they're regular priceable variants and trade like skinned knives.
What is a CS2 market index?
A market index is the total median market value of every priceable variant inside a defined slice of the CS2 economy. CSSkinLab snapshots every index daily, so each chart point is the sum of the cross-market median price of every wear × StatTrak combination for every item in that slice on that calendar day. It's the cleanest way to track whether a category is rising, falling, or flat without watching individual skins.
How is the index total calculated?
For each priceable SKU in the slice, the worker takes the latest cross-market median price (filtered to entries with at least one market reporting and a snapshot from the last 24 hours), then sums those medians in cents. SKUs with stale or missing prices are excluded from the day's snapshot, which is why the SKU count moves slightly day-to-day.
Why use the median price instead of an average or Steam price?
Single-marketplace prices swing on small volume, and arithmetic averages get pulled around by outliers — one mispriced listing on a low-volume skin shifts the mean. The median is robust against those distortions, and pulling it from multiple marketplaces (Steam Market, Buff163, CSFloat, Skinport, DMarket) cancels out platform-specific noise. The result is a stable, comparable number across days.
How often do the indexes update?
Snapshots run once per day at 06:00 UTC. The chart on each detail page replays the historical snapshots; the totals shown at the top of each card use the most recent snapshot. Inter-day price movement isn't reflected — if you want minute-level prices, the per-item pages and the trade-up calculators consume the same medians at full refresh cadence.
What's excluded from the indexes?
Souvenir skins are excluded entirely from every index because they live in a separate, low-liquidity sub-market. The Cases index includes weapon cases only — souvenir packages, sticker capsules, autograph capsules, and Armory boxes are intentionally out. SKUs without a recent cross-market median (no marketplace reporting in the last 24 hours) are also dropped from that day's total so the chart doesn't drift on stale data.
What's the difference between ALL_ITEMS and the categorical indexes?
ALL_ITEMS sums every priceable variant in the catalog — the broad market. The categorical indexes (Knives, Gloves, Cases, Stickers, Agents, Charms, Patches) each sum only their slice. Because of overlap rules and exclusions they don't add up to ALL_ITEMS exactly: ALL_ITEMS also covers regular weapon skins, music kits, and other priceable items that don't have their own top-level index yet.
How do collection indexes work?
Each CS2 collection (e.g. The Mirage Collection, The Train 2025 Collection) gets its own daily index that sums every priceable variant of every skin in that collection. STICKER_SLAB items are excluded so the index reflects skin float-and-wear permutations rather than sticker capsule contents. Collections without any priceable SKU on a given day produce no snapshot for that day — gaps in the chart are real, not bugs.
How do the day, week, and month deltas get calculated?
Each delta compares today's snapshot against the snapshot from N days ago — 1 day for the D delta, 7 days for W, 30 days for M. The percentage is `(today − thenAgo) / thenAgo`. If that historical snapshot doesn't exist (e.g. for a brand-new collection), the corresponding delta renders as `—` instead of a misleading zero.
Can I use the indexes to track CS2 market trends?
Yes — that's the explicit purpose. ALL_ITEMS gives you a broad-market trendline. The categorical indexes show whether knives, cases, or stickers are leading or lagging. Collection indexes are useful for spotting capsule-driven moves (a recent operation pushing one collection up while everything else flatlines). The 30D / 90D / 1Y / All toggle on each chart lets you frame the time window you care about.
Why does my collection index show $0 or no chart?
Either no SKU in that collection has a fresh cross-market median (every skin is below the minimum-marketplace threshold or stale beyond 24 hours), or the collection only contains items the index excludes (souvenirs, sticker slabs). New collections also take one daily aggregation cycle — the 06:00 UTC run — to appear. If a previously populated collection drops to $0, it's almost always a temporary price-feed gap that resolves on the next run.