STRASMORE/EXPLORE 3,256 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,256 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-09-28 · 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-09-28 · 5×3Preview: 5 ranked values, largest first. One session's price path, SPY every 15 minutes on June 17, 2026series · 2026-09-28 · 27×2Preview: a 16-point series, ending lower. Distance from the 10:00 a.m. ET price to the close, SPY, by monthseries · 2026-09-28 · 12×4Preview: a 12-point series, roughly flat.
Do Mutual Funds Trade in the Primary Market?
Where an average session's share volume lands on the clock, September 1 to 15, 2026series · 2026-09-22 · 64×2Preview: a 16-point series, roughly flat. Average trades per session across six exchange-listed funds, August 2026ranking · 2026-09-22 · 6×2Preview: 6 ranked values, largest first. One session of prices in an exchange-listed fund, 30-minute ET bucketsseries · 2026-09-22 · 32×4Preview: a 16-point series, ending higher. How far one exchange-listed fund's price travels within a session, August 2026series · 2026-09-22 · 21×4Preview: a 16-point series, ending lower.
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:3010.97
10:007.39
10:306.06
11:005.53
11:306.5
12:005.05
12:304.45
13:004.82
13:304.87
14:005.68
14:306.11
15:008.11
15:3024.45
the exact SQL behind every number
WITH trades AS
(
    SELECT
        toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
        if(has(conditions, 8), '15:30',
           formatDateTime(
               toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE),
               '%H:%i'))                                     AS et_time,
        toFloat64(size)                                      AS shares
    FROM global_markets.stocks_trades
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-01 04:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-07-01 04:00:00', 'UTC')
      AND NOT hasAny(conditions, [15, 16, 38])
      AND (has(conditions, 8)
           OR (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
               + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959)
),
bucket_totals AS
(
    SELECT session_date, et_time, sum(shares) AS bucket_shares
    FROM trades
    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
$