Strasmore Research
Learn am Matt ConnorBy Matt Connor · Updated 2026-09-30

IPO Lockup Expiry: Wetin E Mean & Release Date

IPO lockup expiry na when insiders fit sell shares, commonly 180 days after listing. See where to find the exact date and how five unlocks trade.

IPO lockup na contract ban wey stop insiders from selling their shares for a fixed period after listing. For traditional IPO, the period dey commonly around 180 days. When the lockup expire, number of shares wey fit enter market for sale fit multiply overnight. Market don know the date months ahead. This page measure wetin really happen for five well-known expiry days: price, volume and options tape. E no dey base conclusion on just one anecdote.

Wetin be IPO lockup period?

Lockup na contract, no be regulation. The length, coverage and conditions wey fit trigger early release dey inside each deal prospectus. E dey also dey inside agreements wey insiders, founders, employees and pre-IPO funds sign with the underwriters. As long as lockup still hold, the tradable float na roughly the shares wey dem sell for the offering. The float guide measure say IPOs for H1 2026 float median of just under one-third of their shares when dem list. This mean say the locked majority often pass everything wey dey trade by far. Expiry no force anybody to sell. E only make selling possible, and markets dey spend the weeks before am debating the difference.

Length dey vary based on deal type, and “180 days” na common practice, no be rule. Traditional IPOs normally use about 180 days. SPAC sponsors commonly agree to around one year, often with early release if the shares stay above a stated price. Follow-on offerings frequently use 90-day lockups. Many modern deals also stagger the release into tranches. Employee shares fit release on one date, while early investors release on another. Dem do this so one date no carry the whole overhang.

Actual expiration date wey you fit find

The real date dey inside the deal filings, no be date arithmetic. Final prospectus, wey be 424(B)(4) filed for SEC EDGAR site when pricing happen, explain the terms for two sections: Shares Eligible for Future Sale (how many shares go unlock, and when) and Underwriting (who dey bound, and wetin fit allow early release). Company investor-relations pages often repeat the date. Counting 180 days from the listing na fallback guess, but the guess fit miss: Lyft 2019 unlock happen on August 19, weeks before 180-day calculation from the March 29 listing. The deal terms themselves set the earlier date. Underwriters fit also waive lockup early, and dem normally disclose such waivers.

Before the date: Facebook's run-in

The most-watched lockup for market history na Facebook November 14, 2012 release, when one big tranche of insider shares become free at once. The claim wey people usually attach to that day na say market don price known dates ahead of time. The two weeks before the date na the real test:

QueryFB daily closes and volume, Oct 22 – Nov 13, 2012: di run-in to the giant lockup expiry (as-traded prices)
sessioncloseshares mday change pctvs peak close pct
2012-10-2219.3231.10-16.8
2012-10-2319.551.40.9-16
2012-10-2423.21193.1190
2012-10-2522.5374.3-2.9-2.9
2012-10-2621.9470.7-2.6-5.5
2012-10-3121.1294.4-3.7-9
2012-11-0121.2236.30.5-8.6
2012-11-0221.1837.7-0.2-8.8
2012-11-0521.2531.30.3-8.5
2012-11-0621.1927.2-0.3-8.7
2012-11-0720.4832.7-3.4-11.8
2012-11-082033.7-2.4-13.8
2012-11-0919.1941-4.1-17.3
2012-11-1220.09634.7-13.5
2012-11-1319.8870.2-1.1-14.4
The exact SQL behind every number
SELECT session, close, shares_m,
       round((close / lagInFrame(close, 1, close) OVER (ORDER BY session) - 1) * 100, 1) AS day_change_pct,
       round((close / max(close) OVER () - 1) * 100, 1) AS vs_peak_close_pct
