STRASMORE/EXPLORE 2,595 QUERIES

rvol_trace

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 →
rvol_trace — 13 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timervol_time_adjustedrvol_naive
09:301.670.26
10:002.180.53
10:302.490.76
11:002.490.91
11:302.751.15
12:002.811.31
12:302.831.45
13:002.911.61
13:302.991.78
14:003.081.98
14:302.972.09
15:002.872.2
15:302.592.59
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 rvol_trace, derived from the stored result.
ColumnTypeRangeNotes
et_time text 13 distinct values (09:30, 10:00, 10:30…)
rvol_time_adjusted number 1.67 to 3.08
rvol_naive number 0.26 to 2.59

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
            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
                toTimeZone(window_start, 'America/New_York') AS et_ts,
                volume
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'CSCO'
              AND window_start >= '2026-08-24'
              AND window_start <  '2026-09-23'
        )
    ),
    slots AS (
        SELECT
            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 session_date, et_time
    ),
    cum AS (
        SELECT
            session_date,
            et_time,
            slot_min,
            sum(slot_vol) OVER (PARTITION BY session_date ORDER BY slot_min) AS cum_vol
        FROM slots
    ),
    base AS (
        SELECT avg(day_vol) AS avg_day_vol
        FROM
        (
            SELECT session_date, sum(slot_vol) AS day_vol
            FROM slots
            WHERE session_date < '2026-09-22'
            GROUP BY session_date
        )
    )
SELECT
    et_time,
    round(maxIf(cum_vol, session_date = '2026-09-22') / avgIf(cum_vol, session_date < '2026-09-22'), 2) AS rvol_time_adjusted,
    round(maxIf(cum_vol, session_date = '2026-09-22') / (SELECT avg_day_vol FROM base), 2)             AS rvol_naive
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
volume_curve 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 →