Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of September 9, 2026 · refreshed weekly

When Do Options Start Trading After an IPO?

Options do not list on IPO day. See how many sessions the biggest new listings waited for a first option print, and the exchange rules that gate it.

You cannot trade options on a new IPO on its first day. The stock lists first, and a listed option chain appears only once the underlying clears the options exchanges' criteria for underlying securities, which for a large offering means a handful of sessions rather than weeks. Across the biggest US listings since January 2024, the shortest gap between a stock's first print on the tape and the first trade in one of its listed options was 1 trading sessions.

How long after an IPO do options start trading?

No calendar rule fixes the date, so the useful answer is a measured one. The panel below takes every US listing since January 2024, ranks them by the dollar value that changed hands on the opening session, keeps the twelve largest, and counts the trading sessions between each name's first equity print (its first recorded trade) and the first day one of its listed options traded.

QueryTrading sessions from first equity print to first listed option print
symbolequity_debutoption_debutoption_listing_gap
SKHYJuly 13, 2026July 14, 20261
BLSHAugust 13, 2025August 15, 20252
CBRSMay 14, 2026May 18, 20262
CRCLJune 5, 2025June 9, 20252
CRWVMarch 28, 2025April 1, 20252
FIGJuly 31, 2025August 4, 20252
FLYAugust 7, 2025August 11, 20252
KLARSeptember 10, 2025September 12, 20252
MDLNDecember 17, 2025December 19, 20252
QNTJune 4, 2026June 8, 20262
RDDTMarch 21, 2024March 25, 20242
INIOJune 4, 2026June 26, 202615
The exact SQL behind every number
WITH
listings AS (
    SELECT
        ticker,
        min(listing_date) AS listed_on
    FROM global_markets.stocks_ipos
    WHERE listing_date >= '2024-01-01'
      AND listing_date < today()
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
),
debut AS (
    SELECT
        a.ticker                                                 AS symbol,
        min(a.date)                                              AS debut_date,
        argMin(toFloat64(a.close) * toFloat64(a.volume), a.date) AS debut_turnover
    FROM global_markets.stocks_daily_aggs AS a
    INNER JOIN listings AS l ON l.ticker = a.ticker
    WHERE a.date >= '2024-01-01'
      AND a.date >= l.listed_on
    GROUP BY a.ticker
),
first_option AS (
    SELECT
        g.underlying_symbol AS symbol,
        min(g.date)         AS option_date
    FROM global_markets.options_greeks AS g
    INNER JOIN debut AS d ON d.symbol = g.underlying_symbol
    WHERE g.date >= '2024-01-01'
      AND g.volume > 0
      AND g.date >= d.debut_date
    GROUP BY g.underlying_symbol
),
paired AS (
    SELECT
        d.symbol         AS symbol,
        d.debut_date     AS debut_date,
        f.option_date    AS option_date,
        d.debut_turnover AS debut_turnover
    FROM debut AS d
    INNER JOIN first_option AS f ON f.symbol = d.symbol
    ORDER BY debut_turnover DESC
    LIMIT 12
),
sessions AS (
    SELECT DISTINCT date AS d
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2024-01-01'
)
SELECT
    p.symbol AS symbol,
    concat(monthName(p.debut_date), ' ', toString(toDayOfMonth(p.debut_date)), ', ', toString(toYear(p.debut_date)))    AS equity_debut,
    concat(monthName(p.option_date), ' ', toString(toDayOfMonth(p.option_date)), ', ', toString(toYear(p.option_date))) AS option_debut,
    countIf(s.d > p.debut_date AND s.d <= p.option_date) AS option_listing_gap
FROM paired AS p
CROSS JOIN sessions AS s
GROUP BY symbol, equity_debut, option_debut
ORDER BY option_listing_gap, symbol
Run this yourself

SKHY moved fastest of the twelve. Its shares first printed on July 13, 2026, and the first listed option on it traded on July 14, 2026, a gap of 1 sessions. At the far end of the same panel, INIO went 15 sessions before its first option print. Twelve names is a thin sample, so the next panel widens it to the forty largest debuts over the same stretch and follows each one session by session from its own first day of trading.

