{"slug":"what-is-relative-volume","qid":"rvol_leaderboard","label":"Top 10 by full-day RVOL: latest completed session (20-day ADV above 5M shares, full history required)","post_title":"What Is RVOL (Relative Volume)? How to Read It","post_url":"/blog/what-is-relative-volume#q-rvol_leaderboard","columns":["ticker","session_date","session_volume_m","adv_20d_m","rvol"],"rows":[{"ticker":"HOWL","session_date":"2026-08-21","session_volume_m":265,"adv_20d_m":5.3,"rvol":50},{"ticker":"CAN","session_date":"2026-08-21","session_volume_m":93,"adv_20d_m":11,"rvol":8.5},{"ticker":"LGCL","session_date":"2026-08-21","session_volume_m":88.1,"adv_20d_m":13.1,"rvol":6.8},{"ticker":"MRNA","session_date":"2026-08-21","session_volume_m":88.1,"adv_20d_m":16,"rvol":5.5},{"ticker":"PURR","session_date":"2026-08-21","session_volume_m":36.7,"adv_20d_m":9.8,"rvol":3.8},{"ticker":"BABA","session_date":"2026-08-21","session_volume_m":32.1,"adv_20d_m":8.7,"rvol":3.7},{"ticker":"COIN","session_date":"2026-08-21","session_volume_m":24.5,"adv_20d_m":7.1,"rvol":3.4},{"ticker":"BITX","session_date":"2026-08-21","session_volume_m":26.7,"adv_20d_m":8.3,"rvol":3.2},{"ticker":"GOSS","session_date":"2026-08-21","session_volume_m":130.9,"adv_20d_m":41,"rvol":3.2},{"ticker":"TEM","session_date":"2026-08-21","session_volume_m":16.2,"adv_20d_m":5.1,"rvol":3.2}],"shape":"series","sql":"WITH daily AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,\n           toFloat64(sum(volume)) AS day_volume\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE window_start >= now() - INTERVAL 40 DAY\n      AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))\n    GROUP BY ticker, et_date\n),\nspy_days AS (\n    SELECT et_date,\n           day_volume,\n           avg(day_volume) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS prior_avg\n    FROM daily\n    WHERE ticker = 'SPY' AND day_volume > 10000000\n),\nsessions AS (\n    SELECT et_date FROM spy_days\n),\nlatest AS (\n    SELECT max(et_date) AS d FROM spy_days WHERE prior_avg > 0 AND day_volume >= 0.6 * prior_avg\n),\nprior20 AS (\n    SELECT et_date FROM sessions WHERE et_date < (SELECT d FROM latest) ORDER BY et_date DESC LIMIT 20\n)\nSELECT ticker,\n       formatDateTime((SELECT d FROM latest), '%Y-%m-%d') AS session_date,\n       round(day_vol / 1e6, 1) AS session_volume_m,\n       round(adv20 / 1e6, 1) AS adv_20d_m,\n       round(day_vol / adv20, 1) AS rvol\nFROM (\n    SELECT ticker,\n           sumIf(day_volume, et_date = (SELECT d FROM latest)) AS day_vol,\n           sumIf(day_volume, et_date IN (SELECT et_date FROM prior20)) / 20 AS adv20,\n           countIf(day_volume > 0 AND et_date IN (SELECT et_date FROM prior20)) AS sessions_traded\n    FROM daily\n    WHERE ticker NOT IN ('SPCX')\n    GROUP BY ticker\n    HAVING adv20 > 5000000 AND day_vol > 0 AND sessions_traded = 20\n)\nORDER BY rvol DESC, ticker\nLIMIT 10","computed_at":"2026-08-22T04:34:48.638304+00:00","elapsed":8.261730657}