STRASMORE/EXPLORE 2,830 QUERIES

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.

as of table 16×5read in context →
locked_clock — 16 rows by 5 columns, computed from US exchange, SIP and OPRA data.
et_hournbbo_updatesupdates_labellocked_pctcrossed_pct
04:0014781.48 thousand00
05:0020702.07 thousand00.0483
06:00528528.000.9470.947
07:0022072.21 thousand0.09060.0453
08:0034903.49 thousand0.0860.0287
09:00221819221.82 thousand0.29120.0329
10:00279898279.90 thousand0.33730.0857
11:00307855307.86 thousand0.17090.0403
12:00268815268.81 thousand0.20530.0275
13:00251012251.01 thousand0.34860.0805
14:00174920174.92 thousand0.50250.0303
15:00233433233.43 thousand0.69660.0934
16:0013351.33 thousand0.52430.5243
17:00341341.000.29330
18:0011071.11 thousand0.09030
19:0011011.10 thousand0.09080.0908
Rows × columns
16 × 5
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for locked_clock, derived from the stored result.
ColumnTypeRangeNotes
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
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisself-help-declarations-in-reg-nms
protected_venues table 27×5 → best_bid_venues ranking 12×3 → locked_names ranking 5×4 → The 2s10s spread, every print of the half table 124×2 → The 2s10s spread, every print of the half table 124×2 → Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print table 100×7 → See all 2,830 queries →