STRASMORE/EXPLORE 2,170 QUERIES

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

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-08-25, from Unusual Volume Stocks This Week, Measured.

as 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
Rows × columns
7 × 4
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 How the whole qualifying universe traded this week, bucketed by relative volume, derived from the stored result.
ColumnTypeRangeNotes
rvol_bucket text 7 distinct values (1.5x to 2x, 10x or more, 1x to 1.5x…)
names number 0 to 485
pct_of_universe number 0 to 95.5 percent
universe_names number every row is 508

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.

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

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisUnusual Volume Stocks This Week, Measured
The board leader, day by day: daily relative volume and open-to-close change (last 15 sessions) series 15×5 Persistence check: the eight leaders' daily relative volume across the five sessions table 8×5 Highest relative volume this week: trailing 5 sessions vs. the prior 40, for names trading $500M+ in the week series 8×6 Wild multiples the dollar floor removes: highest relative volume among names trading under $500M this week series 6×5 Full-day RVOL percentiles across high-volume US stocks and ETFs (20-day ADV above 5M shares), latest completed session ranking 6×2 SPY: average share of full-day volume completed by each clock time (last 20 sessions) ranking 5×2 See all 2,170 queries →