STRASMORE/EXPLORE 2,309 QUERIES

lunch_pov

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-17, from twap-vs-vwap-vs-pov-orders.

as of series 13×4read in context →
lunch_pov — 13 rows by 4 columns, computed from US exchange, SIP and OPRA data.
et_timeaapl_volume_millionspov_child_fill_k_sharesshare_of_total_pct
09:303.8238212.4
10:002.82809.1
10:302.52508.1
11:002.352357.6
11:301.961966.3
12:001.621625.2
12:301.371374.4
13:001.221223.9
13:301.61605.2
14:001.511514.9
14:302.732738.8
15:001.931936.2
15:305.4954917.8
Rows × columns
13 × 4
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 lunch_pov, derived from the stored result.
ColumnTypeRangeNotes
et_time text 13 distinct values (09:30, 10:00, 10:30…)
aapl_volume_millions number 1.22 to 5.49 count
pov_child_fill_k_shares number 122 to 549 count
share_of_total_pct number 3.9 to 17.8 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
WITH bars AS
(
    SELECT
        toTimeZone(window_start, 'America/New_York')  AS et,
        toHour(et) * 60 + toMinute(et)                AS minute_of_day,
        toFloat64(volume)                             AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'AAPL'
      AND window_start >= toDateTime('2026-08-12 00:00:00', 'America/New_York')
      AND window_start <  toDateTime('2026-08-13 00:00:00', 'America/New_York')
),
buckets AS
(
    SELECT
        formatDateTime(toStartOfInterval(et, INTERVAL 30 MINUTE), '%H:%i', 'America/New_York') AS et_time,
        sum(shares)                                                                            AS bucket_shares
    FROM bars
    WHERE minute_of_day >= 570
      AND minute_of_day <  960
    GROUP BY et_time
)
SELECT
    b.et_time                                        AS et_time,
    round(b.bucket_shares / 1e6, 2)                  AS aapl_volume_millions,
    toUInt32(round(b.bucket_shares * 0.10 / 1e3))    AS pov_child_fill_k_shares,
    round(100 * b.bucket_shares / t.day_shares, 1)   AS share_of_total_pct
FROM buckets AS b
CROSS JOIN
(
    SELECT sum(bucket_shares) AS day_shares
    FROM buckets
) AS t
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 analysistwap-vs-vwap-vs-pov-orders
volume_curve series 13×4 curve_dispersion series 13×4 open_vs_lunch table 5×6 One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 monthly series 241×4 2s10s spread, monthly average: last 20 years series 240×2 See all 2,309 queries →