How to Build a CS2 Skin Market Index

Updated

API reference: POST /v1/archive/csfloat

cs2.sh provides daily CSFloat completed-sale averages and sale counts from 2022 onward, a consistent cash-market series for building a CS2 skin market index.

An index is defined by its basket, weighting method, base date, and missing-data rule. Those choices determine the result as much as the source prices do.

Index data available from cs2.sh#

POST /v1/archive/csfloat returns one daily row per item with date, price, and volume. price is the arithmetic average of all completed-sale prices on that UTC day; volume is the number of completed sales. The archive updates once or twice per day.

The response is keyed by exact market_hash_name and can include separate series under variants for supported Doppler and Gamma Doppler phases. Case Hardened tiers are not collected as CSFloat archive variants. The endpoint accepts up to 100 item names per request.

Turning sale series into an index#

Choose a fixed basket whose item identities match the intended segment. For a simple equal-weight index, find a common date on which every constituent has a completed-sale price, divide each later price by its own base-date price, and average those rebased levels.

Keep only dates that satisfy the published coverage rule. Requiring every constituent produces a complete-case index with an irregular calendar; allowing partial baskets changes weights as coverage changes. Forward-filling introduces a derived price for days without a completed sale.

Volume can support an alternative weighting or a minimum-activity filter, but the methodology should state whether weights are fixed, periodically reconstituted, or recalculated daily. Variant and base-item series should not be collapsed unless that aggregation is part of the definition.

Applicable endpoint#

Endpoint Returns Plans
POST /v1/archive/csfloat Daily completed-sale average price and count from 2022 Scale, Enterprise

Index caveats#

  • The daily CSFloat price is an arithmetic mean. Different floats, stickers, or paint seeds sold on different days can move it even when the underlying finish is stable.
  • Missing dates mean no returned archive aggregate for that item. They are not zero-price observations.
  • Selecting only items that remain popular today can introduce survivorship bias into a historical index.
  • Replacing a constituent or changing the base date creates a different series. Store the methodology beside the index values.

Use CSFloat sales history to inspect constituent coverage before fixing the basket.