{"slug":"when-do-options-become-available-after-an-ipo","qid":"leaps_arrival","label":"How long-dated a new chain gets in its first twelve weeks","post_title":"When Do Options Start Trading After an IPO?","post_url":"/blog/when-do-options-become-available-after-an-ipo#q-leaps_arrival","columns":["weeks_since_first_option","pct_with_leaps","median_longest_dte"],"rows":[{"weeks_since_first_option":0,"pct_with_leaps":20,"median_longest_dte":210},{"weeks_since_first_option":1,"pct_with_leaps":27.5,"median_longest_dte":208},{"weeks_since_first_option":2,"pct_with_leaps":32.5,"median_longest_dte":227},{"weeks_since_first_option":3,"pct_with_leaps":32.5,"median_longest_dte":224},{"weeks_since_first_option":4,"pct_with_leaps":35,"median_longest_dte":221},{"weeks_since_first_option":5,"pct_with_leaps":33.3,"median_longest_dte":239},{"weeks_since_first_option":6,"pct_with_leaps":33.3,"median_longest_dte":241},{"weeks_since_first_option":7,"pct_with_leaps":38.5,"median_longest_dte":245},{"weeks_since_first_option":8,"pct_with_leaps":37.8,"median_longest_dte":246},{"weeks_since_first_option":9,"pct_with_leaps":41.7,"median_longest_dte":278},{"weeks_since_first_option":10,"pct_with_leaps":44.4,"median_longest_dte":302},{"weeks_since_first_option":11,"pct_with_leaps":45.7,"median_longest_dte":322}],"shape":"ranking","sql":"WITH\nlistings AS (\n    SELECT\n        ticker,\n        min(listing_date) AS listed_on\n    FROM global_markets.stocks_ipos\n    WHERE listing_date >= '2024-01-01'\n      AND listing_date < today()\n      AND ticker NOT IN ('SPCX')\n    GROUP BY ticker\n),\ndebut AS (\n    SELECT\n        a.ticker                                                 AS symbol,\n        min(a.date)                                              AS debut_date,\n        argMin(toFloat64(a.close) * toFloat64(a.volume), a.date) AS debut_turnover\n    FROM global_markets.stocks_daily_aggs AS a\n    INNER JOIN listings AS l ON l.ticker = a.ticker\n    WHERE a.date >= '2024-01-01'\n      AND a.date >= l.listed_on\n    GROUP BY a.ticker\n),\ncohort AS (\n    SELECT\n        symbol,\n        debut_date\n    FROM debut\n    ORDER BY debut_turnover DESC\n    LIMIT 40\n),\nfirst_option AS (\n    SELECT\n        g.underlying_symbol AS symbol,\n        min(g.date)         AS option_date\n    FROM global_markets.options_greeks AS g\n    INNER JOIN cohort AS c ON c.symbol = g.underlying_symbol\n    WHERE g.date >= '2024-01-01'\n      AND g.volume > 0\n      AND g.date >= c.debut_date\n    GROUP BY g.underlying_symbol\n),\ndaily_chain AS (\n    SELECT\n        g.underlying_symbol   AS symbol,\n        g.date                AS d,\n        max(g.days_to_expiry) AS longest_dte\n    FROM global_markets.options_greeks AS g\n    INNER JOIN first_option AS f ON f.symbol = g.underlying_symbol\n    WHERE g.volume > 0\n      AND g.date >= f.option_date\n      AND dateDiff('day', f.option_date, g.date) < 84\n    GROUP BY symbol, d\n),\nweekly AS (\n    SELECT\n        c.symbol                                       AS symbol,\n        intDiv(dateDiff('day', f.option_date, c.d), 7) AS wk,\n        max(c.longest_dte)                             AS longest_dte\n    FROM daily_chain AS c\n    INNER JOIN first_option AS f ON f.symbol = c.symbol\n    GROUP BY symbol, wk\n)\nSELECT\n    wk                                                                                    AS weeks_since_first_option,\n    round(100 * countIf(longest_dte > 365) / count(), 1)                                  AS pct_with_leaps,\n    toUInt32(round(quantileDeterministic(toFloat64(longest_dte), cityHash64(symbol))))    AS median_longest_dte\nFROM weekly\nGROUP BY wk\nORDER BY wk","computed_at":"2026-09-09T01:25:31.376470+00:00","elapsed":59.432224694}