1
100%
u/Finance__broski
4 hours ago
Data
update on the missing s&p 500 stocks, the measurement, and the bug that was bigger than the bias
original research, follow-up to my post from yesterday, results below
yesterday i posted that 20-25% of past s&p 500 members are invisible in the standard free source, and promised to measure the return effect, here it is, including the part where i almost published a wrong number
setup, equal weight monthly rebalanced portfolios from one price source, two universes, the index as it actually stood on the vintage date versus only the members still in today's index, which is what "download today's list and backtest" secretly gives you, names that stop trading exit at their last close, so takeovers get priced instead of dropped
first run said survivor-only history UNDERSTATES us returns by 1.3pp a year, which fit the story from yesterday's comments, the missing names left by acquisition at premiums, i liked the result, it was contrarian and clean
then i audited the yearly numbers and found 2023 off by 15 points, the cause was one ticker, CPWR printed a +4567% month in 2023, compuware was taken private in 2014, the ticker got reused and the free source serves the corpse's replacement stitched seamlessly onto the dead company, no gap, nothing to catch, my first-bar check from yesterday only catches tickers recycled BEFORE your vintage, this one died mid-sample and came back as something else
swept the whole panel for that pattern, found four reanimated tickers total, CPWR, EP (el paso, died 2012), COL (rockwell collins, died 2018), MI (marshall and ilsley, died 2011), truncated each at the company's actual death and reran
corrected numbers, survivor-only OVERSTATES, +0.4pp a year on the 2010 vintage, +1.0pp on the 2015 vintage, same direction as india, where i measure +0.8 to +3.2pp, just several times smaller, partly because most us index leavers don't die, of 66 names that left the index in my 2010 universe, 58 still trade normally today, demotion not death, their returns stay in the history
the actual lesson, the four fake tickers moved my measurement by 1.7pp a year, the bias i was measuring is 0.4 to 1pp, the identity error was bigger than the survivorship error, everyone corrects for survivorship, nobody checks whether their tickers are the same company all the way through
caveats, equal weight, monthly, one free source, the fully invisible names (about 120) can't be priced at all from what's available, if they had beaten or lagged survivors by 5pp a year the full-universe number shifts about half a point either way, that's a band not a point, and the membership list is now cross-checked against spy's published holdings, 503 of 503 match
gme stays in by the way, its +1625% month in 2021 is real and it was a legitimate 2010 member, the filter has to kill fake returns without killing embarrassing real ones
credit where due, yesterday's comments called it, the warnings that recycling was the nastier trap turned out to be the whole story, and the suggestion to price exits instead of dropping rows is exactly how the takeovers stayed in the measurement
method and the corpse list on request