> ## Documentation Index
> Fetch the complete documentation index at: https://cs2cap.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Liquidity Score: Inputs and Formula Calculation

> Learn what the CS2Cap liquidity score means, what affects it, and how to use it when comparing CS2 items.

The liquidity score answers a simple question:

> **How easy should it be to sell this item near its current market price?**

Every item receives a score from `0` to `100`. A higher score means there is stronger evidence that the item can be sold without waiting a long time or accepting a large discount.

The score does **not** predict whether an item's price will rise or fall. It also does not mean an item is cheap, expensive, popular, or a good investment.

## Reading the score

|   Score  | What it usually means                                                                             |
| :------: | ------------------------------------------------------------------------------------------------- |
| `80-100` | **Very liquid.** Many completed sales, ready buyers, healthy listings, and broad market coverage. |
|  `60-79` | **Liquid.** Usually sellable, although one part of the market may be weaker.                      |
|  `30-59` | **Situational.** Selling quickly may require patience or a larger discount.                       |
|  `0-29`  | **Low liquidity.** Few confirmed sales, weak buy orders, thin listings, or incomplete data.       |

These ranges are a quick guide. The component scores explain why an item received its total.

## What makes up the score

The total comes from five parts:

| Part               | Maximum points | What it measures                                                              |
| ------------------ | -------------: | ----------------------------------------------------------------------------- |
| Listings count     |           `15` | How many items are actually listed at competitive prices                      |
| Valid buy orders   |           `25` | How close real buy orders are to seller prices, and how many buy orders exist |
| Sales volume       |           `45` | How often the item has actually sold recently                                 |
| Consistent pricing |            `5` | Whether recent prices are well covered and reasonably steady                  |
| Data coverage      |           `10` | How many independent sources support the score                                |

The result is rounded to the nearest whole number and kept between `0` and `100`. Missing information receives zero points for that part; the other parts are not increased to make up the difference.

Completed sales are the largest part of the score. A large number of listings cannot make an item perfectly liquid by itself.

### Listings count: 15%

This part looks at items that are currently for sale.

Only listings priced within 10% of the cheapest current listing count. An item listed far above the rest of the market does not make the item easier to sell, so it adds no points.

The first few listings matter the most. As the number grows, each extra listing adds less. This part reaches its maximum at 500 competitive listings.

Listings older than six hours are ignored.

<div className="liquidity-visual">
  <p className="liquidity-visual-title">Only competitive inventory counts</p>
  <p className="liquidity-visual-note">Fresh listings close to the cheapest current price provide useful evidence. Old or overpriced listings do not.</p>

  <img src="https://mintcdn.com/dadscap/uaq9e9JbBTCjpcMz/images/liquidity-depth.svg?fit=max&auto=format&n=uaq9e9JbBTCjpcMz&q=85&s=ac76c505f912589e004d63e5c74c8997" alt="Chart showing how listings near the market price earn up to fifteen points" className="liq-img" width="480" height="200" data-path="images/liquidity-depth.svg" />
</div>

### Valid buy orders: 25%

A listing shows what a seller wants. A buy order shows what a buyer is willing to pay right now.

The score compares buy orders with listings from the **same marketplace**. It never combines a cheap listing from one site with a high buy order from another site, because that does not represent a trade that can actually be made.

Seller fees are deducted from the buy order before it is compared with the listing price.

This part is split into:

* Up to `20` points for how close the buyer's offer is to the seller's price.
* Up to `5` points for the number of active buy orders.

A buy order worth 50% or less of the seller's price receives no price-closeness points. An offer worth 95% or more receives the full 20 points. Fifty active buy orders are enough to receive the full 5 points for buyer depth.

Clearly broken non-Steam data, such as a buy order more than 5% above the same site's listing price, is ignored.

<div className="liquidity-visual">
  <p className="liquidity-visual-title">A strong score needs a realistic exit price</p>
  <p className="liquidity-visual-note">Buyers close to the seller price provide most of these points. A deeper group of buyers adds extra confidence.</p>

  <img src="https://mintcdn.com/dadscap/uaq9e9JbBTCjpcMz/images/liquidity-bidask.svg?fit=max&auto=format&n=uaq9e9JbBTCjpcMz&q=85&s=6956c59c6028ebbe639914aac1a9cfc7" alt="Chart showing twenty points for buyer price and five points for the number of buy orders" className="liq-img" width="520" height="260" data-path="images/liquidity-bidask.svg" />
</div>

### Sales volume: 45%

Completed sales are the strongest evidence that an item is liquid.

CS2Cap combines Steam sales counts with completed sales reported by supported marketplaces. It considers three time periods:

* Sales during the last 24 hours provide 50% of this signal.
* The daily average from the last 7 days provides 30%.
* The daily average from the last 30 days provides 20%.

