QUANT_API
UTCSign inGet a key ↗
PRICE DISCOVERY · ✓ LIVE

Hasbrouck Effective Spread (bps)

Hasbrouck effective spread (bps).

price_discovery.hasbrouck_spread2·E[(p−m)·sign(Δq)]Binance

What it measures

The effective spread in basis points, estimated trade by trade: 2 · E[(p − m) · sign(Δq)] — twice the expected signed deviation of the traded price from the prevailing mid. Unlike the quoted spread, it measures what aggressors actually paid, including trades that walked the book past level 1. Read it against the quoted spread: an effective spread persistently wider than the touch means displayed liquidity is thinner than it looks.

References: Hasbrouck 1995.

Point-in-time, leak-free

Like every QUANT_API feature, price_discovery.hasbrouck_spread is computed point-in-time: each value uses only data that had actually arrived at the timestamp you query — live or historical. No restatements, no backfills that quietly rewrite the past, no look-ahead. The value your backtest sees at a given stamp is the value the live API would have returned at that stamp. How we enforce this is documented on the methodology page.

Windows & transforms

The signal is computed over rolling windows; each window can be served raw or through a transform (z-score, percentile rank, delta…). Which windows and transforms you can query depends on your plan — the signal itself supports:

WINDOWS
1s5s15s30s1m5m15m30m45m1h2h4h12h24h
TRANSFORMS
leveldeltaratezscorepctrankewmaminmaxrange

Plan & access

price_discovery.hasbrouck_spread unlocks on the Quant plan ($2,500/mo) and every plan above it. Every new account starts with a 14-day free trial of the Signal plan — no card required. The trial covers Signal-plan features, so you can evaluate the API end-to-end before upgrading to Quant.

Start free, then upgrade →Compare plans

Example call

Resolve the latest value for BTC (5m window, zscore transform — both available on the Quant plan):

curl -G https://api.quant-api.dev/v1/features/live \
  -H "Authorization: Bearer fk_live_<your_key>" \
  --data-urlencode "asset=BTC" \
  --data-urlencode "features=price_discovery.hasbrouck_spread@5m:zscore"

Same key works on /v1/features/historical for point-in-time backtesting — see the API docs.

RELATED SIGNALS
Kyle's Lambda price_discovery.kyle_lambdaAmihud Illiquidity price_discovery.amihud_illiqRoll Implied Spread price_discovery.roll_spreadGuide: how this family trades in practiceRead ↗