Upcoming IPO Lockup Expirations: Next 90 Days
A refreshed calendar of upcoming IPO lockup expirations for US listings in the next 90 days: listing date, 180-day date, and each close versus offer price.
Upcoming IPO lockup expirations are the dates on which a newly listed company's insiders and pre-IPO investors become free to sell shares for the first time. A lockup is the contractual ban on selling that the underwriters place on those holders at the IPO, most often for 180 days. The calendar below lists every priced US IPO whose conventional 180-day lockup lands inside the next 90 days, computed from the listing date, with each stock's latest close set against its offer price. It was computed on September 18, 2026, holds 57 names, and regenerates on the weekly refresh: a date that passes drops off and the next one moves up. The full mechanics, including whom the ban binds, are in what an IPO lockup expiration is.
Upcoming IPO lockup expirations in the next 90 days
The soonest conventional date in view belongs to KPETU (KPET Ultra Paceline Corp), listed on Mar 31, whose 180th day is Sun, Sep 27, 9 days out. The farthest is WLCOU on Tue, Dec 15, 88 days out. Read the table top to bottom as a countdown: the days_away column measures each date from the day the table was computed, and unlock_180d is the listing date plus 180 calendar days.
| ticker | company | listed_on | listed_label | unlock_180d | unlock_label | days_away | computed_on |
|---|---|---|---|---|---|---|---|
| KPETU | KPET Ultra Paceline Corp | 2026-03-31 | Mar 31 | 2026-09-27 | Sun, Sep 27 | 9 | September 18, 2026 |
| HMH | HMH Holding Inc. | 2026-04-01 | Apr 1 | 2026-09-28 | Mon, Sep 28 | 10 | September 18, 2026 |
| NHIVU | NewHold Investment Corp IV | 2026-04-14 | Apr 14 | 2026-10-11 | Sun, Oct 11 | 23 | September 18, 2026 |
| ARXS | Arxis Inc. | 2026-04-16 | Apr 16 | 2026-10-13 | Tue, Oct 13 | 25 | September 18, 2026 |
| MAIR | Madison Air Solutions Corp. | 2026-04-16 | Apr 16 | 2026-10-13 | Tue, Oct 13 | 25 | September 18, 2026 |
| ALMR | Alamar Biosciences Inc. | 2026-04-17 | Apr 17 | 2026-10-14 | Wed, Oct 14 | 26 | September 18, 2026 |
| AVEX | AEVEX Corp. | 2026-04-17 | Apr 17 | 2026-10-14 | Wed, Oct 14 | 26 | September 18, 2026 |
| KLRA | Kailera Therapeutics Inc. | 2026-04-17 | Apr 17 | 2026-10-14 | Wed, Oct 14 | 26 | September 18, 2026 |
| EMI | Encore Medical Inc. | 2026-04-22 | Apr 22 | 2026-10-19 | Mon, Oct 19 | 31 | September 18, 2026 |
| NHP | National Healthcare Properties Inc. | 2026-04-22 | Apr 22 | 2026-10-19 | Mon, Oct 19 | 31 | September 18, 2026 |
| YSWY | Yesway Inc | 2026-04-22 | Apr 22 | 2026-10-19 | Mon, Oct 19 | 31 | September 18, 2026 |
| ELMT | Elmet Group Co. The | 2026-04-23 | Apr 23 | 2026-10-20 | Tue, Oct 20 | 32 | September 18, 2026 |
| XE | X-Energy Inc. | 2026-04-24 | Apr 24 | 2026-10-21 | Wed, Oct 21 | 33 | September 18, 2026 |
| CXIIU | Churchill Capital Corp XII | 2026-04-28 | Apr 28 | 2026-10-25 | Sun, Oct 25 | 37 | September 18, 2026 |
| PSUS | Pershing Square USA Ltd. | 2026-04-29 | Apr 29 | 2026-10-26 | Mon, Oct 26 | 38 | September 18, 2026 |
| AVLN | Avalyn Pharma Inc. | 2026-04-30 | Apr 30 | 2026-10-27 | Tue, Oct 27 | 39 | September 18, 2026 |
| GCGRU | General Catalyst Global Resilience Merger Corp. | 2026-04-30 | Apr 30 | 2026-10-27 | Tue, Oct 27 | 39 | September 18, 2026 |
| SBMT | Silver Bow Mining Corp. | 2026-04-30 | Apr 30 | 2026-10-27 | Tue, Oct 27 | 39 | September 18, 2026 |
| WENCU | West Enclave Merger Corp. | 2026-04-30 | Apr 30 | 2026-10-27 | Tue, Oct 27 | 39 | September 18, 2026 |
| COAG | Hemab Therapeutics Holdings Inc. | 2026-05-01 | May 1 | 2026-10-28 | Wed, Oct 28 | 40 | September 18, 2026 |
The exact SQL behind every number
SELECT
ticker,
company,
toString(listed_d) AS listed_on,
concat(formatDateTime(listed_d, '%b'), ' ',
toString(toDayOfMonth(listed_d))) AS listed_label,
toString(unlock_d) AS unlock_180d,
concat(formatDateTime(unlock_d, '%a, %b'), ' ',
toString(toDayOfMonth(unlock_d))) AS unlock_label,
dateDiff('day', today(), unlock_d) AS days_away,
concat(monthName(today()), ' ',
toString(toDayOfMonth(today())), ', ',
toString(toYear(today()))) AS computed_on
FROM
(
SELECT
ticker,
argMax(issuer_name, _ingest_time) AS company,
argMax(toDate(listing_date), _ingest_time) AS listed_d,
addDays(listed_d, 180) AS unlock_d
FROM global_markets.stocks_ipos
WHERE ticker != ''
AND ticker NOT IN ('SPCX')
AND toDate(listing_date) BETWEEN today() - 180 AND today() - 90
AND ipo_status NOT IN ('pending', 'postponed', 'withdrawn', 'rumor', 'direct_listing_process')
AND positionCaseInsensitive(issuer_name, 'acquisition') = 0
AND final_issue_price > 0
GROUP BY ticker
)
ORDER BY unlock_d, tickerOne rule for reading the date column: it is the convention, not the contract. A 180-day term is what most US IPO underwriting agreements specify, and it is the only term a listing date can produce on its own. A prospectus can set a different length (90 days and a full year both occur) or a staggered schedule that frees a slice of the shares early, and none of that lives in the listing record. The methodology section below shows how to check a row against the prospectus; for the document itself, see how to find a lockup expiration date. When the 180th day lands on a weekend or a market holiday, the freed shares first trade on the next business day. The label carries the weekday for that reason.
How do these IPOs trade versus their offer price?
Where a stock sits relative to its offer price, the price at which the IPO shares were sold, is the first thing most readers check on a lockup calendar: it sets the paper gain each class of holder is sitting on, and a pre-IPO investor who paid a fraction of the offer holds a gain at almost any post-IPO level. The panel matches every calendar name to its latest daily close and expresses the gap as a percentage of the offer price, with the sign carrying the direction.
| ticker | offer_price | last_close | vs_offer_pct | priced_as_of |
|---|---|---|---|---|
| COAG | 18 | 41.06 | 128.1 | September 18, 2026 |
| PBLS | 20 | 40.54 | 102.7 | September 18, 2026 |
| ALMR | 17 | 32.05 | 88.5 | September 18, 2026 |
| AVLN | 18 | 33.3 | 85 | September 18, 2026 |
| ARXS | 28 | 50.08 | 78.9 | September 18, 2026 |
| ELMT | 14 | 22.01 | 57.2 | September 18, 2026 |
| NHP | 12 | 16.14 | 34.5 | September 18, 2026 |
| CNXU | 4 | 5.26 | 31.6 | September 18, 2026 |
| ODTX | 18 | 23.22 | 29 | September 18, 2026 |
| EROK | 18.5 | 23.81 | 28.7 | September 18, 2026 |
| LCLN | 20 | 25.33 | 26.6 | September 18, 2026 |
| SPTX | 18 | 22.16 | 23.1 | September 17, 2026 |
| SSMR | 13.5 | 16.42 | 21.7 | September 18, 2026 |
| CXIIU | 10 | 11.14 | 11.4 | September 14, 2026 |
| RACC | 10 | 11.1 | 11 | September 17, 2026 |
| YSWY | 20 | 21.76 | 8.8 | September 18, 2026 |
| KARD | 16 | 17.11 | 6.9 | September 18, 2026 |
| WHK | 26 | 27.32 | 5.1 | September 17, 2026 |
| CBRS | 185 | 193.92 | 4.8 | September 18, 2026 |
| FRBT | 18 | 18.84 | 4.7 | September 18, 2026 |
The exact SQL behind every number
SELECT
i.ticker AS ticker,
round(i.offer_px, 2) AS offer_price,
round(p.last_px, 2) AS last_close,
round((p.last_px / i.offer_px - 1) * 100, 1) AS vs_offer_pct,
concat(monthName(p.last_d), ' ',
toString(toDayOfMonth(p.last_d)), ', ',
toString(toYear(p.last_d))) AS priced_as_of
FROM
(
SELECT
ticker,
argMax(toFloat64(final_issue_price), _ingest_time) AS offer_px
FROM global_markets.stocks_ipos
WHERE ticker != ''
AND ticker NOT IN ('SPCX')
AND toDate(listing_date) BETWEEN today() - 180 AND today() - 90
AND ipo_status NOT IN ('pending', 'postponed', 'withdrawn', 'rumor', 'direct_listing_process')
AND positionCaseInsensitive(issuer_name, 'acquisition') = 0
AND final_issue_price > 0
GROUP BY ticker
) AS i
INNER JOIN
(
SELECT
ticker,
toFloat64(argMax(close, date)) AS last_px,
max(date) AS last_d
FROM global_markets.stocks_daily_aggs
WHERE date >= today() - 10
AND close > 0
GROUP BY ticker
) AS p ON p.ticker = i.ticker
ORDER BY vs_offer_pct DESC, tickerAs of September 18, 2026, the top row trades 128.1% against its offer price and the bottom row -83.8%, across 51 names that printed a close within the last ten sessions. A name that appears in the calendar but not here has no close on record in that window. The offer price is the final issue price from the IPO record, unadjusted for any later corporate action.
How many lockups are in the pipeline?
Each month's listings become the lockup calendar roughly six months later. The panel counts priced US listings by listing month over the trailing year, with SPACs and direct listings excluded under the same filter the calendar uses. The three months that sit about six months back are the ones filling the table above; the most recent months show what the calendar will hold half a year from now.
| month | month_label | ipo_count |
|---|---|---|
| 2025-09 | Sep 2025 | 7 |
| 2025-10 | Oct 2025 | 30 |
| 2025-11 | Nov 2025 | 13 |
| 2025-12 | Dec 2025 | 17 |
| 2026-01 | Jan 2026 | 13 |
| 2026-02 | Feb 2026 | 18 |
| 2026-03 | Mar 2026 | 7 |
| 2026-04 | Apr 2026 | 18 |
| 2026-05 | May 2026 | 21 |
| 2026-06 | Jun 2026 | 23 |
| 2026-07 | Jul 2026 | 15 |
| 2026-08 | Aug 2026 | 11 |
| 2026-09 | Sep 2026 | 1 |
The exact SQL behind every number
SELECT
formatDateTime(listing_month, '%Y-%m') AS month,
formatDateTime(listing_month, '%b %Y') AS month_label,
count() AS ipo_count
FROM
(
SELECT
ticker,
toStartOfMonth(argMax(toDate(listing_date), _ingest_time)) AS listing_month
FROM global_markets.stocks_ipos
WHERE ticker != ''
AND ticker NOT IN ('SPCX')
AND toDate(listing_date) BETWEEN today() - 365 AND today()
AND ipo_status NOT IN ('pending', 'postponed', 'withdrawn', 'rumor', 'direct_listing_process')
AND positionCaseInsensitive(issuer_name, 'acquisition') = 0
AND final_issue_price > 0
GROUP BY ticker
)
GROUP BY listing_month
ORDER BY listing_monthThe series runs from Sep 2025 (7 listings) to Sep 2026 (1 so far), with the end months clipped by the trailing-year window. Lockups cluster the way listings do: a heavy listing month becomes a heavy expiration month two quarters later, and the calendar's row count swings with it from one refresh to the next. The first-half 2026 IPO market review covers the listing side in detail, drawing on the same IPO record.
Can a lockup end early?
Yes, and a listing date alone cannot show it. There are two paths. The prospectus may carry an early-release provision, commonly a release after the first post-IPO earnings report if the stock has closed above a stated multiple of the offer price for a set number of days. Separately, the underwriters can waive the lockup for some or all holders at any time, and often do alongside a follow-on offering in which the sellers are the very holders the lockup binds. Either path surfaces in the issuer's own filings, usually an 8-K, the current report a company files with the SEC when something material happens. The panel below scans 8-K filings from issuers that listed in the last two years for a lock-up mention.
| ticker | filed_on | filed_label | form_type | lockup_mentions | filing_url |
|---|---|---|---|---|---|
| GRDN | 2026-09-10 | Sep 10 | 8-K | 7 | https://www.sec.gov/Archives/edgar/data/1802255/0001193125-26-387858.txt |
| NTHI | 2026-09-10 | Sep 10 | 8-K | 3 | https://www.sec.gov/Archives/edgar/data/1979414/0001829126-26-009977.txt |
| SWMR | 2026-09-10 | Sep 10 | 8-K | 7 | https://www.sec.gov/Archives/edgar/data/2092574/0001104659-26-106499.txt |
| MAIR | 2026-08-25 | Aug 25 | 8-K | 6 | https://www.sec.gov/Archives/edgar/data/2098430/0001628280-26-058764.txt |
| ROC | 2026-08-19 | Aug 19 | 8-K | 14 | https://www.sec.gov/Archives/edgar/data/2077709/0001213900-26-091418.txt |
| HAWK | 2026-08-13 | Aug 13 | 8-K | 10 | https://www.sec.gov/Archives/edgar/data/1750704/0001750704-26-000018.txt |
| ATHR | 2026-08-11 | Aug 11 | 8-K | 9 | https://www.sec.gov/Archives/edgar/data/2026353/0001493152-26-037023.txt |
| RACC | 2026-07-27 | Jul 27 | 8-K | 8 | https://www.sec.gov/Archives/edgar/data/2118032/0001193125-26-316954.txt |
| ATHR | 2026-07-21 | Jul 21 | 8-K | 9 | https://www.sec.gov/Archives/edgar/data/2026353/0001493152-26-034007.txt |
| JUNS | 2026-07-21 | Jul 21 | 8-K | 1 | https://www.sec.gov/Archives/edgar/data/1679628/0001493152-26-034077.txt |
| CSQR | 2026-07-17 | Jul 17 | 8-K | 1 | https://www.sec.gov/Archives/edgar/data/2105398/0001104659-26-084616.txt |
| CRCL | 2026-07-02 | Jul 2 | 8-K | 1 | https://www.sec.gov/Archives/edgar/data/1876042/0001876042-26-000205.txt |
| XE | 2026-06-04 | Jun 4 | 8-K | 5 | https://www.sec.gov/Archives/edgar/data/2088896/0001193125-26-256369.txt |
| ARXS | 2026-06-02 | Jun 2 | 8-K | 6 | https://www.sec.gov/Archives/edgar/data/2093536/0001193125-26-252459.txt |
| WGRX | 2026-05-29 | May 29 | 8-K | 10 | https://www.sec.gov/Archives/edgar/data/2030763/0001493152-26-026452.txt |
| FJET | 2026-05-22 | May 22 | 8-K | 4 | https://www.sec.gov/Archives/edgar/data/1947016/0001062993-26-002837.txt |
| JUNS | 2026-05-20 | May 20 | 8-K | 1 | https://www.sec.gov/Archives/edgar/data/1679628/0001493152-26-024547.txt |
| EROK | 2026-05-19 | May 19 | 8-K | 5 | https://www.sec.gov/Archives/edgar/data/2104882/0001193125-26-231118.txt |
| CAEP | 2026-05-11 | May 11 | 8-K | 2 | https://www.sec.gov/Archives/edgar/data/2034268/0001213900-26-054575.txt |
| CRCL | 2026-05-11 | May 11 | 8-K | 1 | https://www.sec.gov/Archives/edgar/data/1876042/0001876042-26-000148.txt |
The exact SQL behind every number
SELECT
k.ticker AS ticker,
toString(toDate(k.filing_date)) AS filed_on,
concat(formatDateTime(toDate(k.filing_date), '%b'), ' ',
toString(toDayOfMonth(toDate(k.filing_date)))) AS filed_label,
any(k.form_type) AS form_type,
max(countSubstringsCaseInsensitive(k.items_text, 'lock-up')
+ countSubstringsCaseInsensitive(k.items_text, 'lockup')) AS lockup_mentions,
any(k.filing_url) AS filing_url
FROM global_markets.stocks_8k_text AS k
WHERE k.ticker IN
(
SELECT ticker
FROM global_markets.stocks_ipos
WHERE ticker != ''
AND ticker NOT IN ('SPCX')
AND toDate(listing_date) BETWEEN today() - 730 AND today() - 30
AND ipo_status NOT IN ('pending', 'postponed', 'withdrawn', 'rumor', 'direct_listing_process')
AND positionCaseInsensitive(issuer_name, 'acquisition') = 0
AND final_issue_price > 0
)
AND toDate(k.filing_date) >= today() - 180
AND (positionCaseInsensitive(k.items_text, 'lock-up') > 0
OR positionCaseInsensitive(k.items_text, 'lockup') > 0)
GROUP BY k.ticker, k.accession_number, k.filing_date
ORDER BY k.filing_date DESC, k.ticker
LIMIT 25Matches over the last 180 days: 25, capped at 25, the newest from GRDN on Sep 10. A match is only a lead. A follow-on offering 8-K mentions lock-up agreements for the new deal; an earnings 8-K may simply restate the schedule. Open the filing from the link in the table and read the paragraph. Early lockup releases and waivers walks through the forms these take and who has the authority to grant them.
What happens in the two weeks after a lockup expires?
The question behind every lockup calendar is whether the stock drops once the shares are free. That measurement lives in do stocks fall after lockup expiration, which tracks the price path around past expiration dates from the same listing record and refreshes on its own schedule, so the figures are cited there rather than copied here. What this page adds is a checklist for the two weeks after any date in the table above:
- Volume against the stock's own average over the sessions before the date. A freed float (the shares available to trade) that is actually being sold shows up as a step in shares traded, whatever the price does.
- Form 4 filings. Section 16 insiders (officers and directors, plus any holder above 10%) report open-market sales within two business days, which puts the first insider sales on EDGAR inside the same week.
- The daily short volume ratio, the share of each day's volume marked as short sales. Traders who borrowed stock ahead of the date have fresh supply to cover against once it passes.
- A secondary offering filed at or just before the date. That is a common shape for an early release, and the 8-K panel above catches many of them.
How is each row computed?
Every row can be reproduced from the SQL under its panel. The steps:
- Source. The IPO listing record supplies ticker, issuer name, listing date and final issue price; the latest close comes from daily bars; filings come from the SEC EDGAR index and the 8-K text feed.
- Filters. Priced IPOs only. SPACs (any issuer with "acquisition" in its name) and direct listings are excluded: neither follows the 180-day convention. One reused symbol that tags two companies in vendor feeds is excluded in the SQL.
- Window. A listing date between 180 and 90 days ago, exactly the set whose 180th day falls between today and 90 days out.
- Expiration. Listing date plus 180 calendar days, applied uniformly, never read from a prospectus.
- Price versus offer. The latest daily close within the last ten sessions, divided by the final issue price, minus one, in percent.
- Refresh. Weekly. The computed_on column dates the table.
To verify a row, open the final prospectus (SEC form 424B4, or 424B1 for some deals) from the receipts panel below and search for "lock-up". The Underwriting section states the length and any early-release condition; the Shares Eligible for Future Sale section gives the share counts. Where the prospectus sets a staggered schedule, note each tranche date separately. The calendar shows one date per name and cannot split it.
Prospectus receipts for every calendar name
The panel matches each calendar name to its final prospectus in the EDGAR index, filed within two weeks of the listing date. It found 50 filings for the 57 names in the calendar. A name missing here priced under a form type outside the two searched, or its ticker has not yet been attached to its EDGAR record.
| ticker | form_type | filed_on | prospectus_url |
|---|---|---|---|
| AADX | 424B4 | 2026-06-04 | https://www.sec.gov/Archives/edgar/data/2118195/0001193125-26-256356.txt |
| AIAI | 424B4 | 2026-05-14 | https://www.sec.gov/Archives/edgar/data/2096362/0001493152-26-022855.txt |
| ALMR | 424B4 | 2026-04-17 | https://www.sec.gov/Archives/edgar/data/2104204/0001193125-26-161647.txt |
| APURU | 424B4 | 2026-05-21 | https://www.sec.gov/Archives/edgar/data/2093524/0001213900-26-060082.txt |
| ARXS | 424B4 | 2026-04-16 | https://www.sec.gov/Archives/edgar/data/2093536/0001193125-26-159369.txt |
| AVEX | 424B4 | 2026-04-20 | https://www.sec.gov/Archives/edgar/data/2096300/0001193125-26-162601.txt |
| BXDC | 424B4 | 2026-05-15 | https://www.sec.gov/Archives/edgar/data/2100161/0001193125-26-225090.txt |
| CAES | 424B4 | 2026-06-17 | https://www.sec.gov/Archives/edgar/data/2087965/0001213900-26-069612.txt |
| CBRS | 424B4 | 2026-05-14 | https://www.sec.gov/Archives/edgar/data/2021728/0001628280-26-035214.txt |
| CNXU | 424B4 | 2026-05-11 | https://www.sec.gov/Archives/edgar/data/2066836/0001062993-26-002473.txt |
| COAG | 424B4 | 2026-05-01 | https://www.sec.gov/Archives/edgar/data/2114044/0001193125-26-201458.txt |
| CXIIU | 424B4 | 2026-04-28 | https://www.sec.gov/Archives/edgar/data/2114227/0001213900-26-048413.txt |
| ELMT | 424B4 | 2026-04-23 | https://www.sec.gov/Archives/edgar/data/2101698/0001213900-26-047144.txt |
| EROC | 424B4 | 2026-06-10 | https://www.sec.gov/Archives/edgar/data/2110029/0001193125-26-265898.txt |
| EROK | 424B4 | 2026-05-14 | https://www.sec.gov/Archives/edgar/data/2104882/0001193125-26-224302.txt |
| FCBM | 424B4 | 2026-06-18 | https://www.sec.gov/Archives/edgar/data/1531193/0001140361-26-025790.txt |
| FRBT | 424B4 | 2026-06-11 | https://www.sec.gov/Archives/edgar/data/1925062/0001628280-26-042580.txt |
| FRVO | 424B4 | 2026-05-14 | https://www.sec.gov/Archives/edgar/data/1853868/0001628280-26-034849.txt |
| GMRS | 424B4 | 2026-05-14 | https://www.sec.gov/Archives/edgar/data/1898718/0001104659-26-060835.txt |
| HAWK | 424B4 | 2026-05-07 | https://www.sec.gov/Archives/edgar/data/1750704/0001628280-26-032207.txt |
The exact SQL behind every number
SELECT
e.ticker AS ticker,
any(e.form_type) AS form_type,
toString(toDate(e.filing_date)) AS filed_on,
any(e.filing_url) AS prospectus_url
FROM global_markets.stocks_sec_edgar_index AS e
INNER JOIN
(
SELECT
ticker,
argMax(toDate(listing_date), _ingest_time) AS listed_d
FROM global_markets.stocks_ipos
WHERE ticker != ''
AND ticker NOT IN ('SPCX')
AND toDate(listing_date) BETWEEN today() - 180 AND today() - 90
AND ipo_status NOT IN ('pending', 'postponed', 'withdrawn', 'rumor', 'direct_listing_process')
AND positionCaseInsensitive(issuer_name, 'acquisition') = 0
AND final_issue_price > 0
GROUP BY ticker
) AS i ON i.ticker = e.ticker
WHERE e.form_type IN ('424B4', '424B1')
AND toDate(e.filing_date) >= today() - 200
AND toDate(e.filing_date) BETWEEN addDays(i.listed_d, -14) AND addDays(i.listed_d, 14)
GROUP BY e.ticker, e.accession_number, e.filing_date
ORDER BY e.ticker, e.filing_dateFAQ
How long is an IPO lockup period?
Most US IPO lockups run 180 days from the date of the final prospectus, a term set by the underwriting agreement rather than by any rule. Shorter and longer terms both occur, and some agreements release a portion of the shares early on a staggered schedule or after the company's first earnings report.
How do I find the exact lockup expiration date for a stock?
Open the final prospectus (SEC form 424B4) on EDGAR and search for "lock-up". The Underwriting section states the length and any early-release condition. Count from the prospectus date, which can differ from the first trading day by a day or two.
Can insiders sell before the lockup expires?
Not on the open market, unless the underwriters release them early. Lock-up agreements carry narrow exceptions (gifts, transfers to family trusts, shares withheld to cover taxes on vesting equity, transfers in a tender offer or merger) that do not put stock on the exchange.
Do stocks always fall when a lockup expires?
No. The expiration removes a restriction on supply; whether holders sell into it, and how much, varies by name. The companion post on whether stocks fall after lockup expiration measures the price path around past dates.
What if a lockup expiration falls on a weekend?
The agreement still ends on that calendar date, and the first session on which the freed shares can trade is the next business day. The calendar labels the weekday of each date for that reason.
Every panel here ships with the exact SQL beneath it. To check one name, or to pull the calendar for a different window, ask the question in plain English on the Strasmore terminal.