STRASMORE/EXPLORE 2,595 QUERIES

volume_curve

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-25, from relative-volume-screener-from-the-free-sql-api.

as of series 13×3read in context →
volume_curve — 13 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timespy_share_pctko_share_pct
09:3011.514.6
10:0019.823.3
10:3026.730.2
11:0034.837.1
11:3040.642.4
12:0045.347.6
12:3049.552.2
13:0054.256.7
13:3058.160.8
14:0063.265.6
14:3070.271.4
15:0077.678.4
15:30100100
Rows × columns
13 × 3
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 volume_curve, derived from the stored result.
ColumnTypeRangeNotes
et_time text 13 distinct values (09:30, 10:00, 10:30…)
spy_share_pct number 11.5 to 100 percent
ko_share_pct number 14.6 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.

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.

WITH
    bars AS (
        SELECT
            ticker,
            toDate(et_ts)                                                        AS session_date,
            formatDateTime(toStartOfInterval(et_ts, INTERVAL 30 MINUTE), '%H:%i') AS et_time,
            toHour(et_ts) * 60 + toMinute(et_ts)                                 AS et_min,
            toFloat64(volume)                                                    AS vol
        FROM
        (
            SELECT
                ticker,
                toTimeZone(window_start, 'America/New_York') AS et_ts,
                volume
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('SPY', 'KO')
              AND window_start >= toDateTime(today() - 40)
        )
    ),
    slots AS (
        SELECT
            ticker,
            session_date,
            et_time,
            min(et_min) AS slot_min,
            sum(vol)    AS slot_vol
        FROM bars
        WHERE et_min >= 570 AND et_min < 960
        GROUP BY ticker, session_date, et_time
    ),
    complete AS (
        SELECT ticker, session_date
        FROM slots
        GROUP BY ticker, session_date
        HAVING max(slot_min) >= 930
    ),
    slot_avg AS (
        SELECT
            ticker,
            et_time,
            min(slot_min) AS slot_min,
            avg(slot_vol) AS avg_slot_vol
        FROM slots
        WHERE (ticker, session_date) IN (SELECT ticker, session_date FROM complete)
        GROUP BY ticker, et_time
    ),
    cum AS (
        SELECT
            ticker,
            et_time,
            slot_min,
            sum(avg_slot_vol) OVER (PARTITION BY ticker ORDER BY slot_min) AS cum_vol,
            sum(avg_slot_vol) OVER (PARTITION BY ticker)                   AS day_vol
        FROM slot_avg
    )
SELECT
    et_time,
    round(100 * maxIf(cum_vol / day_vol, ticker = 'SPY'), 1) AS spy_share_pct,
    round(100 * maxIf(cum_vol / day_vol, ticker = 'KO'), 1)  AS ko_share_pct
FROM cum
GROUP BY et_time
ORDER BY min(slot_min)
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisrelative-volume-screener-from-the-free-sql-api
rvol_trace series 13×3 → screener_top20 table 20×5 → morning_share ranking 12×3 → The 2s10s spread by month, full history series 604×5 → One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 → 3m10y and 2s10s spreads, monthly averages over twenty years series 241×4 → See all 2,595 queries →