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

2,170 answered market questions

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

Unusual Volume Stocks This Week, Measured
How the whole qualifying universe traded this week, bucketed by relative volumeranking · 2026-08-25 · 7×4Preview: 7 ranked values, smallest first. Persistence check: the eight leaders' daily relative volume across the five sessionstable · 2026-08-25 · 8×5 Highest relative volume this week: trailing 5 sessions vs. the prior 40, for names trading $500M+ in the weekseries · 2026-08-25 · 8×6Preview: a 8-point series, ending higher. The board leader, day by day: daily relative volume and open-to-close change (last 15 sessions)series · 2026-08-25 · 15×5Preview: a 15-point series, roughly flat. Wild multiples the dollar floor removes: highest relative volume among names trading under $500M this weekseries · 2026-08-25 · 6×5Preview: a 6-point series, ending higher.
What Is RVOL (Relative Volume)? How to Read It
SPY: median shares traded per minute, by 30-minute clock bucket (ET, last 30 days, extended hours)series · 2026-08-22 · 32×2Preview: a 16-point series, roughly flat. SPY: average share of full-day volume completed by each clock time (last 20 sessions)ranking · 2026-08-22 · 5×2Preview: 5 ranked values, smallest first. Top 10 by full-day RVOL: latest completed session (20-day ADV above 5M shares, full history required)series · 2026-08-22 · 10×5Preview: a 10-point series, ending lower. Full-day RVOL percentiles across high-volume US stocks and ETFs (20-day ADV above 5M shares), latest completed sessionranking · 2026-08-22 · 6×2Preview: 6 ranked values, smallest first. MU, the biggest-volume session of June 2026: time-adjusted vs. naive RVOL, plus the full-day figurescalar · 2026-08-22 · 1×832.8
How the whole qualifying universe traded this week, bucketed by relative volume

How the whole qualifying universe traded this week, bucketed by relative volume

most recentas of ranking 7×4read in context →
How the whole qualifying universe traded this week, bucketed by relative volume — 7 rows by 4 columns, computed from US exchange, SIP and OPRA data.
rvol_bucketnamespct_of_universeuniverse_names
10x or more00508
5x to 10x20.4508
3x to 5x30.6508
2x to 3x61.2508
1.5x to 2x20.4508
1x to 1.5x102508
below 1x48595.5508
the exact SQL behind every number
WITH sess AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 70 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, d
),
cal AS (
    SELECT d, row_number() OVER (ORDER BY d DESC) AS rn
    FROM (SELECT DISTINCT d FROM sess)
),
per_name AS (
    SELECT s.ticker AS ticker,
           avgIf(s.vol, c.rn <= 5) AS adv_recent,
           avgIf(s.vol, c.rn BETWEEN 6 AND 45) AS adv_base,
           sumIf(s.dollars, c.rn <= 5) AS dollar_recent,
           countIf(c.rn <= 5) AS recent_sessions,
           countIf(c.rn BETWEEN 6 AND 45) AS base_sessions
    FROM sess s INNER JOIN cal c ON s.d = c.d
    GROUP BY s.ticker
    HAVING adv_base > 100000 AND dollar_recent >= 500000000 AND recent_sessions = 5 AND base_sessions >= 35
),
scored AS (
    SELECT ticker,
           multiIf(adv_recent / adv_base >= 10, 1,
                   adv_recent / adv_base >= 5, 2,
                   adv_recent / adv_base >= 3, 3,
                   adv_recent / adv_base >= 2, 4,
                   adv_recent / adv_base >= 1.5, 5,
                   adv_recent / adv_base >= 1, 6, 7) AS bucket_key
    FROM per_name
),
buckets AS (
    SELECT arrayJoin([(1, '10x or more'), (2, '5x to 10x'), (3, '3x to 5x'), (4, '2x to 3x'),
                      (5, '1.5x to 2x'), (6, '1x to 1.5x'), (7, 'below 1x')]) AS bk
)
SELECT bk.2 AS rvol_bucket,
       countIf(scored.bucket_key = bk.1) AS names,
       round(100.0 * countIf(scored.bucket_key = bk.1) / count(), 1) AS pct_of_universe,
       count() AS universe_names
FROM scored CROSS JOIN buckets
GROUP BY bk
ORDER BY bk.1 ASC
$