# How to Calculate CS2 Skin Fair Value

> Fair value for a CS2 skin is a **defensible cash price** built from multiple listing markets, optional buy-order exit data, and optional sales confirmation — never a single marketplace minimum and never an averaged Doppler phase.

## The five inputs

| # | Input | Source on CSPriceAPI |
|---|---|---|
| 1 | **Current listing asks** | `POST /v1/prices/latest` across cash markets |
| 2 | **Buy-side / exit bids** | `GET /v1/prices/youpin/buyorder` (full book) |
| 3 | **Wear / float tier** | `GET /v2/prices/float-ranged` for bucket premiums |
| 4 | **Completed sales** | `GET /v1/market-sales/search` |
| 5 | **Liquidity** | `count` fields + sales frequency |

## Core formula (listing fair value)

For commodity skins (no special float/sticker):

```
fair_listing = median(cash_market_asks)   # trim top/bottom outlier if N≥5
fair_exit    = best_credible_bid_after_fees
fair_conservative = min(fair_listing, fair_exit) adjusted for thin count
```

**Cash markets** (withdrawable): YouPin, BUFF, Skinport, SkinBaron, CSFloat, DMarket, Waxpeer, … — see [data coverage](/docs/data-coverage).

**Exclude Steam** from cash median unless you explicitly model wallet value separately.

## Quick start — one item, all markets

```bash
curl -s -X POST "https://api.cspriceapi.com/v1/prices/latest" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": ["AK-47 | Redline (Field-Tested)"],
    "markets": "youpin,buff163,skinport,skinbaron,csfloat,dmarket"
  }'
```

Buy-order exit (YouPin):

```bash
curl -s "https://api.cspriceapi.com/v1/prices/youpin/buyorder" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Doppler & Gamma — phase is mandatory

Fair value for `★ Butterfly Knife | Doppler (Factory New)` **without** `doppler_phase` is meaningless.

```json
{"market_hash_name": "★ Butterfly Knife | Doppler (Factory New)", "doppler_phase": "Sapphire", "price": 9200.00}
{"market_hash_name": "★ Butterfly Knife | Doppler (Factory New)", "doppler_phase": "Phase 3", "price": 980.00}
```

Filter to the exact phase before any median. See [Doppler guide](/resources/how-to-get-doppler-phase-price-data).

## Float-ranged fair value

When float drives price (low FN AK, rank-relevant knives):

```bash
curl -s "https://api.cspriceapi.com/v2/prices/float-ranged?market=youpin" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Match the item's float to the bucket `min`/`max` boundaries. Bucket median beats global median for wear-sensitive items.

## FX and market roles

| Region | Markets | Role in fair value |
|---|---|---|
| China wholesale | YouPin, BUFF, C5Game, EcoSteam | **Anchor** — highest volume, first mover |
| Western retail | Skinport, SkinBaron, CSFloat | Retail premium/discount vs CN |
| Steam | Steam | Reference only — wallet trap |

Example: YouPin ¥1,000 ≈ $139 at 7.2 FX. Skinport €18 ≈ $19.50. Median cash ≈ $139 CN-equivalent vs $19.50 EU — **different buyer pools**. For "global fair listing," use median in **one currency** after conversion, or report regional bands.

## Detecting manipulation

Red flags:

- One market 40%+ below all others with `count == 1`
- No recent [sales](/sales-data) at any price near the outlier
- Sudden 24h drop on single market only

Mitigation:

- Use **median**, not minimum
- Require `count >= 5` per market used
- Cross-check sales search

## Worked example

**Item:** `M4A1-S | Printstream (Field-Tested)`

| Market | Ask | Currency |
|---|---:|---|
| YouPin | ¥980 | CNY |
| BUFF | ¥975 | CNY |
| Skinport | €118 | EUR |
| CSFloat | $128 | USD |

CN median ≈ ¥977.5 → ~$135 USD at 7.2. Western asks ~$128–130 USD. **Fair listing band: $128–135 USD equivalent** depending on FX.

YouPin buyorder top bid ¥920 → ~$128 exit. Conservative fair ≈ **$128** (bid-limited).

## When fair value is not enough

Sticker crafts, Blue Gem seeds (#661), and souvenir combos need **individual comps** from [High-Tier Database](/apps/hightier) or recent sales — generic API rows describe the **base skin**, not the craft premium.

## Related

- [Value full inventory](/resources/how-to-value-cs2-inventory)
- [Steam prices (reference only)](/resources/how-to-get-steam-market-prices)
- [Historical context](/resources/how-to-get-historical-cs2-skin-prices)