FROM (
    SELECT toString(toDate(toTimeZone(window_start, 'America/New_York'))) AS session,
           round(argMax(close, window_start), 2) AS close,
           round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'FB'
      AND window_start >= toDateTime('2012-10-22 00:00:00')
      AND window_start < toDateTime('2012-11-14 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session
)
ORDER BY session
Run am yourself

For 2012-10-24, the session after the company report third-quarter results, FB close at $23.21, up 19% on 193.1 million shares. Na the highest close for the window. E later give back the gain before the date. On the eve of the unlock, the stock close at $19.88, -14.4% below that peak and within a few percent of the $19.5 level wey e close at before the report. (The gap for the table na real. U.S. equity markets close October 29–30, 2012 because of Hurricane Sandy.) Anybody wey decide to sell before the unlock get weeks to do am calmly. The prospectus don list the date since May.

The day itself, and the two weeks after

Then the most feared date on the young stock's calendar arrived:

QueryFB from eve of Nov 14, 2012 unlock reach month-end: di expiry-day pop hold?
sessioncloseshares mvs eve close pct
2012-11-1319.8870.20
2012-11-1422.3621612.5
2012-11-1522.187711.6
2012-11-1623.5510618.5
2012-11-1922.981.815.2
2012-11-2023.144.816.2
2012-11-2124.3387.422.4
2012-11-232428.320.7
2012-11-2625.92117.130.4
2012-11-2726.168231.6
2012-11-2826.344832.5
2012-11-2927.383.737.3
2012-11-3027.9885.740.7
The exact SQL behind every number
SELECT session, close, shares_m,
       round((close / first_value(close) OVER (ORDER BY session) - 1) * 100, 1) AS vs_eve_close_pct
FROM (
    SELECT toString(toDate(toTimeZone(window_start, 'America/New_York'))) AS session,
           round(argMax(close, window_start), 2) AS close,
           round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'FB'
      AND window_start >= toDateTime('2012-11-13 00:00:00')
      AND window_start < toDateTime('2012-12-01 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session
)
ORDER BY session
Run am yourself

On 2012-11-14, for the unlock day itself, FB close at $22.36, 12.5% above the previous day close, on 216 million shares compared with 70.2 million for the session before. The follow-through answer the next question wey skeptic suppose ask: did the jump survive actual insider selling? E survive, and e continue. By 2012-11-30, the stock stand 40.7% above the previous day close, while volume remain above the pre-expiry level for most of the period. When unlocked shares dey sell, dem show for volume. Here, the market absorb the supply while price still rise. The usual interpretation be say expiry na the most clearly signposted event for the young stock so far. Fear don already enter the price before the date. So when the date arrive, e remove uncertainty instead of adding to am.

Beyond Facebook: five expiries, measured

One rally na just one story. Here na the same measurement: expiry-day close compared with the previous session, plus the volume multiple, across five of the most-watched unlocks for the past fifteen years. Each date na the deal’s most-reported unlock session. Some of these companies release shares in multiple tranches, so each row na one cliff, no be the full overhang.

QueryFive famous lockup expirations: expiry-day price change and volume multiple vs. di prior session
tickerexpiry sessionprior closeexpiry closeexpiry day change pctexpiry shares mvolume multiple
FB2012-11-1419.8822.3612.52163.1
TWTR2014-05-0638.7231.86-17.7123.812.3
SNAP2017-07-3113.8213.68-1.146.82.9
LYFT2019-08-1952.5151.67-1.622.93.9
UBER2019-11-0628.0126.94-3.9114.22.3
The exact SQL behind every number
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(close, window_start) AS close,
           sum(toFloat64(volume)) AS vol
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((ticker = 'FB'   AND window_start >= toDateTime('2012-11-12 00:00:00') AND window_start < toDateTime('2012-11-15 00:00:00'))
        OR (ticker = 'TWTR' AND window_start >= toDateTime('2014-05-04 00:00:00') AND window_start < toDateTime('2014-05-07 00:00:00'))
        OR (ticker = 'SNAP' AND window_start >= toDateTime('2017-07-27 00:00:00') AND window_start < toDateTime('2017-08-01 00:00:00'))
        OR (ticker = 'LYFT' AND window_start >= toDateTime('2019-08-15 00:00:00') AND window_start < toDateTime('2019-08-20 00:00:00'))
        OR (ticker = 'UBER' AND window_start >= toDateTime('2019-11-04 00:00:00') AND window_start < toDateTime('2019-11-07 00:00:00')))
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, d
),
packed AS (
    SELECT ticker, arraySort(x -> x.1, groupArray((d, close, vol))) AS rows
    FROM daily
    GROUP BY ticker
)
SELECT ticker,
       toString(rows[-1].1) AS expiry_session,
       round(rows[-2].2, 2) AS prior_close,
       round(rows[-1].2, 2) AS expiry_close,
       round((rows[-1].2 / rows[-2].2 - 1) * 100, 1) AS expiry_day_change_pct,
       round(rows[-1].3 / 1e6, 1) AS expiry_shares_m,
       round(rows[-1].3 / rows[-2].3, 1) AS volume_multiple
FROM packed
ORDER BY expiry_session
Run am yourself

The distribution, no be the story, na the lesson. Four out of the five close lower that day, while FB’s 12.5% rise na the outlier, no be the normal pattern. Most of the declines shallow: SNAP -1.1%, LYFT -1.6%, UBER -3.9%. Those sessions no go attract attention if the date no dey attached. Twitter na the exception: -17.7% on 12.3x the previous day’s volume, the biggest multiple for the table, on 2014-05-06, with 123.8 million shares changing hands that session. A marked date still fit break a stock. The thing wey every row get in common na the volume column: all five expiry sessions record at least double the previous session’s share count. Direction depend on the deal; the crowd wey show up no dey.

Options tape wey dey lead up to known date

Shareholders no be the only people wey dey position. Holder wey no fit or no wan sell before a known date fit buy puts instead. You fit see this pre-positioning for derivatives tape before the unlock happen. Uber’s November 6, 2019 lockup expiration na the clear example inside our options-trades coverage:

QueryUBER options tape into di Nov 6, 2019 lockup expiry: put and call contract volume by session
sessionput contracts kcall contracts kput share pctprints k
2019-10-2311.311.649.32.8
2019-10-2421.411.664.82.5
2019-10-2514.313.451.72.9
2019-10-289.614.939.13.1
2019-10-2943.519.469.25.6
2019-10-304025.461.26.7
2019-10-3151.230.962.49
2019-11-0165.531.467.610.4
2019-11-04171.5119.658.936.6
2019-11-05226.2132.263.146.6
2019-11-06245.3116.567.841.5
2019-11-0769.165.851.214.5
2019-11-0851.748.651.59.6
The exact SQL behind every number
SELECT toString(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) AS session,
       round(sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'P') / 1e3, 1) AS put_contracts_k,
       round(sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'C') / 1e3, 1) AS call_contracts_k,
       round(100.0 * sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'P') / sum(size), 1) AS put_share_pct,
       round(count() / 1e3, 1) AS prints_k
