{"slug":"how-to-find-a-lockup-expiration-date","qid":"lockup_date_math","label":"Day 180 counted from the pricing date: nine US listings","post_title":"How to Find a Lockup Expiration Date","post_url":"/blog/how-to-find-a-lockup-expiration-date#q-lockup_date_math","columns":["ticker","pricing_date_label","day_180_label","day_180_weekday","market_opens","next_open_session_label"],"rows":[{"ticker":"DASH","pricing_date_label":"Dec 8, 2020","day_180_label":"Jun 6, 2021","day_180_weekday":"Sunday","market_opens":122,"next_open_session_label":"Jun 7, 2021"},{"ticker":"RIVN","pricing_date_label":"Nov 9, 2021","day_180_label":"May 8, 2022","day_180_weekday":"Sunday","market_opens":123,"next_open_session_label":"May 9, 2022"},{"ticker":"BIRK","pricing_date_label":"Oct 10, 2023","day_180_label":"Apr 7, 2024","day_180_weekday":"Sunday","market_opens":122,"next_open_session_label":"Apr 8, 2024"},{"ticker":"LYFT","pricing_date_label":"Mar 28, 2019","day_180_label":"Sep 24, 2019","day_180_weekday":"Tuesday","market_opens":124,"next_open_session_label":"Sep 24, 2019"},{"ticker":"UBER","pricing_date_label":"May 9, 2019","day_180_label":"Nov 5, 2019","day_180_weekday":"Tuesday","market_opens":125,"next_open_session_label":"Nov 5, 2019"},{"ticker":"ABNB","pricing_date_label":"Dec 9, 2020","day_180_label":"Jun 7, 2021","day_180_weekday":"Monday","market_opens":122,"next_open_session_label":"Jun 7, 2021"},{"ticker":"HOOD","pricing_date_label":"Jul 28, 2021","day_180_label":"Jan 24, 2022","day_180_weekday":"Monday","market_opens":124,"next_open_session_label":"Jan 24, 2022"},{"ticker":"CAVA","pricing_date_label":"Jun 14, 2023","day_180_label":"Dec 11, 2023","day_180_weekday":"Monday","market_opens":124,"next_open_session_label":"Dec 11, 2023"},{"ticker":"RDDT","pricing_date_label":"Mar 20, 2024","day_180_label":"Sep 16, 2024","day_180_weekday":"Monday","market_opens":123,"next_open_session_label":"Sep 16, 2024"}],"shape":"series","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),\nsessions AS (\n    SELECT DISTINCT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= toDateTime('2019-03-01 00:00:00')\n      AND window_start < toDateTime('2026-08-01 00:00:00')\n)\nSELECT i.ticker AS ticker,\n       formatDateTimeInJodaSyntax(i.pricing_date, 'MMM d, yyyy') AS pricing_date_label,\n       formatDateTimeInJodaSyntax(addDays(i.pricing_date, 180), 'MMM d, yyyy') AS day_180_label,\n       formatDateTime(addDays(i.pricing_date, 180), '%W') AS day_180_weekday,\n       countIf(s.session_date > i.pricing_date\n               AND s.session_date <= addDays(i.pricing_date, 180)) AS market_opens,\n       formatDateTimeInJodaSyntax(\n           minIf(s.session_date, s.session_date >= addDays(i.pricing_date, 180)),\n           'MMM d, yyyy') AS next_open_session_label\nFROM ipos AS i\nCROSS JOIN sessions AS s\nGROUP BY i.ticker, i.pricing_date\nORDER BY (minIf(s.session_date, s.session_date >= addDays(i.pricing_date, 180))\n          > addDays(i.pricing_date, 180)) DESC,\n         i.pricing_date ASC","computed_at":"2026-08-03T08:36:08.641439+00:00","elapsed":2.335795763}