QueryHow quickly the forty largest new listings got a traded option chain
session_numberpct_with_listed_optionsmedian_share_volume_mm
1034.47
22.510.93
367.56.69
4704.76
5807.36
6853.51
7902.65
892.53.35
9952.51
10952.3
11952.29
12952.65
13952.54
14951.9
15952.41
1697.52.42
1797.52.46
1897.52.74
1997.52.14
2097.52.29
The exact SQL behind every number
WITH
listings AS (
    SELECT
        ticker,
        min(listing_date) AS listed_on
    FROM global_markets.stocks_ipos
    WHERE listing_date >= '2024-01-01'
      AND listing_date < today()
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
),
debut AS (
    SELECT
        a.ticker                                                 AS symbol,
        min(a.date)                                              AS debut_date,
        argMin(toFloat64(a.close) * toFloat64(a.volume), a.date) AS debut_turnover
    FROM global_markets.stocks_daily_aggs AS a
    INNER JOIN listings AS l ON l.ticker = a.ticker
    WHERE a.date >= '2024-01-01'
      AND a.date >= l.listed_on
    GROUP BY a.ticker
),
cohort AS (
    SELECT
        symbol,
        debut_date
    FROM debut
    ORDER BY debut_turnover DESC
    LIMIT 40
),
first_option AS (
    SELECT
        g.underlying_symbol AS symbol,
        min(g.date)         AS option_date
    FROM global_markets.options_greeks AS g
    INNER JOIN cohort AS c ON c.symbol = g.underlying_symbol
    WHERE g.date >= '2024-01-01'
      AND g.volume > 0
      AND g.date >= c.debut_date
    GROUP BY g.underlying_symbol
),
ramp AS (
    SELECT
        a.ticker                                                 AS symbol,
        a.date                                                   AS d,
        row_number() OVER (PARTITION BY a.ticker ORDER BY a.date) AS session_no,
        toFloat64(a.volume) / 1e6                                AS shares_mm
    FROM global_markets.stocks_daily_aggs AS a
    INNER JOIN cohort AS c ON c.symbol = a.ticker
    WHERE a.date >= '2024-01-01'
      AND a.date >= c.debut_date
)
SELECT
    r.session_no AS session_number,
    round(100 * countIf(f.option_date >= toDate('2024-01-01') AND r.d >= f.option_date) / count(), 1) AS pct_with_listed_options,
    round(quantileDeterministic(r.shares_mm, cityHash64(r.symbol)), 2)                               AS median_share_volume_mm
FROM ramp AS r
LEFT JOIN first_option AS f ON f.symbol = r.symbol
WHERE r.session_no <= 20
GROUP BY session_number
ORDER BY session_number
Run this yourself

Read the percentage line first. By session 2, 2.5% of the forty had printed a listed option. By session 5 the share was 80%, and at session 20 it stood at 97.5%. The bars carry the other half of the picture. Median volume across these names was 34.47 million shares on the opening session, against 2.29 million at session 20. Hold on to that opening figure: one session of that size covers the twelve-month volume guideline in the listing standard many times over.

What has to happen before options can list on a new stock?

An option chain exists once an options exchange certifies the underlying against a written standard and files a listing certificate with the Options Clearing Corporation (OCC), the clearinghouse that issues every listed US option. The standard is public. NYSE American publishes it as Rule 915, Cboe as Rule 4.3, and Nasdaq ISE as Options 4, Section 3, all titled Criteria for Underlying Securities. The wording varies between rulebooks; the thresholds match. As of September 2026 they run:

  • The security is duly registered and is an NMS stock, the Regulation NMS label for a security listed on a national securities exchange.
  • At least 7,000,000 shares are publicly held, counting only shares owned by persons other than those required to report their holdings under Section 16(a) of the Securities Exchange Act. Insider and control blocks are excluded from that count.
  • At least 2,000 holders of the security.
  • Trading volume across all markets of at least 2,400,000 shares over the preceding twelve months.
  • For a covered security, a closing price of at least $3.00 on each of the three consecutive business days before the exchange submits its certificate to the OCC. The rulebooks call this the three-day lookback.

A company that listed nine days ago has no twelve-month volume record, and in its first days no three-day price history either. Two pieces of drafting carry the standard across that gap. The guidelines apply absent exceptional circumstances, which leaves the exchange judgment on the historical tests, and the price test has an explicit IPO waiver written into it.

The waiver is the part worth knowing by date. In an order dated July 27, 2023 (Release 34-98013), the SEC approved an NYSE American change that waives the three-day lookback for a covered security whose IPO market capitalization, measured at the offering price, is at least $3 billion. Options on such a listing may be listed and traded starting on or after the second business day following the IPO day, not counting the IPO day itself. Nasdaq ISE filed matching language for Options 4, Section 3 the same year. The order spells out the arithmetic. Under the older text, an IPO priced on a Monday could not have options trading until Friday. Under the waiver, the exchange can submit its certificate on Tuesday and the chain can open on Wednesday.

