{"slug":"spacex-lockup-expiration","qid":"spy_expiry","label":"SPY volume on monthly expiration Fridays against the month's other sessions","post_title":"SpaceX Lockup Expiration Date: How to Find It","post_url":"/blog/spacex-lockup-expiration#q-spy_expiry","columns":["month","expiry_friday_volume","other_session_volume"],"rows":[{"month":"2025-08","expiry_friday_volume":58.8,"other_session_volume":59.7},{"month":"2025-09","expiry_friday_volume":80.7,"other_session_volume":65},{"month":"2025-10","expiry_friday_volume":80.6,"other_session_volume":66.9},{"month":"2025-11","expiry_friday_volume":109.2,"other_session_volume":74.1},{"month":"2025-12","expiry_friday_volume":84.8,"other_session_volume":61.8},{"month":"2026-01","expiry_friday_volume":67.1,"other_session_volume":69.9},{"month":"2026-02","expiry_friday_volume":88.8,"other_session_volume":74.3},{"month":"2026-03","expiry_friday_volume":131.2,"other_session_volume":83.7},{"month":"2026-04","expiry_friday_volume":59.7,"other_session_volume":46.9},{"month":"2026-05","expiry_friday_volume":48.4,"other_session_volume":38.3},{"month":"2026-07","expiry_friday_volume":51.5,"other_session_volume":39.2}],"shape":"series","sql":"SELECT\n    formatDateTime(d, '%Y-%m')                                      AS month,\n    round(avgIf(session_volume_millions, is_expiry_friday = 1), 1)  AS expiry_friday_volume,\n    round(avgIf(session_volume_millions, is_expiry_friday = 0), 1)  AS other_session_volume\nFROM\n(\n    SELECT\n        toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n        sum(volume) / 1e6                                    AS session_volume_millions,\n        max(if(toDayOfWeek(toDate(toTimeZone(window_start, 'America/New_York'))) = 5\n               AND toDayOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) BETWEEN 15 AND 21,\n               1, 0))                                        AS is_expiry_friday\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= '2025-08-01'\n      AND window_start <  '2026-08-01'\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n    GROUP BY d\n)\nGROUP BY month\nHAVING countIf(is_expiry_friday = 1) > 0\n   AND countIf(is_expiry_friday = 0) > 0\nORDER BY month","computed_at":"2026-08-22T04:20:05.808097+00:00","elapsed":0.4679294}