skewbot
views

liquidity

Real-time option order book quality and spread pricing across strikes.

Option order book liquidity structure

what it shows

liquidity measures order book quality across option contracts for each selected expiration. It combines bid-ask spread width and resting order size into a single composite score.

A low score indicates a tight spread and deep quote sizes (high liquidity). A high score indicates wide spreads or thin depth (liquidity stress).

liquidity score calculation

skewbot calculates a liquidity score for each active contract:

liquidity_score = relative_spread_pct / (sqrt(avg_size) + ε)

where:
  relative_spread_pct = ((ask - bid) / midpoint) * 100
  avg_size = (bid_size + ask_size) / 2
  ε = small constant to prevent division by zero

market buckets

Individual contract scores are aggregated into four distinct surface buckets:

BucketDescriptionNormal state
OTM CallsOut-of-the-money call contractsLiquid, tight spreads
OTM PutsOut-of-the-money put contractsLiquid, high quote participation
ITM CallsIn-the-money call contractsWider spreads, lower quote size
ITM PutsIn-the-money put contractsWider spreads, lower quote size

Each bucket calculates the mean liquidity score of all qualifying strikes at every compute tick.

reading the chart

Liquidity order book score chart

The y-axis represents the raw liquidity penalty score. The x-axis is time.

Watch for these signals:

  • Spike across all buckets: Market makers pulling quotes or widening spreads ahead of macro data or volatility events.
  • OTM put liquidity degradation: Downside tail protection becoming expensive to transact due to one-sided demand.
  • OTM call liquidity degradation: Upside squeeze activity causing rapid quote withdrawal.

rules of thumb

  • You'll notice that the removal of liquidity tends to repel price (e.g. removing OTM put liquidity pushes price up, and removing OTM call liquidity pushes price down).

See also: liquidity controls →

On this page