Imagine you hear that a company just got added to the S&P 500. Your first thought might be: "They must be doing something right — maybe I should take a closer look before everyone else does." And if a stock gets removed? "What went wrong? Maybe I should get out while the price is still reasonable." That instinct — the urge to act on the signal — is natural, and you wouldn't be alone in feeling it.
But here's what makes this really interesting: your instinct is only the surface layer. Beneath it, a much larger force is at work. Hundreds of ETFs, index mutual funds, and institutional accounts are built to hold exactly the same stocks as the S&P 500 — and "hold" means they own real shares. When the roster changes, these funds can't just update a label in a spreadsheet. They have to go into the market and actually buy shares of the new stock — and actually sell shares of the one leaving. Every one of them. At roughly the same time. Not because they want to, but because their rules say they must. No deliberation, no discretion, just execution.
To put a face on it: when Safeway was removed from the S&P 500 in January 2015 (following its acquisition), daily trading volume jumped from around 300,000 shares to over 22 million on the effective date — roughly 60 times normal.
Researchers have been studying this pattern — known as the reconstitution effect — since the 1980s. You can look up the full history of S&P 500 joiners and leavers in LSEG Workspace — it keeps records going back to 1994. What Workspace doesn't do is connect those 2,000+ individual events to price and volume data, measure the impact across all of them, and distill the result into a single composite picture. That's computation — and that's what a notebook is built for.
This notebook retrieves years of S&P 500 membership changes, measures the price and volume impact around each one, and aggregates the results into a composite picture of the "average" joiner and the "average" leaver. If the pattern holds up, it then uses current market data to identify the most likely candidates for the next round of changes — turning a historical insight into something you can act on ahead of time.
Setup
This notebook uses the LSEG Data Library for Python to retrieve index constituent change history, daily pricing, and fundamental data. It is designed for LSEG Workspace desktop users.
The event study logic — computing market-adjusted abnormal returns and abnormal volume — lives in a companion file, index_rebalance_utils.py, which should sit in the same directory as this notebook.
Additional packages:
- pandas / numpy for data manipulation
- plotly for interactive visualization
- scipy for statistical testing
Configuration
All the settings that control this analysis live here. The defaults target the S&P 500 — the most widely followed index in the world — but you can swap in any index by changing a couple of values.
Two settings that shape the analysis are worth understanding:
- Event window (-30 to +30 trading days) — the period around each index change where we measure what happened to the stock's price and volume. Think of it as looking one and a half months before and after the change date.
- Volume baseline (-150 to -31 trading days) — a longer period before the event window. We use this stretch of "normal" trading to learn what each stock's typical daily volume looks like, so we can measure how much the rebalancing inflated it. This window deliberately doesn't overlap with the event window — we don't want the index change itself to contaminate our baseline.
Index: S&P 500 (.SPX)
Event window: [-30, +30] trading days
Volume baseline: [-150, -31] trading days
Constituent changes: 2018-01-01 to 2025-12-31
1. Which Stocks Were Added or Removed?
What we're doing: Pulling the historical record of every stock that joined or left the S&P 500 over the past several years.
Why it matters: Each of these changes is a natural experiment. Something happened to the stock — it got added or removed — and we can look at what its price and trading volume did in response. One event by itself doesn't tell us much (maybe the stock was already moving for other reasons), but when we stack dozens of them together, the noise cancels out and any systematic pattern becomes visible. The more events we collect, the more confident we can be in the result.
A couple of things to note about this data: changes don't follow a neat schedule. Some cluster around the quarterly rebalancing dates (March, June, September, December), when the index committee conducts its routine review. Others happen mid-month because a corporate event — an acquisition, a bankruptcy, or a spin-off — forces the committee to swap a constituent outside the regular schedule. You'll also notice that some removed stocks have RICs with a ^ character (like SWY.N^A15), which marks them as retired instruments. These are companies that no longer trade independently — usually because they were acquired. Their historical price data is still available, so we can include them in the analysis.
Raw constituent changes retrieved: 338 events
The table confirms we have a healthy sample to work with. Notice that joiners and leavers roughly balance out — when a stock joins the S&P 500, another typically leaves to keep the count at ~500. The distribution of changes across years is fairly consistent, giving us a broad set of data points from different market conditions to learn from.
2. Collecting Price and Volume Data
What we're doing: For every stock that was added or removed, we're pulling its daily price and trading volume over a window that extends well before and after the change date. We also pull the overall S&P 500 index as a reference point.
Why it matters: We don't just want to know whether a stock went up or down — the whole market might have moved that day. By pulling the benchmark index alongside each stock, we can subtract out the market's move on each day and isolate the part of the stock's performance that was specific to the index change. We also need enough volume history before the event to establish what "normal" trading looks like for each stock, so the volume spike — if there is one — stands out clearly.
We now have two datasets loaded into memory: benchmark_returns, the daily return series for the S&P 500 index itself, and stock_data, a wide table containing daily closing prices and trading volumes for every stock involved in a constituent change. Together these cover the full date range we need — from well before the earliest event through 30 trading days after the last one. The next step is to use this raw data to measure how each stock performed relative to the market around its index change.
3. Separating the Signal from the Noise
What we're doing: For each index change, calculating how the stock performed relative to the broader market — then stacking all those results together to find the pattern.
The idea in plain terms: On any given day, the entire market might go up 1% or down 2%. We don't want that general market movement mixed in with the effect we're trying to measure. So for each day in the event window, we subtract the market's return from the stock's return. What's left — the abnormal return — is the part that the market alone can't explain.
By adding up these daily abnormal returns over time, we get the cumulative abnormal return (CAR): a running total of how much extra the stock gained or lost, day by day, relative to the market. When we average the CAR across all joiners (or all leavers), individual noise washes out and the systematic pattern — if one exists — becomes clear.
If index fund buying pressure genuinely pushes joiner prices up, the average joiner CAR should climb around the effective date. If forced selling hammers leavers, their average CAR should drop. And after the rebalancing is done, the lines should flatten as the stock resumes normal behavior relative to the market.
4. The Price Impact: How Do Stocks React to Being Added or Removed?
What we're doing: Combining all the individual event studies into a single composite view — the "average joiner" and the "average leaver." This is the chart that answers the central question of the notebook.
What the research suggests we'll see: Studies going back decades have found that joiners tend to outperform the market around the effective date, while leavers tend to underperform. What remains debated is how large the effect is, how long it lasts, and whether it has weakened over time as more investors have learned to anticipate it.
Joiners — CAR at effective date (day 0): 7.35%
Joiners — CAR at day +30: 6.88%
Leavers — CAR at effective date (day 0): -6.98%
Leavers — CAR at day +30: -7.82%
How to read this chart: The green line traces the average price path for joiners; the red line shows leavers. Day 0 is the effective date — the day the change officially takes place. The shaded bands show how much individual events vary around that average (tighter bands = more consistent pattern).
A few things to look for:
- Does the green line start rising before day 0? That would mean the market is anticipating the addition before it takes effect — perhaps from pre-announcements or speculation. The earlier the rise starts, the more efficiently the market is pricing in the expected buying pressure.
- Does the green line hold its gains after day 0, or does it fade? If it holds, the index change may have permanently increased demand for the stock (more funds now hold it, more analysts cover it). If it fades, the price boost was likely just temporary pressure from funds buying their required shares — once the rebalancing is done, the extra demand disappears and the price drifts back.
- Is the red line a mirror image of the green? Leavers often show a steeper drop, because selling under a hard deadline tends to create more price impact than gradual buying. Funds must exit by the effective date, which compresses the selling into a narrower window.
- How wide are the confidence bands? Narrow bands mean the pattern was remarkably consistent across different events and time periods. Wide bands mean the average is real but individual outcomes varied a lot — important context if you're thinking about any single upcoming event.
5. Following the Money: The Volume Spike
What we're doing: Looking at how much each stock was traded around the index change, compared to its normal level of activity.
Why it matters: Price tells you which direction things moved, but volume tells you how much force was behind it. When hundreds of index-tracking funds all need to buy (or sell) the same stock on the same day, trading volume can surge to several times its normal level. This is the most direct evidence of the mechanical rebalancing at work — it's not speculation or sentiment, it's funds executing trades they're contractually obligated to make.
A volume ratio of 3.0 means three times the stock's usual daily trading. For the S&P 500, that's common. For smaller indices like the Russell 2000, where the affected stocks are less liquid to begin with, volume spikes of 5–10x have been documented.
Joiners — peak volume at day -1: 40.2x normal (median: 36.9x)
Leavers — peak volume at day -1: 27.6x normal (median: 26.0x)
Interpretation note: 1.0x is normal baseline volume. Values above 1.0x indicate elevated trading volume.
How to read this chart: The y-axis shows trading volume as a multiple of each stock's normal daily average. 1.0x = normal baseline volume; values above 1.0x are elevated, and 0.0 would mean no trading at all. The shaded bands show the range across individual events (25th to 75th percentile).
A few things to notice:
- The spike at day 0 is the fingerprint of index fund rebalancing. This is the day the change officially takes effect, and funds that track the index need to have completed their trades.
- Activity before day 0 suggests that some investors are trading ahead of the rebalancing — either anticipating the price impact or front-running the known deadline.
- How quickly does volume return to normal? A sharp spike that drops off immediately means the rebalancing was a one-day event. If elevated volume lingers, the trade was large enough that it took multiple days to absorb.
- Which side spikes harder — joiners or leavers? Forced selling (leavers) is often more intense, because funds liquidating a position under a deadline face more urgency than funds gradually accumulating a new one.
6. How Consistent Is the Pattern? Looking at Individual Events
What we're doing: The charts above showed the average effect across all events. But averages can hide a lot of variation. Here we look at each event individually to see how spread out the outcomes really are.
Why it matters: If every joiner gained roughly 5% and every leaver lost roughly 5%, the pattern would be extremely reliable. But if individual outcomes range from -10% to +20%, then even though the average is positive, any single event is far less predictable. This section answers the question: Is this a pattern you can count on, or just a tendency that plays out more often than not?
How to read this chart: Each dot represents a single index change. Green dots are joiners, red are leavers. The x-axis shows how the stock had performed by the effective date; the y-axis shows where it ended up 30 trading days later.
The diagonal dashed line is the "nothing changed after the effective date" reference. Dots on the line had all their movement before day 0 and then held steady. Dots above it continued gaining. Dots below gave back some of their move.
Distance from the dashed line matters: the farther a dot is from the line, the larger the post-effective-date reassessment. In practical terms, that often signals a stronger initial overreaction, hype, or market misread that was later corrected (or, in some cases, a delayed realization that the first reaction was too conservative).
| Where the dot sits | What it means |
|---|---|
| Upper-right (green) | Joiner that gained and kept gaining — the textbook outcome |
| Lower-left (red) | Leaver that declined and stayed down — also the expected pattern |
| Lower-right (green) | Joiner that initially gained, but then the gain reversed — the buying pressure was temporary |
| Upper-left (red) | Leaver that initially declined, but then recovered — the selling pressure was overdone |
Hit rate
The hit rate is shown in the table below under Positive outcomes. It is the share of events that finished with the expected sign and serves as a quick reliability check for the pattern by group.
As a rule of thumb, values well above 50% suggest the pattern has been fairly consistent across events, while values near 50% suggest a weaker and less dependable edge.
7. Looking Ahead: Which Stocks Might Be Next?
The S&P 500 typically adds only 17–28 stocks per year. Casting a wide net and calling every Russell 1000 stock above the minimum market cap a "candidate" would produce hundreds of names — far too many to be useful. So rather than screening on market cap alone, we apply the same eligibility criteria the S&P committee publishes:
- Market cap — at least as large as the smallest current constituent
- Positive earnings — the most recent EPS must be positive
- Public float ≥ 50% — adequate shares available for trading
- Adequate liquidity — average daily volume above the 10th percentile of current members
Each filter narrows the pool. What starts as hundreds of stocks that simply "exceed the minimum market cap" gets trimmed to a much shorter list — the subset that actually clears all the quantitative hurdles.
This still won't predict exact committee decisions (the S&P 500 is actively managed, not formula-driven, and the committee weighs qualitative factors like sector balance and corporate structure), but it surfaces stocks that currently meet every published criterion — a much sharper starting point than market cap alone.
==========================================================================================
JOINER WATCHLIST — Top 20 Candidates by Market Cap
==========================================================================================
Russell 1000 stocks not in the S&P 500 that pass all S&P 500 eligibility screens:
market cap, positive earnings, adequate float, and liquidity.
==========================================================================================
LEAVER WATCHLIST — Smallest S&P 500 Constituents
==========================================================================================
Current S&P 500 members with market caps near the bottom of the index.
Ranked by market cap (ascending) — smallest first.
How to use these watchlists:
The joiner watchlist shows the top candidates after applying all four S&P 500 eligibility screens — not just market cap, but also positive earnings, adequate float, and liquidity. Stocks that pass all four are a much narrower pool than the hundreds that merely exceed the minimum market cap.
The leaver watchlist flags the smallest current members. Being small doesn't automatically trigger removal (there are buffer rules to avoid constant churn), but a stock that has shrunk significantly while larger alternatives sit outside the index is at elevated risk.
Practical next steps:
- Connect the dots — if the event study shows that joiners historically gained X% on average, and you spot a strong candidate early, you have a quantitative basis for evaluating the opportunity.
- Check the calendar — S&P 500 changes happen at quarterly rebalancing dates (March, June, September, December) or between those dates for corporate events like mergers, spin-offs, or bankruptcies.
- Dig deeper — open each candidate in Workspace. Read the latest news. Check for corporate actions (mergers, spin-offs) that might affect eligibility.
- Track over time — run this notebook monthly. Stocks that consistently appear on the watchlist are stronger candidates than those that show up once and disappear.
How to read this chart: The left panel shows the top joiner candidates ranked by market cap — the strongest contenders based on the screening funnel above. The right panel shows the smallest current S&P 500 members — the stocks most exposed to removal.
A few things to notice:
- How much bigger are the top joiner candidates than the smallest members? The larger the gap, the more glaring the mismatch — and the stronger the case that the committee will eventually act.
- Are any leavers significantly smaller than the rest? A single outlier on the right panel is more exposed than a cluster of similarly-sized stocks — the committee has a clearer target.
- Compare the two panels side by side. If the top joiners are 3–5x the size of the smallest members, the pressure to swap is substantial. If they're only marginally larger, the committee may wait.
8. Where to Go From Here
This notebook covers the core analysis, but there are many ways to extend it depending on what you're most interested in:
The same LSEG data and functions work across thousands of indices globally. Change INDEX_RIC and INDEX_CHAIN in the configuration section, and the entire analysis adapts.
In short: When the S&P 500 swaps its members, the stocks involved tend to move — not because of any change in the company's business, but because trillions of dollars in index-tracking funds are obligated to trade. This notebook measures how large and how consistent that effect has been, and identifies which stocks might be next. The analysis is designed to be re-run before each quarterly rebalancing so the results stay current. It's not a trading strategy — but it's the kind of evidence-based groundwork that a thoughtful strategy can be built on.
- Register or Log in to applaud this article
- Let the author know how much this article helped you