Resolved Markets logoResolved Markets logo
Abstract blue gradient background with a soft light streakAbstract blue gradient background with a soft light streak
Analytics

Scoring liquidity across markets

Not all markets are equally tradable. A simple liquidity score from spread and depth lets you rank markets and time execution for when the book is deepest.

8 min read · Updated Jun 22, 2026

  • Spread + depthInputs
  • Comparable scoreOutput
  • All categoriesAcross
  • Per snapshotUpdates

A signal is only worth as much as your ability to trade it. A liquidity score, built from the spread and the resting depth on the book, turns "is this market tradable right now?" into a number you can rank, filter, and schedule around.

Two ingredients carry most of the information about tradability: how tight the spread is, and how much size is resting near the touch. A market with a penny spread and deep books is easy to move size in; a wide spread on a thin book is not, no matter how good your signal looks.

What goes into the score

Spread

Tighter is better. The spread is the immediate cost of crossing, so it anchors any tradability measure.

  • Lower cost to cross
  • From best_bid / best_ask
  • Compared to baseline

Depth

More resting size near the touch means you can trade larger before moving the price.

  • Bid/ask depth totals
  • Size you can absorb
  • Resilience to your order

Balance

A book that is deep and even on both sides is healthier than one propped up entirely on one side.

  • Two-sided depth
  • Imbalance penalty
  • Stability read

Building the score from snapshot fields

Every snapshot already carries the three numbers you need, so there is nothing to reconstruct. Normalise each input against the market’s own recent history, a raw spread or a raw depth total means nothing until it is scaled to what that book usually looks like, then combine them into a single comparable figure.

  • spreadCost to cross, lower scores higher
  • bid_depth_totalResting size on the bid side
  • ask_depth_totalResting size on the ask side
  • mid_priceReference for sizing the spread in ticks
  1. 1Pull snapshots over a rolling window so each market is scored against its own recent baseline, not an absolute threshold.
  2. 2Invert and normalise the spread, tight is good, and normalise the summed depth so deeper books score higher.
  3. 3Penalise imbalance: take how far bid and ask depth diverge and dock the score, since a one-sided book is fragile.
  4. 4Blend the parts with weights you can defend, and re-score per snapshot so the number tracks the book through the day.

What a score unlocks

  • Rank markets so you deploy a strategy where it is actually executable, not just where the signal fires.
  • Schedule execution for the hours when a market’s score is highest, books are not equally deep all day.
  • Filter out thin markets automatically, so a backtest does not assume size that never existed.
  • Compare across categories on one scale, crypto, sports, weather, using the same spread-and-depth recipe.
Comparable by construction

One recipe, every market

Because every snapshot exposes spread and depth the same way across categories, the same scoring recipe ranks a 5-minute BTC book against a daily weather market on equal footing. That comparability is the whole point, it tells you where to put your size.

Where a simple score falls short

A spread-and-depth score is a snapshot of resting liquidity, it does not know how fast that liquidity replenishes after you take it, or how much of the visible size would actually fill. Two books can score the same and behave very differently the moment you push real size through. Treat the score as a fast, comparable first pass that tells you where to look, not a fill simulator.

Resting, not replenishing

The score reads the book at an instant. It can’t see how quickly makers re-post after you sweep a level.

  • Point-in-time read
  • No refill model
  • Pair with a time series

Visible, not guaranteed

Resting size is intent to trade, and intent can be pulled. Persistent depth across snapshots is more trustworthy than one frame.

  • Size can be cancelled
  • Check persistence
  • Don’t assume fills

Weights are a choice

How you trade off spread against depth is a judgement call, back it with results, and keep the recipe transparent.

  • Defensible weights
  • Reproducible recipe
  • Validate on outcomes
A signal is only worth as much as your ability to trade it. The liquidity score is just that worth, written down as a number you can rank.

Rank your markets

The docs cover the depth and spread fields; the dashboard lets you eyeball liquidity before you formalise a score.

Frequently asked questions