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.
Most Shorted Stocks Right Now, Measured
The receipts: universe size, filter bite, median crowding, and list churn at the latest printscalar · 2026-08-25 · 1×522,339 Largest short positions by shares: latest settlement, liquid namesranking · 2026-08-25 · 10×4Preview: 10 ranked values, largest first. Crowding leaders vs. their own price: about one month of sessionsseries · 2026-08-25 · 4×5Preview: a 4-point series, ending higher. GME through the January 2021 squeeze: the same three columns, settlement by settlementseries · 2026-08-25 · 10×4Preview: a 10-point series, ending lower. Today's top-3 crowding leaders, traced back eight settlementsseries · 2026-08-25 · 8×4Preview: a 8-point series, ending higher. Biggest days-to-cover increases, latest settlement vs. the prior printranking · 2026-08-25 · 8×4Preview: 8 ranked values, largest first. Highest days to cover among liquid names: latest settlement on filetable · 2026-08-25 · 10×5
Highest Days to Cover Stocks Right Now
The receipts: file size, liquid names, thin names, and the liquid medianscalar · 2026-08-22 · 1×522,339 Highest days to cover among liquid names: 5M average-volume floorranking · 2026-08-22 · 12×4Preview: 12 ranked values, largest first. Today's liquid top-3 days-to-cover names, traced back eight settlementsseries · 2026-08-22 · 8×4Preview: a 8-point series, ending higher. Highest days to cover, latest settlement: 500k average-volume floortable · 2026-08-22 · 12×5 Days to cover by liquidity band: median stays low, the extremes live in thin namesranking · 2026-08-22 · 5×4Preview: 5 ranked values, smallest first.
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
$