Why does my S&P 500 backtest need delisted stocks and ticker history?
Because a backtest run on today's list of index members only contains companies that survived. The ones that went bankrupt, were acquired or shrank out of the index are missing, so the result looks better than any real investor at the time could have done. That's survivorship bias.
Details
The fix: use index membership as it was on each date (point-in-time), and include companies that later delisted.
The less obvious problem is the ticker. Symbols get reused, and many data sources map a ticker to today's company:
DOWwas Dow Chemical until 2017; Dow Inc, a different company, from 2019.SNDKwas SanDisk until 2016; a new Sandisk Corp listed in 2025.STIwas SunTrust Banks; one vendor returned a later, unrelated company's data under the same symbol.
If you join prices to membership by ticker alone, DOW in 2018 points at nothing, and data from two companies can be spliced into one history. Use a permanent company or instrument id where your data source offers one.