Hasbrouck Effective Spread (bps)
Hasbrouck effective spread (bps).
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:
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.
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.