STRASMORE/EXPLORE 2,173 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,173 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

How Mutual Fund NAV Is Calculated: Example
Share of SPY's session volume by half hour, June 2026 averageseries · 2026-08-06 · 13×2Preview: a 13-point series, ending higher. Average move from the 11:30 a.m. ET European close to the 4:00 p.m. close, Q2 2026ranking · 2026-08-06 · 5×3Preview: 5 ranked values, largest first. One session's price path, SPY every 15 minutes on June 17, 2026series · 2026-08-06 · 27×2Preview: a 16-point series, ending lower. Distance from the 10:00 a.m. ET price to the close, SPY, by monthseries · 2026-08-06 · 12×4Preview: a 12-point series, roughly flat.
Share of SPY's session volume by half hour, June 2026 average

Share of SPY's session volume by half hour, June 2026 average

most recentas of series 13×2read in context →
Share of SPY's session volume by half hour, June 2026 average — 13 rows by 2 columns, computed from US exchange, SIP and OPRA data.
et_timeshare_of_volume_pct
09:3011.24
10:007.73
10:306.28
11:005.7
11:306.72
12:005
12:304.64
13:005.02
13:305.08
14:005.92
14:306.31
15:008.45
15:3021.92
the exact SQL behind every number
WITH minute_bars AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        formatDateTime(
            toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE),
            '%H:%i')                                         AS et_time,
        toFloat64(volume)                                    AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-01 00:00:00', 'UTC')
      AND window_start <  toDateTime('2026-07-01 00:00:00', 'UTC')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
),
bucket_totals AS
(
    SELECT session_date, et_time, sum(shares) AS bucket_shares
    FROM minute_bars
    GROUP BY session_date, et_time
),
session_totals AS
(
    SELECT session_date, sum(bucket_shares) AS session_shares
    FROM bucket_totals
    GROUP BY session_date
)
SELECT
    b.et_time                                               AS et_time,
    round(avg(b.bucket_shares / s.session_shares) * 100, 2) AS share_of_volume_pct
FROM bucket_totals AS b
INNER JOIN session_totals AS s ON s.session_date = b.session_date
GROUP BY b.et_time
ORDER BY b.et_time
$