One more clock sits underneath all of it. The Options Listing Procedures Plan requires the certificate to reach the OCC no later than 11:00 a.m. Chicago time on the trading day before options trading begins, which is the mechanical step behind a chain appearing at an opening bell rather than mid-session.

How do I check whether a new ticker has options yet?

  1. Open the option chain for the ticker at your broker. A name that has not been certified returns no expirations at all, rather than a chain of empty rows.
  2. Count the expirations on offer. A freshly certified underlying usually carries only the nearest weekly and monthly dates.
  3. Read the daily listing notices the options exchanges publish. Each newly approved underlying is named there the day before its options begin trading.
  4. Check the tape for the underlying's first option print, which is what the panels on this page do.

If the chain is live, reading a new option chain works the same way it does on any other name, with one difference worth expecting: there is much less of it. None of this shares a clock with the lockup or the quiet period, which run on their own schedules and are covered in IPO lockup expiration and the IPO quiet period.

Why the first option chain on an IPO is thin

Certification gets a name a chain. It does not get it a deep one. Exchanges add strikes around the level where the stock actually trades and add expirations on the standard cycle, and a first chain covers a narrow band of strikes with a couple of near-dated expirations.

QueryHow a new option chain widens: strikes and expirations traded
weeks_since_first_optionmedian_strikes_tradedmedian_expirations_traded
094
1104
2104
3114
4114
5114
6125
7125
8125
9125
10125
11125
The exact SQL behind every number
WITH
listings AS (
    SELECT
        ticker,
        min(listing_date) AS listed_on
    FROM global_markets.stocks_ipos
    WHERE listing_date >= '2024-01-01'
      AND listing_date < today()
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
),
debut AS (
    SELECT
        a.ticker                                                 AS symbol,
        min(a.date)                                              AS debut_date,
        argMin(toFloat64(a.close) * toFloat64(a.volume), a.date) AS debut_turnover
    FROM global_markets.stocks_daily_aggs AS a
    INNER JOIN listings AS l ON l.ticker = a.ticker
    WHERE a.date >= '2024-01-01'
      AND a.date >= l.listed_on
    GROUP BY a.ticker
),
cohort AS (
    SELECT
        symbol,
        debut_date
    FROM debut
    ORDER BY debut_turnover DESC
    LIMIT 40
),
first_option AS (
    SELECT
        g.underlying_symbol AS symbol,
        min(g.date)         AS option_date
    FROM global_markets.options_greeks AS g
    INNER JOIN cohort AS c ON c.symbol = g.underlying_symbol
    WHERE g.date >= '2024-01-01'
      AND g.volume > 0
      AND g.date >= c.debut_date
    GROUP BY g.underlying_symbol
),
daily_chain AS (
    SELECT
        g.underlying_symbol             AS symbol,
        g.date                          AS d,
        uniqExact(g.strike_price)       AS strikes,
        uniqExact(g.expiration_date)    AS expiries
    FROM global_markets.options_greeks AS g
    INNER JOIN first_option AS f ON f.symbol = g.underlying_symbol
    WHERE g.volume > 0
      AND g.date >= f.option_date
      AND dateDiff('day', f.option_date, g.date) < 84
    GROUP BY symbol, d
)
SELECT
    intDiv(dateDiff('day', f.option_date, c.d), 7)                                       AS weeks_since_first_option,
    toUInt32(round(quantileDeterministic(toFloat64(c.strikes), cityHash64(c.symbol))))   AS median_strikes_traded,
    toUInt32(round(quantileDeterministic(toFloat64(c.expiries), cityHash64(c.symbol))))  AS median_expirations_traded
FROM daily_chain AS c
INNER JOIN first_option AS f ON f.symbol = c.symbol
GROUP BY weeks_since_first_option
ORDER BY weeks_since_first_option
Run this yourself

In its first week of listed life, the median new chain here traded 9 distinct strikes across 4 expirations, against 12 strikes and 5 expirations by week 11. Fewer strikes and fewer expirations also means fewer resting orders at each one, and quoted spreads on a young chain start wide.

The other missing piece is time. A LEAPS contract is a listed option with more than a year until expiration, and long-dated series are added on the exchanges' own schedule rather than at certification.

