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.
| symbol | equity_debut | option_debut | option_listing_gap |
|---|---|---|---|
| SKHY | July 13, 2026 | July 14, 2026 | 1 |
| BLSH | August 13, 2025 | August 15, 2025 | 2 |
| CBRS | May 14, 2026 | May 18, 2026 | 2 |
| CRCL | June 5, 2025 | June 9, 2025 | 2 |
| CRWV | March 28, 2025 | April 1, 2025 | 2 |
| FIG | July 31, 2025 | August 4, 2025 | 2 |
| FLY | August 7, 2025 | August 11, 2025 | 2 |
| KLAR | September 10, 2025 | September 12, 2025 | 2 |
| MDLN | December 17, 2025 | December 19, 2025 | 2 |
| QNT | June 4, 2026 | June 8, 2026 | 2 |
| RDDT | March 21, 2024 | March 25, 2024 | 2 |
| INIO | June 4, 2026 | June 26, 2026 | 15 |
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, symbolSKHY 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.
| session_number | pct_with_listed_options | median_share_volume_mm |
|---|---|---|
| 1 | 0 | 34.47 |
| 2 | 2.5 | 10.93 |
| 3 | 67.5 | 6.69 |
| 4 | 70 | 4.76 |
| 5 | 80 | 7.36 |
| 6 | 85 | 3.51 |
| 7 | 90 | 2.65 |
| 8 | 92.5 | 3.35 |
| 9 | 95 | 2.51 |
| 10 | 95 | 2.3 |
| 11 | 95 | 2.29 |
| 12 | 95 | 2.65 |
| 13 | 95 | 2.54 |
| 14 | 95 | 1.9 |
| 15 | 95 | 2.41 |
| 16 | 97.5 | 2.42 |
| 17 | 97.5 | 2.46 |
| 18 | 97.5 | 2.74 |
| 19 | 97.5 | 2.14 |
| 20 | 97.5 | 2.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_numberRead 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?
- 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.
- Count the expirations on offer. A freshly certified underlying usually carries only the nearest weekly and monthly dates.
- Read the daily listing notices the options exchanges publish. Each newly approved underlying is named there the day before its options begin trading.
- 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.
| weeks_since_first_option | median_strikes_traded | median_expirations_traded |
|---|---|---|
| 0 | 9 | 4 |
| 1 | 10 | 4 |
| 2 | 10 | 4 |
| 3 | 11 | 4 |
| 4 | 11 | 4 |
| 5 | 11 | 4 |
| 6 | 12 | 5 |
| 7 | 12 | 5 |
| 8 | 12 | 5 |
| 9 | 12 | 5 |
| 10 | 12 | 5 |
| 11 | 12 | 5 |
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_optionIn 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.
| weeks_since_first_option | pct_with_leaps | median_longest_dte |
|---|---|---|
| 0 | 20 | 210 |
| 1 | 27.5 | 208 |
| 2 | 32.5 | 227 |
| 3 | 32.5 | 224 |
| 4 | 35 | 221 |
| 5 | 33.3 | 239 |
| 6 | 33.3 | 241 |
| 7 | 38.5 | 245 |
| 8 | 37.8 | 246 |
| 9 | 41.7 | 278 |
| 10 | 44.4 | 302 |
| 11 | 45.7 | 322 |
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 wkIn 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.