{"slug":"how-to-find-a-lockup-expiration-date","qid":"cohort_window_volume","label":"Volume in the four weeks around day 180 vs the weeks before it: nine US listings","post_title":"How to Find a Lockup Expiration Date","post_url":"/blog/how-to-find-a-lockup-expiration-date#q-cohort_window_volume","columns":["ticker","baseline_volume_m","window_volume_m","volume_ratio"],"rows":[{"ticker":"UBER","baseline_volume_m":8.47,"window_volume_m":38.41,"volume_ratio":4.53},{"ticker":"CAVA","baseline_volume_m":1.28,"window_volume_m":3.12,"volume_ratio":2.44},{"ticker":"RIVN","baseline_volume_m":16.54,"window_volume_m":28.53,"volume_ratio":1.72},{"ticker":"HOOD","baseline_volume_m":18.09,"window_volume_m":27.68,"volume_ratio":1.53},{"ticker":"ABNB","baseline_volume_m":7.55,"window_volume_m":8.46,"volume_ratio":1.12},{"ticker":"BIRK","baseline_volume_m":0.52,"window_volume_m":0.55,"volume_ratio":1.05},{"ticker":"RDDT","baseline_volume_m":3.73,"window_volume_m":3.92,"volume_ratio":1.05},{"ticker":"DASH","baseline_volume_m":3.59,"window_volume_m":3.57,"volume_ratio":0.99},{"ticker":"LYFT","baseline_volume_m":6.44,"window_volume_m":5.97,"volume_ratio":0.93}],"shape":"ranking","sql":"WITH ipos AS (\n    SELECT tupleElement(pair, 1) AS ticker,\n           toDate(tupleElement(pair, 2)) AS pricing_date\n    FROM (\n        SELECT arrayJoin([('LYFT', '2019-03-28'), ('UBER', '2019-05-09'),\n                          ('DASH', '2020-12-08'), ('ABNB', '2020-12-09'),\n                          ('HOOD', '2021-07-28'), ('RIVN', '2021-11-09'),\n                          ('CAVA', '2023-06-14'), ('BIRK', '2023-10-10'),\n                          ('RDDT', '2024-03-20')]) AS pair\n    )\n),\ndaily AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n           toFloat64(sum(volume)) AS shares\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('LYFT', 'UBER', 'DASH', 'ABNB', 'HOOD', 'RIVN', 'CAVA', 'BIRK', 'RDDT')\n      AND window_start >= toDateTime('2019-07-01 00:00:00')\n      AND window_start < toDateTime('2024-11-01 00:00:00')\n    GROUP BY ticker, session_date\n)\nSELECT d.ticker AS ticker,\n       round(avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 120 AND 170) / 1e6, 2) AS baseline_volume_m,\n       round(avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 171 AND 200) / 1e6, 2) AS window_volume_m,\n       round(avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 171 AND 200)\n             / avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 120 AND 170), 2) AS volume_ratio\nFROM daily AS d\nINNER JOIN ipos AS i ON d.ticker = i.ticker\nGROUP BY d.ticker\nHAVING countIf(dateDiff('day', i.pricing_date, d.session_date) BETWEEN 120 AND 170) >= 20\n   AND countIf(dateDiff('day', i.pricing_date, d.session_date) BETWEEN 171 AND 200) >= 10\nORDER BY volume_ratio DESC","computed_at":"2026-08-03T08:36:20.744891+00:00","elapsed":11.830046422}