STRASMORE/EXPLORE 2,170 QUERIES

AAPL: average NBBO updates per minute by half-hour bucket (ET, 4 a.m. to 8 p.m.)

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-08-22, from What Is the NBBO? National Best Bid and Offer.

as of series 32×3read in context →
AAPL: average NBBO updates per minute by half-hour bucket (ET, 4 a.m. to 8 p.m.) — 32 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timeavg_updates_per_minutepct_of_opening_bucket
04:00240.6
04:30100.3
05:00120.3
05:30130.3
06:00100.3
06:30130.3
07:00200.5
07:30230.6
08:00220.6
08:30280.7
09:00521.3
09:303901100
10:00311079.7
10:30243662.4
11:00228358.5
11:30195050
12:00150438.6
12:30127432.7
13:00115029.5
13:30123531.7
14:00126132.3
14:30144036.9
15:00141236.2
15:30333085.4
16:00180.5
16:30110.3
17:0050.1
17:3050.1
18:0080.2
18:3050.1
19:0060.2
19:30100.3
Rows × columns
32 × 3
Period covered
to
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 AAPL: average NBBO updates per minute by half-hour bucket (ET, 4 a.m. to 8 p.m.), derived from the stored result.
ColumnTypeRangeNotes
et_time date 04:00 to 19:30
avg_updates_per_minute number 5 to 3,901
pct_of_opening_bucket number 0.1 to 100 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.

the exact SQL behind every number
SELECT et_time,
       avg_updates_per_minute,
       round(100 * avg_updates_per_minute / maxIf(avg_updates_per_minute, et_time = '09:30') OVER (), 1) AS pct_of_opening_bucket
FROM (
    SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
           round(count() / (uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) * 30)) AS avg_updates_per_minute
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= toDateTime(today() - 10)
      AND sip_timestamp < toDateTime(today() - 3)
      AND toDate(toTimeZone(sip_timestamp, 'America/New_York')) IN (
      SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
      FROM global_markets.delayed_stocks_minute_aggs
      WHERE ticker = 'SPY'
        AND window_start >= toDateTime(today() - 10)
        AND window_start < toDateTime(today() - 3)
      GROUP BY session_date
      HAVING countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) = 390
  )
    GROUP BY et_time
    HAVING et_time >= '04:00' AND et_time < '20:00'
)
ORDER BY et_time

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisWhat Is the NBBO? National Best Bid and Offer
GME, 2024-05-14: NBBO updates and trades per minute across a five-minute LULD pause series 15×3 KO: ten consecutive NBBO updates from 1:30 p.m. ET on a recent session series 10×7 NBBO updates per session: four heavily traded names vs. two thin small caps series 6×5 The smallest size the NBBO will show: six names across the price tiers ranking 6×4 Exchange stamp to SIP stamp: the consolidation step, in microseconds ranking 4×3 AAPL median quoted spread by 30-minute bucket (ET, extended hours included) series 32×2 See all 2,170 queries →