{"slug":"what-is-average-daily-volume","qid":"volume_shock","label":"MU's sharpest 2026 volume shock: the event day vs the trailing ADV before and after","post_title":"What Is Average Daily Volume (ADV)?","post_url":"/blog/what-is-average-daily-volume#q-volume_shock","columns":["event_date","event_day_shares_m","adv_20_before_m","event_vs_prior_adv_x","adv_20_after_m","adv_shift_pct"],"rows":[{"event_date":"2026-03-19","event_day_shares_m":64.7,"adv_20_before_m":28.7,"event_vs_prior_adv_x":2.3,"adv_20_after_m":45,"adv_shift_pct":57}],"shape":"scalar","sql":"WITH daily AS (\n    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,\n           sum(toFloat64(volume)) AS day_shares\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'MU'\n      AND window_start >= toDateTime('2025-11-01 00:00:00', 'America/New_York')\n      AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY et_date\n),\nranked AS (\n    SELECT et_date, day_shares,\n           day_shares / avg(day_shares) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS shock_ratio,\n           row_number() OVER (ORDER BY et_date) AS rn\n    FROM daily\n),\nbiggest AS (\n    SELECT et_date, day_shares, shock_ratio\n    FROM ranked\n    WHERE rn > 20 AND et_date >= toDate('2026-01-01')\n    ORDER BY shock_ratio DESC, et_date ASC\n    LIMIT 1\n),\nbefore AS (\n    SELECT avg(day_shares) AS adv FROM (\n        SELECT day_shares FROM daily WHERE et_date < (SELECT et_date FROM biggest) ORDER BY et_date DESC LIMIT 20\n    )\n),\nafter AS (\n    SELECT avg(day_shares) AS adv FROM (\n        SELECT day_shares FROM daily WHERE et_date >= (SELECT et_date FROM biggest) ORDER BY et_date ASC LIMIT 20\n    )\n)\nSELECT formatDateTime((SELECT et_date FROM biggest), '%Y-%m-%d') AS event_date,\n       round((SELECT day_shares FROM biggest) / 1e6, 1) AS event_day_shares_m,\n       round((SELECT adv FROM before) / 1e6, 1) AS adv_20_before_m,\n       round((SELECT shock_ratio FROM biggest), 1) AS event_vs_prior_adv_x,\n       round((SELECT adv FROM after) / 1e6, 1) AS adv_20_after_m,\n       round(100 * ((SELECT adv FROM after) / (SELECT adv FROM before) - 1), 0) AS adv_shift_pct","computed_at":"2026-07-26T06:22:35.216058+00:00","elapsed":0.965470356}