What is survivorship bias?
Survivorship bias occurs when you only analyse the entities that "survived" a selection process and ignore those that didn't. In investing, it most commonly appears when you backtest a strategy using only the stocks that currently exist in an index — ignoring every stock that was removed over the test period due to poor performance, bankruptcy, or acquisition.
The result is a universe that has been pre-filtered for success. Your backtest says "how would this strategy have done if it only picked from companies that turned out to be winners?" — which is not a realistic question.
A concrete example from NSE
Suppose you want to backtest a value strategy using NIFTY50 from 2010 to 2024. If you take today's NIFTY50 list (50 stocks as of 2024) and apply your strategy backwards to 2010, you are only testing on companies that were in NIFTY50 in 2024 — meaning every company that was in NIFTY50 in 2010 but was subsequently kicked out (because of declining market cap, poor performance, or index rebalancing) is excluded from your test.
Those excluded companies are disproportionately the underperformers and failures. By excluding them, you make your backtest universe artificially better than it was in reality.
How much does survivorship bias inflate returns?
Academic research suggests survivorship bias can inflate annualised returns by 1–3% per year in large-cap universes and potentially higher in mid-cap or broader universes. Over a 10-year backtest, a 2% annual inflation compounds to approximately 22% cumulative inflation in total return — which can transform a mediocre strategy into one that looks genuinely good.
Three forms of survivorship bias in Indian equity backtests
1. Index membership bias
Testing on today's NIFTY50, NIFTY100, or NIFTY200 rather than the composition of those indices on each historical rebalance date. NSE rebalances its indices semi-annually, and stocks that were added or removed carry performance patterns that affect backtest results.
2. Delistings and acquisitions
Stocks that were delisted because the company collapsed or was acquired at distressed prices are not in any current index. If your universe included those stocks in 2012 but they don't exist today, a naive backtest simply omits them — but a real portfolio in 2012 would have held them and taken the loss.
3. Look-ahead survivorship
A subtler form: using a fundamental data provider whose historical database was constructed retroactively, meaning it includes only companies with long, continuous filing histories. Companies that stopped filing (because they failed) are absent.
How to control for survivorship bias
Point-in-time universe membership
The correct approach is to rebuild what the universe actually looked like on each rebalance date, not what it looks like today. On each date, include only the stocks that were in the index at that moment — using the actual historical constituency data from NSE.
This requires maintaining a historical record of every index addition and removal, with the exact dates they took effect.
Broad universe coverage
Using a broader universe like NIFTY500 or all-NSE-listed stocks reduces but does not eliminate survivorship bias, since delisted stocks still need to be handled. However, it reduces the magnitude of the effect because more of the historical universe is still in existence.
Delisting handling
For delisted stocks held in a backtest portfolio, the position should be closed at the last available price before delisting — not quietly removed from the universe as if it never existed.
How ftInvstr handles survivorship bias
ftInvstr uses point-in-time NSE universe membership: the universe on each rebalance date reflects the actual index composition on that date, not today's. When NSE removes a stock from NIFTY100 in, say, June 2018, the ftInvstr universe for dates before June 2018 continues to include it — and dates after do not.
This means your backtest results are based on what was actually tradeable at the time, not on the benefit of hindsight about which companies survived to be in today's index.
Summary
Survivorship bias is one of the most common and most invisible sources of backtest inflation. It requires no malicious intent — it simply happens when you apply today's stock list to historical data. The fix is point-in-time universe membership, which requires deliberate data engineering and is one of the core features a serious backtesting platform needs to get right.
When evaluating any backtest — your own or someone else's — one of the first questions to ask is: does this use point-in-time universe membership, or is it tested on today's index composition?
Backtest with survivorship-bias controls built in
ftInvstr applies point-in-time NSE universe membership automatically — your results reflect what was actually available to trade on each date.
Start free — no credit card needed