Universe Construction and Delistings
Deciding which securities belong in a backtest at every point in time, and why forgetting to include stocks that later went bankrupt or got delisted quietly inflates a strategy's historical performance.
Prerequisites: Survivorship Bias, Point-in-Time Data
A backtest needs to answer, for every single day in history, the question "what could I have actually traded on that day?" — the strategy's universe. Getting this wrong is one of the easiest ways to build a backtest that looks profitable and isn't. The trap is subtle: if you build today's list of, say, the S&P 500's current constituents and run your strategy against their full price history, you've implicitly removed every company that was in the index at some point but isn't anymore — because it went bankrupt, got acquired, or was delisted for poor performance. Those are disproportionately the companies whose stock did badly, so their absence quietly makes the historical universe look better than it really was. This specific failure has a name, survivorship bias, and correct universe construction is the data-engineering discipline built to prevent it.
The fix is to reconstruct, for each historical date, the actual list of index or tradeable-universe members as of that date — not today's list projected backward — a genuinely point-in-time universe. This requires tracking every addition and removal event with its effective date, and handling delistings correctly: when a stock leaves the tradeable universe, the backtest needs a realistic exit price and date rather than simply letting the stock silently vanish from the data as if the position evaporated for free. A stock delisted for bankruptcy might realistically be modeled as going to near-zero; one delisted due to acquisition should be modeled at the acquisition price, since that's what a holder would actually have received — treating every delisting the same way, or ignoring it, produces a biased result in either direction.
Worked example: measuring the inflation
A universe of 500 stocks over a 10-year backtest includes 40 companies that were later delisted, of which 25 went to zero (bankruptcy) and 15 were acquired at roughly a 20% premium to their pre-announcement price. A backtest built from today's surviving 460-stock list (excluding all 40) that happened to hold each equally weighted for its full available history reports an average annual return of 11%. Rerunning with the correct point-in-time universe — including all 500, with the 25 bankruptcies marked down to near-zero on their actual delisting dates and the 15 acquisitions closed out at their real acquisition price — drops the reported return to roughly 7-8%, a multi-percentage-point gap driven entirely by the 5% of the universe (25 of 500) that a naive, survivors-only universe silently erased.
What this means in practice
Building a correct point-in-time universe requires a data vendor or database that tracks historical index membership with effective dates, not just current membership — a materially different (and often more expensive) data product than a simple current constituent list. Delisting handling deserves its own explicit policy decision, documented and applied consistently, rather than an accidental default (many raw datasets simply drop a delisted stock's rows going forward, which silently reproduces survivorship bias even if the universe itself was built correctly).
A backtest's universe must be reconstructed point-in-time — the actual tradeable/index membership as of each historical date, including securities that were later delisted — because a universe built from today's survivors alone systematically removes the worst-performing historical outcomes and inflates backtested returns.
Even a genuinely point-in-time membership list can still leak survivorship bias if delisted stocks are simply dropped from the price data going forward instead of given a realistic exit price and date. Check both — membership dates and delisting price handling — since either one alone is not sufficient.
Practice in interviews
Further reading
- López de Prado, Advances in Financial Machine Learning, ch. 1