STRASMORE/EXPLORE 2,767 QUERIES

The same 15 sessions, summarized: the close's floor, average, and peak

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-28, from When Do Mutual Funds Trade? NAV Pricing at 4 pm.

as of scalar 1×4read in context →
min half hour pct
17.7
avg half hour pct
24.8
max half hour pct
33.3
heaviest session
2026-06-30
Rows × columns
1 × 4
Period covered
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 The same 15 sessions, summarized: the close's floor, average, and peak, derived from the stored result.
ColumnTypeRangeNotes
min_half_hour_pct number every row is 17.7 percent
avg_half_hour_pct number every row is 24.8 percent
max_half_hour_pct number every row is 33.3 percent
heaviest_session date 2026-06-30

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
    round(min(final_half_hour_pct), 1) AS min_half_hour_pct,
    round(avg(final_half_hour_pct), 1) AS avg_half_hour_pct,
    round(max(final_half_hour_pct), 1) AS max_half_hour_pct,
    formatDateTime(argMax(session_date, (final_half_hour_pct, session_date)), '%Y-%m-%d') AS heaviest_session
FROM (
    SELECT
        b.session_date AS session_date,
        100.0 * (b.half_hour_bars + p.closing_print) / (b.session_bars + p.closing_print) AS final_half_hour_pct
    FROM (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
            sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '15:30') AS half_hour_bars,
            sum(toFloat64(volume)) AS session_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
          AND window_start < toDateTime('2026-07-10 16:00:00', 'America/New_York')
          AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') BETWEEN '09:30' AND '15:59'
        GROUP BY session_date
    ) AS b
    INNER JOIN (
        SELECT
            toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
            toFloat64(maxIf(size, has(conditions, 8))) AS closing_print
        FROM global_markets.stocks_trades
        WHERE ticker = 'SPY'
          AND sip_timestamp >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
          AND sip_timestamp < toDateTime('2026-07-10 16:10:00', 'America/New_York')
          AND toHour(sip_timestamp, 'America/New_York') IN (13, 16)
          AND toMinute(sip_timestamp, 'America/New_York') < 10
        GROUP BY session_date
        HAVING countIf(has(conditions, 8)) > 0
    ) AS p ON p.session_date = b.session_date
)
⌘/Ctrl + Enter

Use dis data for your AI assistant

E go open ready to query, with dis page data. Free, no account.

More from this analysisWhen Do Mutual Funds Trade? NAV Pricing at 4 pm
Month-end sessions vs all other sessions: SPY close concentration, January–June 2026 scalar 1×7 → How much of SPY's day trades at the very end: July 10, 2026 regular session scalar 1×3 → The print NAV is struck from: AAPL's closing auction cross, July 10, 2026 scalar 1×6 → SPY volume share of the final 30 minutes and final minute: last 15 sessions through July 10, 2026 series 15×3 → The spread a fund buyer never pays: median quoted spread, July 10, 2026 regular session ranking 3×3 → Where an average session's share volume lands on the clock, September 1 to 15, 2026 series 64×2 → See all 2,767 queries →