BUFF sale history is now available - POST /v1/archive/buff returns sale prices and daily total supply since September 2024.

How to Calculate CS2 Skin Fair Value

A CS2 skin's fair value is the cash price supported by several independent signals: current sell listings, live buy orders, recent completed sales, liquidity, and the attributes of the exact skin. The cheapest listing alone is not fair value, and neither is the Steam Community Market price.

Fair value is useful anywhere a skin needs one defensible number: an inventory tracker, marketplace, trade offer, portfolio, cashout, or skin payment. The goal is not to predict the highest price a seller might eventually receive. It is to estimate what the item is worth now, in cash, with enough evidence that the number can survive a real sale.

The five inputs that determine fair value#

1. Current sell listings#

An ask is the lowest price at which someone currently lists the item. Compare asks across several cash marketplaces rather than choosing the cheapest one. A median is harder for one stale or manipulated listing to move than a minimum or mean.

Keep listing counts beside the price. An ask supported by hundreds of active listings carries more evidence than the only listing for a thin collector item.

2. Live buy orders#

A bid is the highest price a buyer currently offers. Bids matter most for illiquid skins because they show what somebody has committed to pay, not what a seller hopes to receive.

Use several marketplaces and compare them in cash terms. Steam bids settle to Steam Wallet funds, so treating one Steam dollar as one withdrawable dollar overstates the skin's cash value.

3. Completed sales#

Listings and orders describe the market now. Completed sales show where skins have actually changed hands.

cs2.sh provides CSFloat daily average sale prices and volume from 2022, Steam daily median sale prices and volume from April 26, 2013, BUFF sales with daily total supply from September 6, 2024, and Youpin sales from November 12, 2025. Keep the sources separate at first: an average, a median, and a set of individual sales do not have the same statistical meaning.

Recent sales prevent an optimistic order book from defining fair value by itself. Long sale history also shows whether today's price is ordinary or far above the level where the item has traded for months.

4. Liquidity#

Liquidity answers how readily the skin can sell near its quoted price. cs2.sh classifies every covered item and supported variant by recent sale volume and traded value, with an estimated sale-time range.

A liquid case can be valued close to the market's listing consensus because thousands of comparable sales support it. An illiquid knife should sit closer to the best credible exit price because the next buyer may be weeks away. The same rule applies to variants: a base Doppler and one of its phases can have very different liquidity.

5. The exact skin#

Wear, float, Doppler phase, fade percentage, paint seed, StatTrak status, souvenir status, and stickers can separate an ordinary copy from a collector item.

cs2.sh returns separate prices for supported Doppler, Gamma Doppler, and Case Hardened variants. BUFF float and fade data splits items into live price ranges, so a low-float skin does not have to inherit the floor for its entire exterior.

Rare paint seeds and applied stickers still need individual inspection. If the available market data describes only the generic item, it cannot establish the premium of the exact asset.

A practical fair-value calculation#

Start with four numbers rather than one:

Signal A practical definition
Market consensus The median current ask across trustworthy cash marketplaces
Buyer demand The median live bid after putting every source in comparable cash terms
Recent sales A volume-aware completed-sale value, calculated separately per source
Conservative floor The weakest credible exit among sales, demand, and a genuine listing

For liquid items, fair value can sit near market consensus. As liquidity weakens, move the estimate toward the conservative floor:

fair value = liquidity weight * market consensus + (1 - liquidity weight) * conservative floor

This is a framework rather than a universal coefficient. The important behavior is that weak evidence makes the estimate more conservative. It should never make an uncertain item more valuable.

Use each marketplace's own updated_at and collected_at timestamps when comparing prices. Two numbers returned in the same API response may have been observed at different times, and a recently collected price can still be stale at its source.

Why the Steam price is usually not fair cash value#

Steam Community Market prices settle to Steam Wallet funds, which cannot be withdrawn as cash. Fees create an additional gap between the displayed buyer price and what a seller receives. Steam also has a price cap that makes it poor evidence for skins trading above that limit.

Steam remains valuable for transaction volume and demand, especially on lower-priced items. Use its sale history and buy orders after accounting for wallet-to-cash value, but do not average an unadjusted Steam price with cash-market prices.

How fair-value estimates resist manipulation#

Three simple choices remove much of the influence a manipulator gets from one market:

  • Use medians across marketplaces so one extreme listing or buy order stays in the tail.
  • Compare current prices with completed sales over several time windows.
  • Give each day equal weight in long-run medians instead of counting every price observation. A short pump can print many high ticks, but it still occupies only a few days of history.

Liquidity should also be checked against the item's own evidence. If an item has too few live listings or recent sales for its assigned tier, treat it as less liquid. Evidence can justify a lower-confidence valuation; it should not upgrade a weak market into a stronger one.

Sometimes the honest fair value is unknown. A months-old sale with no current listing is not a current market. Neither is a live listing for an item with no evidence of a recent sale. Showing no estimate is more accurate than turning missing evidence into zero or repeating a stale number.

AssetPay's fair-value model#

AssetPay is a production example of this method. Its pricing engine uses cs2.sh as its market-data source for current asks and bids across six marketplaces, CSFloat, Steam, and Youpin completed sales, per-variant liquidity, and BUFF float ranges.

In AssetPay's explanation of CS2 skin pricing, the company describes pricing roughly 30,000 items each hour. Its model combines a multi-market ask consensus with live demand and completed sales, then moves illiquid items toward a conservative exit value. It also checks long price history for manipulation and declines to publish a value when the evidence is too weak.

That same structure works beyond skin payments. A marketplace can use it for reference prices, an inventory tracker for portfolio value, and a trader for deciding whether a listing is genuinely cheap or merely disconnected from demand.

cs2.sh data used for fair value#

Question Data Endpoint
What are sellers asking now? Cross-market ask, ask_volume, and timestamps POST /v1/prices/latest
What will buyers pay now? Cross-market bid, bid_volume, and full CSFloat buy orders POST /v1/prices/latest, GET /v1/market/csfloat/latest
Does the item actually sell? Completed-sale price and volume BUFF, CSFloat, Steam, and Youpin archive endpoints
How quickly is it likely to sell? Liquidity bucket and estimated sale time GET /v1/liquidity/items
Does float or fade change the price? BUFF float, fade, and combined ranges GET /v1/market/buff/latest
Is this the correct item or variant? Canonical item identity and variant structure GET /v1/schema

The current-price reference defines the available fields per marketplace. The liquidity reference explains how sale activity becomes a liquidity bucket, and the BUFF range reference defines the float and fade boundaries.