Ticker Recycling and Symbol Collisions
Why the same ticker symbol can refer to completely different companies at different points in history, and why backtests must key data on a permanent identifier rather than the ticker alone.
Ticker symbols get delisted and reassigned constantly. When a company goes bankrupt, gets acquired, or simply changes its name, its old ticker eventually becomes available again, and an exchange may hand it to an entirely unrelated company years later. A database that indexes history purely by ticker symbol will silently splice two unrelated companies' price histories together as if they were one continuous entity.
This is called ticker recycling, and the resulting error is a symbol collision: querying "AAA" for the last twenty years might return one company's price series through 2015 and a completely different company's series from 2016 onward, with no error thrown, because the ticker string matched fine — the identity behind it did not.
For example, a backtest computing a ten-year momentum score on "ticker XYZ" might unknowingly combine five years of a defunct energy company's declining prices with five years of a recently-listed tech company that was assigned the same freed-up symbol, producing a momentum signal that describes no real company at all.
The fix is to key all historical joins on a permanent, non-reused identifier — such as a CRSP PERMNO, a CUSIP, or a vendor's internal security ID — and treat the ticker purely as a display label that can and does change identity over time.
Ticker symbols are recycled after delisting, so indexing historical data purely by ticker risks silently splicing unrelated companies' histories together; robust backtests join on a permanent security identifier and treat the ticker as a mutable label, never a stable key.
Practice in interviews
Further reading
- CRSP PERMNO / vendor identifier documentation