FROM global_markets.options_trades
WHERE ticker >= 'O:UBER19' AND ticker < 'O:UBER20'
  AND sip_timestamp >= toDateTime('2019-10-23 00:00:00') AND sip_timestamp < toDateTime('2019-11-09 00:00:00')
GROUP BY session
ORDER BY session
Run am yourself

Two weeks before, on 2019-10-23, UBER’s options tape nearly balance: puts na 49.3% of contract volume, with 11.3 thousand put contracts. As the date dey near, tape become more put-heavy and much bigger. On 2019-11-06, the expiry day, 245.3 thousand put contracts trade. Na many times the number wey trade when the window open, and puts make up 67.8% of all contracts for that day. One important caveat: Uber quarterly report come out November 4 after market close for that same week. So, the two dates wey people dey watch sit only two sessions apart for this tape. For the session after the unlock, put share quickly return to 51.2%, near even, while contract count drop sharply from the peak. People hedge scheduled risk; after that, the hedges disappear.

Holding through an unlock: wetin practitioners dey check

Nothing for here be advice; na only the mechanics wey worth checking. Get the real date from the filing, the 424(B)(4), no be 180-day arithmetic, and check whether the release dey happen in stages. Watch volume, no be price alone: if expiry pass with ordinary volume, e mean say the unlock remain theoretical, and insider supply go show for tape as trades dey print. Hedging a known date dey cost premium: puts for event wey everybody fit see dey tend to expensive, and wetin e cost to trade options cover the spread and premium arithmetic wey any hedge go pay. Staggered releases dey reduce cliffs by design, as dem spread the overhang across several dates.

The next big expiry for this site's watchlist belong to SpaceX's June 12, 2026 listing. If person apply the customary 180-day convention, the window fit end around early December 2026. Na arithmetic based on the receipted listing date, no be statement of the deal's actual terms. The actual terms dey inside the prospectus and fit differ. The SK Hynix debut join the same watchlist one month later, while the H1 2026 IPO class add more of these dates into late 2026.

Lockup expiration FAQ

Wetin be IPO lockup period?

Na agreement wey company insiders, founders, employees and pre-IPO investors sign, wey stop dem from selling shares for a fixed period after IPO. The exact terms dey inside each deal prospectus, and underwriters fit waive the restriction before time.

How long IPO lockups dey last?

Normally, traditional IPO lockup dey last about 180 days. But that number na convention. SPAC sponsor lockups often last about one year, with price-based early release. Follow-on offerings commonly use 90 days. Many deals also stagger the release across different dates.

Stocks dey always fall when lockup expire?

No. Among the five major expiries wey we measure above, four close lower. One, Facebook for November 2012, close 12.5% higher on 3.1x volume. The worst of the five, Twitter’s May 2014 unlock, print -17.7% that day. The dependable pattern na volume, no be direction. Every one of the five trade at least double the previous session’s volume.

How I fit find stock lockup expiration date?

Check the deal final prospectus, form 424(B)(4), for SEC EDGAR site. Look under Shares Eligible for Future Sale and Underwriting. Those sections show the duration, share count for each tranche, and any early-release triggers. Na there you go find the authoritative date, because headlines often only estimate am.

When SpaceX lockup expiration go happen?

The actual deal terms dey inside the prospectus. If we apply the customary 180-day convention to the June 12, 2026 listing date, e point to early December 2026. Treat that as arithmetic, no be confirmed date.


Every panel above na stored, versioned query over the as-traded tape. You fit expand the SQL under any panel, or measure the next unlock session yourself on the Strasmore terminal.

#ipos#lockup#float#market structure