S&P Indices - Quarterly Rebalancing

S&P Indices - Quarterly Rebalancing

Details on the latest quarterly rebalance of the ASX200 ($XJO) and S&P500 ($SPX) indices. How do stocks perform after joining the index?

Earlier this week saw the quarterly rebalancing of the major S&P indices come in to effect - including the Australian ASX200 ($XJO) and US S&P500 ($SPX) indices.

If you have access to the Optuma Symbol lists then the members of the indices have automatically been updated for you, so any scan or watchlist you have linked to the symbol list will now be using the new membership.

The quarterly reviews are based on market cap, liquidity, and performance, with the worst performing members being replaced (see this S&P article for a detailed methodology). Here are the recent changes made to the ASX200 index, with - at the time of the changes before the open on Monday 19th - the eight new members averaged an 8% gain year-to-date, versus -50% for the ones that have been removed (the ASX200 index had lost 9%).

XJO Changes XJO Changes

We keep track on the historical index membership and the dates they join and leave the index using the IsMember() function so you can see when the stocks are included in the index - this is especially important when backtesting and why the Historical membership option should be used to avoid survivorship bias.

In the example below, the IsMember() function has been used in a Show View in a chart of US-listed Owens-Illinois ($OI). The highlighted green areas show the two periods they were included in the index: 1997 to 2000 (when they were removed at the low!) and from 2008 to 2016.

Member of $SPX Member of $SPX

NOTE: For more information on the concept of ‘survivorship bias’ in indices see Mathew Verdouw’s article here.

US Indices

Here are the Q3 2022 changes to the S&P500, S&P MidCap 400 ($MID), and S&P SmallCap 600 ($SML) indices:

S&P Changes S&P Changes

How does being added to the index impact performance?

As mentioned, our symbol lists  for these indices have been updated to reflect these changes. Using the IsMember() function it’s possible to create studies on performance when a stock is added to (or removed from) the index.

For example, since 2020 there have been 41 companies join the S&P500 index (not including the two changes this week). Of those, only 15 are out-performing the index (calculated from the day they were added to the close on September 20th 2022). Here’s the list, sorted by current market capitalization, showing that on average they are underperforming the index by 7%:

S&P List S&P List

Tesla ($TSLA) - by far the biggest company to join - was added to the index on December 21st, 2020. Since then, it has gained 30% - out-performing the SPX index by 27% (although those gains have come since July 2022).

Tesla Tesla

As the watchlist shows, just because a company gets added to the index it by no means guarantees that it will perform well. For instance, PENN Entertainment ($PENN) joined the S&P500 index in March 2021 just a few days after what turned out to be it’s all-time high, and it immediately started to fall. When it was removed this week the price had fallen 74% since the day it was added.

ASX Performance

Life360 ($360) is an Australian software company with a similar story to PENN - but they only lasted nine months in the ASX200 index! It was added in December 2021 after gaining 300% during the year. Six months after joining the price had fallen 80%, before rallying off June’s lows. But it was too late, and the S&P removed it from the index in the most recent review.

Life 360 Life 360

Before the latest rebalance, there had been 48 changes to the ASX200 index since the beginning of 2020 and only 10 of those are outperforming the index since joining - and one of those (Uniti Group $UWL) has since been delisted. In fact, the turnover of the top 200 stocks is quite high: 13 of those 48 have already dropped down to the ASX300.

XJO List XJO List

Optuma clients interested in this analysis can download the attached ASX and S&P workbooks which contain the formulas that have been used in the examples above. For example, this is the formula to get the date when joining the index:

1
2
3
4
5
//Select Index list;
V1=ISMEMBER(SYMBOLLIST=[SELECT INDEX]) ChangeTo 1;
//Get date when IsMember becomes true;
D1=BARDATE();
VALUEWHEN(D1, V1==1)

As always, any questions please let us know - and any scripting queries can be posted to the forum.