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

3,293 answered market questions

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

Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan
Relative Volume Screener in SQL: Free API
Share of a session's volume completed by each half hour: SPY and KOseries · 2026-11-07 · 13×3Preview: a 13-point series, ending higher. Relative volume screener: top 20 by time adjusted RVOL at 11:00 a.m. ETtable · 2026-11-07 · 20×5 Cisco, September 22, 2026: naive RVOL against time adjusted RVOL through the sessionseries · 2026-11-07 · 13×3Preview: a 13-point series, ending higher. Share of the session completed by 11:00 a.m. ET, twelve household namesranking · 2026-11-07 · 12×3Preview: 12 ranked values, largest first.
Stocks With the Biggest IV-RV Gap
The most negative monthly pairs: realized volatility far above impliedranking · 2026-10-01 · 10×4Preview: 10 ranked values, largest first. SPY: monthly 30-day implied volatility against the next month's realized volatilityseries · 2026-10-01 · 24×4Preview: a 16-point series, roughly flat. Largest gap between 30-day implied volatility and the realized volatility that followedranking · 2026-10-01 · 12×4Preview: 12 ranked values, largest first. Share of liquid names whose 30-day IV exceeded the realized volatility that followedseries · 2026-10-01 · 9×4Preview: a 9-point series, ending lower.
Covered Call Screener: Build One in SQL
The covered call screen, ranked by annualised yield, last session of August 2026table · 2026-09-26 · 12×8 The same screen replayed monthly, and how the selected calls finishedseries · 2026-09-26 · 11×5Preview: a 11-point series, ending lower. Annualised call premium at 0.25 to 0.35 delta, eight liquid names, August 2026ranking · 2026-09-26 · 8×4Preview: 8 ranked values, smallest first. AAPL call premium yield by delta band, August 2026table · 2026-09-26 · 6×5
Share of a session's volume completed by each half hour: SPY and KO

Share of a session's volume completed by each half hour: SPY and KO

most recentas of series 13×3read in context →
Share of a session's volume completed by each half hour: SPY and KO — 13 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timespy_share_pctko_share_pct
09:3011.714.1
10:0019.823.4
10:3027.131.2
11:0033.738.3
11:3039.244
12:0043.948.7
12:3048.753.6
13:0053.358.3
13:305863.3
14:0063.668.1
14:3069.573.3
15:0076.780.1
15:30100100
the exact SQL behind every number
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)
$