STRASMORE/EXPLORE 2,272 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,272 answered market questions

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

Why Relative Volume Differs Between Platforms
Five relative-volume definitions on one AAPL session, at 10:30 a.m. ET and at the closeranking · 2026-09-16 · 5×3Preview: 5 ranked values, smallest first. One AAPL session, four lookbacks: full-day relative volume from daily barsranking · 2026-09-16 · 4×4Preview: 4 ranked values, largest first. How the session's volume piled up against the prior 10 sessions, checkpoint by checkpointseries · 2026-09-16 · 14×4Preview: a 14-point series, ending higher. Same session, same 10-session lookback: same-time basis vs full-day basis through the dayseries · 2026-09-16 · 14×3Preview: a 14-point series, ending higher.
Five relative-volume definitions on one AAPL session, at 10:30 a.m. ET and at the close

Five relative-volume definitions on one AAPL session, at 10:30 a.m. ET and at the close

most recentas of ranking 5×3read in context →
Five relative-volume definitions on one AAPL session, at 10:30 a.m. ET and at the close — 5 rows by 3 columns, computed from US exchange, SIP and OPRA data.
definitionat_10_30_et_ratioat_close_ratio
Full-day basis, 63-session (3-month) average0.381.54
Full-day basis, 50-session average0.41.62
Full-day basis, 10-session average0.461.87
Same-time basis, 50-session average1.521.62
Same-time basis, 10-session average1.921.87
the exact SQL behind every number
WITH toDate('2026-09-10') AS session_day
SELECT
    tupleElement(r, 1)           AS definition,
    round(tupleElement(r, 2), 2) AS at_10_30_et_ratio,
    round(tupleElement(r, 3), 2) AS at_close_ratio
FROM
(
    SELECT
        arrayJoin([
            ('Full-day basis, 63-session (3-month) average', session_1030 / avg63_full, session_close / avg63_full, 1),
            ('Full-day basis, 50-session average',           session_1030 / avg50_full, session_close / avg50_full, 2),
            ('Full-day basis, 10-session average',           session_1030 / avg10_full, session_close / avg10_full, 3),
            ('Same-time basis, 50-session average',          session_1030 / avg50_same, session_close / avg50_full, 4),
            ('Same-time basis, 10-session average',          session_1030 / avg10_same, session_close / avg10_full, 5)
        ]) AS r
    FROM
    (
        SELECT
            anyIf(cum_1030, d = session_day)                                                                    AS session_1030,
            anyIf(cum_close, d = session_day)                                                                   AS session_close,
            arrayReverseSort(x -> tupleElement(x, 1), groupArrayIf((d, cum_1030, cum_close), d < session_day)) AS prior,
            arrayAvg(x -> tupleElement(x, 3), arraySlice(prior, 1, 63))                                        AS avg63_full,
            arrayAvg(x -> tupleElement(x, 3), arraySlice(prior, 1, 50))                                        AS avg50_full,
            arrayAvg(x -> tupleElement(x, 3), arraySlice(prior, 1, 10))                                        AS avg10_full,
            arrayAvg(x -> tupleElement(x, 2), arraySlice(prior, 1, 50))                                        AS avg50_same,
            arrayAvg(x -> tupleElement(x, 2), arraySlice(prior, 1, 10))                                        AS avg10_same
        FROM
        (
            SELECT
                d,
                sumIf(vol, minute_of_day <= 630) AS cum_1030,
                sum(vol)                          AS cum_close
            FROM
            (
                SELECT
                    toDate(toTimeZone(window_start, 'America/New_York'))      AS d,
                    toHour(toTimeZone(window_start, 'America/New_York')) * 60
                      + toMinute(toTimeZone(window_start, 'America/New_York')) AS minute_of_day,
                    max(toFloat64(volume))                                     AS vol
                FROM global_markets.delayed_stocks_minute_aggs
                WHERE ticker = 'AAPL'
                  AND window_start >= toDateTime(session_day - 100, 'America/New_York')
                  AND window_start <  toDateTime(session_day + 1, 'America/New_York')
                GROUP BY d, minute_of_day
                HAVING minute_of_day >= 570 AND minute_of_day <= 960
            )
            GROUP BY d
        )
        HAVING length(prior) >= 63 AND session_close > 0
    )
)
ORDER BY tupleElement(r, 4)
$