What is survivorship bias?
Survivorship bias is the distortion that appears when a historical study includes only the subjects that made it to the present, which in equity backtesting means running a strategy over the companies still listed today.
The mechanism is simple and complete. Companies that failed, were acquired at a discount, or were delisted for non-compliance are absent from today's list. Their price histories — which include the declines that ended them — never enter the test. The strategy is therefore evaluated on a universe pre-filtered for not having gone to zero.
The effect is largest for exactly the strategies that sound most attractive. A rule that buys sharp declines looks superb when every decline in the sample eventually recovered, because the ones that did not recover are the ones that stopped existing and were removed.
It is not confined to individual stocks. Index constituent lists change, funds close, and any study using a current membership list to look backward inherits the same problem.
How much does survivorship bias inflate results?
The magnitude depends on the universe and the strategy, and it is largest for small-cap universes and for strategies that buy weakness — the two conditions that most commonly appear together in enthusiastic backtests.
Rather than quote a single figure, the useful exercise is to reason about the direction and mechanism. Every excluded company contributes only negative outcomes to a long strategy. Removing them cannot lower the result; it can only raise it, and the size of the effect scales with how many companies left the universe over the window and how badly they did on the way out.
Large-cap universes suffer least, because large companies delist less often and usually through acquisition rather than collapse. Small and micro-cap universes suffer most, and those are precisely where the most impressive backtested returns tend to come from.
The reason a specific number is hard to state honestly is that it depends on your window, your universe definition and your strategy's behaviour. What can be stated without qualification is the direction: the bias always flatters, and it flatters most where the result is most exciting.
How do you know if your backtest has survivorship bias?
Check whether your data source provides a point-in-time universe — the list of companies that were actually listed and index-eligible on each historical date — or only a current list you are applying backwards.
The direct test is to look for delisted tickers in your data. Pick a few well-known companies that failed or were acquired during your window and check whether their histories are present and whether they end at the right date with the right final value. If they are missing, your universe is survivorship-biased.
A second signal is suspiciously few zeros. Over a long window across a broad universe, some companies go to nearly nothing. If your worst historical position is a moderate loss, the catastrophic ones have been filtered out somewhere upstream.
A third is a result that is strong and gets stronger as you move down the market-cap spectrum. That gradient is what you would expect from the bias itself, since smaller companies exit the universe more often.
What else gets silently excluded from equity data?
Beyond delistings, several other filters commonly remove exactly the observations that would have hurt: halted stocks, names below a price threshold, and periods where a ticker was reused by a different company.
Price filters are the most common and the least noticed. Many data pipelines exclude stocks under a few dollars, which is a reasonable liquidity precaution and also removes companies at their worst moments. If your strategy would have bought them, the test never sees the trade.
Trading halts matter for any strategy with intraday exits. A halted stock cannot be sold, and a backtest that assumes continuous tradability will exit positions at prices that were unavailable for hours or days.
Ticker reuse is rarer and stranger. Symbols are recycled, so a naive join on ticker can splice one company's history onto another's. This produces price series with impossible jumps that a strategy will happily trade.
The general defence is the same in every case: enumerate what your data excludes rather than assuming it excludes nothing. A dataset's omissions are invisible by construction, which is why they have to be checked deliberately rather than noticed.