{"slug":"what-is-average-daily-volume","qid":"adv_distribution","label":"Dollar ADV across the whole US tape: percentiles and threshold counts (June 11 – July 10, 2026)","post_title":"What Is Average Daily Volume (ADV)?","post_url":"/blog/what-is-average-daily-volume#q-adv_distribution","columns":["names","p25_m","median_m","p75_m","p90_m","p99_m","names_above_1m","names_above_10m","names_above_100m","names_above_1bn"],"rows":[{"names":10864,"p25_m":0.33,"median_m":2.2,"p75_m":20.4,"p90_m":113.7,"p99_m":1333,"names_above_1m":6515,"names_above_10m":3535,"names_above_100m":1166,"names_above_1bn":130}],"shape":"scalar","sql":"WITH per_ticker AS (\n    SELECT ticker, avg(day_dollars) AS adv_dollars\n    FROM (\n        SELECT ticker,\n               toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,\n               sumIf(toFloat64(close) * toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'\n                                                       AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS day_dollars\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')\n          AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')\n          AND match(ticker, '^[A-Z]+$')\n        GROUP BY ticker, et_date\n    )\n    GROUP BY ticker\n    HAVING count() >= 15\n)\nSELECT count() AS names,\n       round(quantileDeterministic(0.25)(adv_dollars, cityHash64(ticker)) / 1e6, 2) AS p25_m,\n       round(quantileDeterministic(0.50)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS median_m,\n       round(quantileDeterministic(0.75)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS p75_m,\n       round(quantileDeterministic(0.90)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS p90_m,\n       round(quantileDeterministic(0.99)(adv_dollars, cityHash64(ticker)) / 1e6, 0) AS p99_m,\n       countIf(adv_dollars >= 1e6) AS names_above_1m,\n       countIf(adv_dollars >= 10e6) AS names_above_10m,\n       countIf(adv_dollars >= 100e6) AS names_above_100m,\n       countIf(adv_dollars >= 1e9) AS names_above_1bn\nFROM per_ticker","computed_at":"2026-07-26T06:22:54.863448+00:00","elapsed":19.55489762}