QueryHow long-dated a new chain gets in its first twelve weeks
weeks_since_first_optionpct_with_leapsmedian_longest_dte
020210
127.5208
232.5227
332.5224
435221
533.3239
633.3241
738.5245
837.8246
941.7278
1044.4302
1145.7322
The exact SQL behind every number
WITH
listings AS (
    SELECT
        ticker,
        min(listing_date) AS listed_on
    FROM global_markets.stocks_ipos
    WHERE listing_date >= '2024-01-01'
      AND listing_date < today()
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
),
debut AS (
    SELECT
        a.ticker                                                 AS symbol,
        min(a.date)                                              AS debut_date,
        argMin(toFloat64(a.close) * toFloat64(a.volume), a.date) AS debut_turnover
    FROM global_markets.stocks_daily_aggs AS a
    INNER JOIN listings AS l ON l.ticker = a.ticker
    WHERE a.date >= '2024-01-01'
      AND a.date >= l.listed_on
    GROUP BY a.ticker
),
cohort AS (
    SELECT
        symbol,
        debut_date
    FROM debut
    ORDER BY debut_turnover DESC
    LIMIT 40
),
first_option AS (
    SELECT
        g.underlying_symbol AS symbol,
        min(g.date)         AS option_date
    FROM global_markets.options_greeks AS g
    INNER JOIN cohort AS c ON c.symbol = g.underlying_symbol
    WHERE g.date >= '2024-01-01'
      AND g.volume > 0
      AND g.date >= c.debut_date
    GROUP BY g.underlying_symbol
),
daily_chain AS (
    SELECT
        g.underlying_symbol   AS symbol,
        g.date                AS d,
        max(g.days_to_expiry) AS longest_dte
    FROM global_markets.options_greeks AS g
    INNER JOIN first_option AS f ON f.symbol = g.underlying_symbol
    WHERE g.volume > 0
      AND g.date >= f.option_date
      AND dateDiff('day', f.option_date, g.date) < 84
    GROUP BY symbol, d
),
weekly AS (
    SELECT
        c.symbol                                       AS symbol,
        intDiv(dateDiff('day', f.option_date, c.d), 7) AS wk,
        max(c.longest_dte)                             AS longest_dte
    FROM daily_chain AS c
    INNER JOIN first_option AS f ON f.symbol = c.symbol
    GROUP BY symbol, wk
)
SELECT
    wk                                                                                    AS weeks_since_first_option,
    round(100 * countIf(longest_dte > 365) / count(), 1)                                  AS pct_with_leaps,
    toUInt32(round(quantileDeterministic(toFloat64(longest_dte), cityHash64(symbol))))    AS median_longest_dte
FROM weekly
GROUP BY wk
ORDER BY wk
Run this yourself

In the first week after the first option print, 20% of these names traded a contract expiring more than 365 days out, and the median longest expiration on the board ran 210 days. By week 11 the share stood at 45.7% with a median longest expiration of 322 days. The expiration calendar those series arrive on is laid out in when options expire.

FAQ

Can you buy options on a stock the day it goes public?

No. Options are listed only after an options exchange certifies the underlying against its criteria for underlying securities and files a listing certificate with the OCC. On the IPO day itself, no listed option on the new ticker exists.

How soon can options list after an IPO?

As of September 2026, a covered security with an IPO market capitalization of at least $3 billion at the offering price may have options listed and traded starting on or after the second business day following the IPO day, under the three-day lookback waiver the SEC approved in July 2023. Other listings work through the standard price and volume tests first.

Do all new listings get options?

No. Many never clear the publicly held share count or the twelve-month volume guideline. The second panel above tracks the forty largest debuts since January 2024, and 97.5% of them had printed a listed option by session 20.

Why does a new IPO have so few strikes?

A newly certified underlying starts with a narrow band of strikes around the current price and a small set of near-dated expirations. Exchanges add strikes as the stock moves through new price levels, and add expirations as the cycle rolls forward.

What is a covered security in the options listing rules?

It is the term from Section 18(b)(1)(A) of the Securities Act of 1933 for a security listed on a national securities exchange such as the NYSE or Nasdaq. The $3.00 three-day price test applies to covered securities, and the IPO waiver applies only to them.


Every panel here ships with the SQL that produced it, so each count can be re-run rather than taken on faith. To check whether a fresh listing has printed its first option yet, ask the question in plain English on the Strasmore terminal.

#options#ipos#new listings#listing standards#option chains