locked_clock
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-30, from self-help-declarations-in-reg-nms.
| et_hour | nbbo_updates | updates_label | locked_pct | crossed_pct |
|---|---|---|---|---|
| 04:00 | 1478 | 1.48 thousand | 0 | 0 |
| 05:00 | 2070 | 2.07 thousand | 0 | 0.0483 |
| 06:00 | 528 | 528.00 | 0.947 | 0.947 |
| 07:00 | 2207 | 2.21 thousand | 0.0906 | 0.0453 |
| 08:00 | 3490 | 3.49 thousand | 0.086 | 0.0287 |
| 09:00 | 221819 | 221.82 thousand | 0.2912 | 0.0329 |
| 10:00 | 279898 | 279.90 thousand | 0.3373 | 0.0857 |
| 11:00 | 307855 | 307.86 thousand | 0.1709 | 0.0403 |
| 12:00 | 268815 | 268.81 thousand | 0.2053 | 0.0275 |
| 13:00 | 251012 | 251.01 thousand | 0.3486 | 0.0805 |
| 14:00 | 174920 | 174.92 thousand | 0.5025 | 0.0303 |
| 15:00 | 233433 | 233.43 thousand | 0.6966 | 0.0934 |
| 16:00 | 1335 | 1.33 thousand | 0.5243 | 0.5243 |
| 17:00 | 341 | 341.00 | 0.2933 | 0 |
| 18:00 | 1107 | 1.11 thousand | 0.0903 | 0 |
| 19:00 | 1101 | 1.10 thousand | 0.0908 | 0.0908 |
- Rows × columns
- 16 × 5
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
et_hour |
text | 16 distinct values (04:00, 05:00, 06:00…) | |
nbbo_updates |
number | 341 to 307,855 | |
updates_label |
text | 16 distinct values | |
locked_pct |
number | 0 to 0.947 | percent |
crossed_pct |
number | 0 to 0.947 | percent |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
SELECT
formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_hour,
count() AS nbbo_updates,
formatReadableQuantity(count()) AS updates_label,
round(100 * countIf(bid_price = ask_price) / count(), 4) AS locked_pct,
round(100 * countIf(bid_price > ask_price) / count(), 4) AS crossed_pct
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-10 08:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-11 00:00:00', 'UTC')
AND bid_price > 0
AND ask_price > 0
GROUP BY et_hour
ORDER BY et_hour
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.