Landmines

Survivorship bias

Testing a stock strategy on today's index members quietly deletes every company that failed along the way, and lets you buy smaller companies that only later grew big enough to join the index. The results look far better than anything you could have traded.

The trap

You want to test a stock strategy on the NIFTY 500, so you download the list of NIFTY 500 stocks and run your rules over the last ten years. The problem is that the list you downloaded is today’s list. It contains only the companies that are still big and still listed. Every company that collapsed, was delisted, merged away or simply shrank out of the index along the way has disappeared from your test.

The honest alternative is a point-in-time universe: on each historical date, you may only pick from the stocks that were actually in the index on that date, including the ones that later failed.

How it fools you

Today’s list goes wrong in two ways at once.

It leaves out the failures. The stocks missing from today’s list are not a random sample. They are disproportionately the ones that crashed. Leave them out and your strategy never buys a stock that went on to fall 90%, because those stocks are not in your data.

It lets you buy tomorrow’s winners early. Today’s list also contains companies that were small, unlisted or simply outside the index ten years ago, and only joined because they did well. Test on that list and your strategy can buy them years before any real investor following the rules could have.

The churn is larger than most people expect. Rebuilding NIFTY 500 membership since 2013 gives 499 current members plus 345 that were dropped and 167 that were delisted: about 1,000 companies passed through an index of 500. Of today’s 499 names, 264 were not in the index at the end of 2013.

A real example

We ran our monthly momentum strategy three times: rank NIFTY 500 stocks by their 3- and 9-month returns each month, hold the top 15, and sell a holding only when it drops below 30th. The only difference between the runs was the stock list:

  • Point-in-time: on each date, only stocks in the index on that date; a holding is sold if it leaves the index.
  • Today’s members, only while in the index: today’s list, but each stock only for the dates it was actually a member. This removes the failures but not the early buying.
  • Today’s members, whole history: today’s list applied to every date, the way most quick backtests are done.

Data: NIFTY 500 stocks, 1 January 2014 to 3 July 2026. Execution: signal at the month-end close, filled at the next day’s open. Cost: 0.15% per side. Identical in all three runs.

Stock listCAGRWorst drawdownCalmar
Point-in-time (honest)22.0%−48.9%0.45
Today’s members, only while in the index31.5%−42.5%0.74
Today’s members, whole history (biased)49.7%−53.5%0.93

(Calmar is CAGR divided by the worst peak-to-trough drawdown: a simple return-for-risk score.)

The usual mistake, the last row, more than doubled the annual return: 49.7% against an honest 22.0%. The middle row shows where the gap comes from:

  • Leaving out the failures added about 9.5 percentage points a year.
  • Buying future index members early added about 18 more.

The year-by-year numbers show where the bias lives. In strong years the biased run pulls far ahead (2015: +38% against +2%; 2020: +257% against +75%; 2024: +63% against +10%). In other years it looks no better (2019 and 2026 were almost identical), which is exactly why the bias is easy to miss: the flattering result still looks like a real, bumpy strategy.

There is one useful side effect. Because the bias only ever flatters, a strategy that already loses on today’s members is dead without further work. A rule that bought NIFTY 500 stocks at a new 52-week closing low (today’s members, June 2011 to June 2026, entry at the next day’s open, 0.3% round-trip cost) returned −0.46% per trade, with 72% of trades hitting the −8% stop, even with survivorship bias helping it. No need to build clean data to reject that.

How to spot it

  • The stock list came from a “current constituents” download.
  • No delisted or merged company ever appears in your trade log.
  • The backtest starts before the date your membership history actually begins.
  • A momentum, dip-buying or breakout result looks unusually strong on large, well-known names.

How we guard against it

Every equity result on this site uses a point-in-time universe, with delisted stocks included and forced exits when a stock leaves the index. See Methodology: no survivorship or look-ahead bias.

If you’d like your own strategy tested on a survivorship-free sample, write to us at [email protected].

Was this useful?

More to say, or spotted a mistake? Write to [email protected]. We read everything.

Topics