Recent sales matter the most, but the longer periods prevent one unusually quiet day from making a regularly traded item appear inactive.

The points rise quickly when an item begins selling regularly, then rise more slowly. A combined rate of 100 sales per day receives the full 45 points.

This part counts recorded sales only. It does not treat removed listings, expired listings, inventory resets, or missing marketplace pages as sales.

<div className="liquidity-visual">
  <p className="liquidity-visual-title">Completed sales matter most</p>
  <p className="liquidity-visual-note">Regular sales provide much stronger evidence than listings simply disappearing from a marketplace.</p>

  <img src="https://mintcdn.com/dadscap/uaq9e9JbBTCjpcMz/images/liquidity-activity.svg?fit=max&auto=format&n=uaq9e9JbBTCjpcMz&q=85&s=c9d34d06b32f8d5aca68fd84403f7a81" alt="Completed-sales curve from zero to forty-five points" className="liq-img" width="480" height="200" data-path="images/liquidity-activity.svg" />
</div>

### Consistent pricing: 5%

This is a small supporting part of the score. It cannot make up for missing sales or weak buyers.

Half of the points come from price coverage. An item seen throughout more of the last 24 hours receives more credit than an item seen only once or twice.

The other half comes from price consistency. CS2Cap checks price movement separately for each marketplace and currency. This prevents normal price differences between marketplaces or currencies from looking like wild price swings.

<div className="liquidity-visual">
  <p className="liquidity-visual-title">Reliable prices need coverage and consistency</p>
  <p className="liquidity-visual-note">Each half contributes up to 2.5 points.</p>

  <div className="liquidity-stability" aria-label="Price consistency contribution meters">
    <div className="liquidity-meter-row">
      <span className="liquidity-meter-label">Recent coverage</span>

      <span className="liquidity-meter">
        <span className="liquidity-meter-fill liquidity-meter-fill-stability" />
      </span>

      <span className="liquidity-meter-value">up to 2.5 pts</span>
    </div>

    <div className="liquidity-meter-row">
      <span className="liquidity-meter-label">Price consistency</span>

      <span className="liquidity-meter">
        <span className="liquidity-meter-fill liquidity-meter-fill-volatility" />
      </span>

      <span className="liquidity-meter-value">up to 2.5 pts</span>
    </div>

    <div className="liquidity-meter-row liquidity-meter-scale">
      <span className="liquidity-meter-label" />

      <span className="liquidity-scale-ticks">
        <span>1</span>
        <span>2</span>
      </span>
    </div>
  </div>
</div>

### Data coverage: 10%

The score is more trustworthy when several independent sources agree.

| Evidence                                              | Maximum points |
| ----------------------------------------------------- | -------------: |
| Marketplaces with competitive listings                |            `4` |
| Marketplaces with both a usable listing and buy order |            `3` |
| Available completed-sales data                        |            `3` |

The first part reaches its maximum with 12 marketplaces. The second reaches its maximum with 3 marketplaces.

A confirmed result of zero sales still counts as available data. It tells us that the sales source was checked and found nothing, which is different from the source being unavailable.

Broken buy orders data can remove 2 points from this part.

## Using the score

Use the total score to compare items quickly, then check the component scores before making a decision.

For example:

* A high listing score with a low completed-sales score may mean many sellers are waiting for very few buyers.
* A high buyer score with low buyer depth may mean one good offer is supporting the market.
* A low data-coverage score means the total is based on fewer independent sources.

Liquidity describes how easily an item may trade today. It is not a promise that a sale will happen, and it is not a forecast of the item's future value.

### Missing or old data

Missing information receives zero points for the affected part. The other parts are not increased to hide the missing data.

* Marketplace listings and buy orders older than six hours are ignored.
* Steam sales counts older than two hours are ignored.
* A missing sales source is different from a checked source reporting zero sales.

An older saved score may appear briefly while a fresh score is being calculated.

Some field names are older than the current scoring method. Their current meanings are:

| API field         | Meaning                        |
| ----------------- | ------------------------------ |
| `listing_score`   | Listings near the market price |
| `gap_score`       | Buyers ready to purchase       |
| `volume_score`    | Completed sales                |
| `stability_score` | Consistent pricing             |
| `external_score`  | Data coverage                  |

The five component values always add up to the total liquidity score.

### API fields

Market analytics responses include the total and its component scores:

```json theme={"theme":"github-dark-default"}
{
  "liquidity": 62,
  "listing_score": 15,
  "gap_score": 24,
  "volume_score": 8,
  "stability_score": 5,
  "external_score": 10,
  "liquidity_last_updated": "2026-08-03T04:00:00Z"
}
```
