Before an IPO, insiders, employees and venture funds agree not to sell until a date written in the prospectus. Most of their wealth sits in that one illiquid position, so selling when the lock-up ends is a need, not a view on the price. On a small float the newly sellable shares are a large share of what trades, so the stock should weaken into and around the date. The literature puts the average abnormal return at −1% to −3% in the event week.
Two risks were written down before the run: at least one older study finds the effect larger in large caps, and newly listed micro-caps are often impossible or very expensive to borrow.
How it was tested
Pre-registered on 2026-09-13. The expiry date was computed from EDGAR: the prospectus filing date plus the lock-up length parsed from its text. The universe was US IPOs since 2022, a limit set because the float filter uses today's float. Two variants: PRE shorts 10 sessions before the expiry and covers at it; POST shorts at the expiry and covers 10 sessions later; both with a 2.0×ATR stop and 2.5×ATR target, at $5,000 and 10 slots. Threshold t 1.96 for two variants, with void rules written in advance for corrupted data and for fewer than 30 trades. Only event metadata had been seen, no prices.
Where it died
Two things went wrong before the verdict, and both were caught. The plausibility check found one ticker that spliced two different securities and removed it before any number was computed. A harness bug had written the pass/fail comparison with the sign inverted; it was fixed before the verdict, and the result did not change. The run stayed valid.
The answer was 112 trades with a pooled alpha of 0.215% per trade and t +0.11, far from 1.96. Gate 8 failed too (t 0.32).
The record
Thesis
Pre-IPO holders (insiders, employees, venture funds) are barred from selling until a lock-up date fixed in the prospectus, and most of their wealth sits in one illiquid position, so diversifying is a structural need, not a view on price. On a small float the newly sellable shares are a large fraction of the tradeable supply, so the stock should fall into and around the date.
Prior: The literature puts the average abnormal return at −1% to −3% in the event week, mostly in the two weeks before the date. Declared before the run: at least one older study finds the effect larger in large caps, not small ones, and newly listed micro-caps are often impossible or very expensive to borrow.
Specification
signal
lock-up expiry = filing date of the IPO prospectus + lock-up days, parsed from EDGAR filings
universe
US IPOs since 2022 with a parsed lock-up clause and daily bars
entry
PRE variant — 10 sessions before the expiry, out at the expiry. POST variant — at the expiry, out 10 sessions later.
exit
10 sessions, 2.0 / 2.5 × ATR stop / target
sizing
neutral default — $5,000, 10 slots
caveat
The float filter uses today's float, not the float at the IPO — the reason the universe does not go back before 2022.
Gates
Pre-registrationpass
Was the hypothesis, its parameters and its pass/fail rule written down before any data was looked at?
Only event metadata (filing dates, lock-up lengths, parser match text) had been seen before the run; no prices or returns.
Gate 7 — Jensen alphafail
After regressing out market exposure, is there alpha left?
t ≥ 1.96 (Bonferroni, 2 variants)
alpha t+0.11alpha / trade %+0.21trades112
PRE and POST pooled; a profitable short shows positive alpha.
Gate 8 — Capture-preserved alphafail
Does the subset of trades a real portfolio can actually take keep the alpha?
t_cap ≥ 1.65·√(n_cap/n_eng) and ratio ≥ 0.50
t captured+0.32capture ratio+2.77
Why it died
Pooled alpha t +0.11 — essentially zero, not just short of significance. The anticipation prediction failed in the most informative way: the PRE variant, built to capture the pre-positioning the literature describes, lost money (−1.247% per trade), while POST was positive but weak (+1.737%, t 0.77). Either the market prices the date in earlier than ten sessions out, or the noise of freshly listed micro-caps drowns an effect of one to three percent at 112 trades. One run cannot tell which.
Open questions
The smaller-float half beat the larger-float half (+3.519% vs −2.889% per trade), supporting the small-float premise — but at t 1.50 on 53 trades it is a hint for a separate future pre-registration, not a result.
What it taught
The data-plausibility check worked as designed: it found one ticker that splices two different securities and removed it before any number was computed, so the run counted. The counterparty is still real and still obliged; what failed is this ±10-session implementation. A smaller-float subset did better, but trying another window now, after seeing this result, would be HARKing.
Verdict history
2026-09-13Pre-registered: 2 variants, threshold 1.96, VOID rules for data corruption and fewer than 30 trades
2026-09-13Plausibility check removes one spliced ticker before computing anything; the run stays valid, not VOID
2026-09-13Harness bug found during the run — pass/fail comparison written with the sign inverted; fixed before the verdict, result unchanged
2026-09-13Single run — pooled alpha t +0.11, anticipation prediction fails No alpha