Overview
IPOLockup.io is a data-driven research platform that tracks post-IPO stock performance, lockup expiration dates, and withdrawn S-1 filings. This page explains how we collect, process, and present our data, including the role of AI in our content pipeline.
Data Sources
SEC EDGAR
All filing data is sourced from the SEC's Electronic Data Gathering, Analysis, and Retrieval (EDGAR) system. We parse XBRL submissions and the company submissions JSON feed to identify S-1 filings (initial registration), S-1/A amendments, 424B prospectuses, and withdrawal notices (RW filings). Our EDGAR scraper uses the user agent IPOLockup research@ipolockup.io in compliance with SEC fair access policies.
yfinance (Market Data)
Stock prices, market capitalizations, shares outstanding, float data, and 52-week ranges are sourced via the yfinance Python library, which retrieves data from Yahoo Finance. Historical OHLCV (open, high, low, close, volume) data is collected for every tracked ticker starting from its first trading day.
How Lockup Dates Are Calculated
IPO lockup periods are typically 180 days from the date of the company's final prospectus (424B filing). Our system calculates lockup end dates as follows:
- Identify the 424B or 424B4 prospectus filing date from EDGAR.
- Add 180 calendar days to get the estimated lockup expiration date.
- If no 424B filing is found, we estimate from the S-1/A effective date or earliest trading date.
- Actual lockup terms may differ. Some companies have staggered lockups or early release provisions. We report the standard 180-day calculation as a baseline.
Important:Lockup dates are estimates based on standard terms. Always check the company's prospectus for exact lockup provisions, which may include early release triggers, staggered expirations, or extended lockup agreements.
Return Calculations
Return from IPO
(current_price - ipo_price) / ipo_price × 100
Measures total return from the IPO offering price to the most recent closing price.
Period Returns (30d, 90d, 180d, 365d)
(current_price - close_at_period_start) / close_at_period_start × 100
Measures return over specific time windows from the first available closing price within that period.
Withdrawn Filings
A filing is classified as "withdrawn" when a company submits an RW (Request for Withdrawal) filing to the SEC, indicating it is canceling its previously filed S-1 registration statement. We track all RW filings submitted since 2020 and match them to their original S-1 filings when possible.
Update Frequency
- Price data: Updated daily (market days)
- Filing data: Refreshed daily from EDGAR
- Withdrawn filings: Checked daily for new RW filings
- Market stats: Recomputed after each price update
Role of AI
We use Claude (by Anthropic) to generate narrative summaries on entity pages. The AI model receives structured data (prices, returns, dates, filing information) and produces prose descriptions. Key principles:
- Numbers are never AI-generated. All prices, returns, dates, percentages, and counts come directly from our PostgreSQL database.
- AI writes prose only. Narrative text is generated to contextualize the data, not to produce new data points.
- Human review. AI-generated content is reviewed for factual accuracy before publication.
Disclaimers
Not investment advice. IPOLockup.io is an informational research platform. Nothing on this site constitutes investment advice, a recommendation, or a solicitation to buy or sell any security.
No guarantee of accuracy. While we strive for accuracy, data may contain errors or delays. Always verify critical data points against primary sources (SEC EDGAR, your broker).
No financial interest. IPOLockup.io and its author have no financial interest in any of the companies covered on this platform.
Questions about our methodology? Contact research@ipolockup.io. Learn more about IPOLockup.io →