KB / signal
QQQ bid/ask spread
Last verified
Auto-generated. This article is rebuilt from
app/signals/config/signal_definitions.jsonbyscripts/build_signals_kb.py. Edit the registry entry and re-run the script — do not edit this file directly.
QQQ bid/ask spread
What it is
QQQ bid/ask spread — registry key qqq_bid_ask_spread_bps.
Live QQQ bid/ask (NBBO) spread in basis points from the read-only Robinhood MCP quote API (#49) — a real-time liquidity-stress read nothing else in the stack carries. Flag-gated OFF behind ENABLE_ROBINHOOD_SPREAD; ships dormant pending a token-reliability soak. Displayed DATA field only in v1 — NO scoring band, NOT a health-score component, NOT an alignment input. Score / alignment integration is a deliberate later, separately-gated step.
Source
Source module: robinhood
Data source: live_only
Fetched directly from app/sources/robinhood.py; see source code for the upstream API call and any provider-specific handling.
How it’s computed
spread_bps = (ask - bid) / ((ask + bid) / 2) * 10000, computed only when bid > 0 and ask > 0 and ask >= bid; otherwise NULL (a zero / crossed quote is not a real two-sided market). bid/ask are the live NBBO quote from the read-only Robinhood MCP get_equity_quotes tool for QQQ. See app/sources/robinhood.py:compute_spread_bps.
Where it surfaces
- API field:
signals.qqq_bid_ask_spread_bpsonGET /api/v1/signals/latest - Surface:
daily_signalsrow (daily-cadence persistence) - Surface:
intraday_signalsrow (per-cycle snapshot)
Health-score / alignment role
Data carrier — no implication, no health-score contribution.
Persisted for downstream consumers (sparklines, base-rate matcher, calibration substrate) but does not classify into BULLISH / NEUTRAL / BEARISH and does not contribute to the 0-100 health score.
Release cadence
- Publishes:
intraday
See also
- /kb/api/get-signals-latest — API endpoint that serves this field.