Index Constituent Changes
Returns the dated changes to the members of an index (the S&P 500, the NASDAQ 100 or the Dow Jones Industrial Average): the company added, the company removed, the kind of change (an addition, a removal or a replacement of one by the other) and its reason, such as an acquisition or a change in market capitalization.
These are the changes get_index_constituents(date=...) undoes to reconstruct the members on a past date. They also show the turnover of an index and the companies that left it, which today’s members leave out (survivorship bias).
Also known as: index additions and deletions, index rebalancing history, S&P 500 changes.
Index Constituent Changes in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_index_constituent_changes as shown below.
from financetoolkit import Discovery
discovery = Discovery(api_key="FINANCIAL_MODELING_PREP_KEY")
changes = discovery.get_index_constituent_changes(
"Dow Jones", start_date="2020-01-01", end_date="2026-10-31"
)
changes[["Added Ticker", "Removed Ticker", "Change Type"]]
Or, after setting up the Finance Toolkit MCP, ask:
Which companies joined and left the Dow Jones Industrial Average from 2020 to October 2026?
Which returns:
| Date | Added Ticker | Removed Ticker | Change Type |
|---|---|---|---|
| 2020-08-31 | nan | PFE | Removal |
| 2020-08-31 | AMGN | nan | Addition |
| 2020-08-31 | nan | XOM | Removal |
| 2020-08-31 | HON | nan | Addition |
| 2020-08-31 | nan | RTX | Removal |
| 2020-08-31 | CRM | nan | Addition |
| 2024-02-26 | AMZN | WBA | Replacement |
| 2024-11-08 | SHW | DOW | Replacement |
| 2024-11-08 | NVDA | INTC | Replacement |
| 2026-06-29 | GOOGL | VZ | Replacement |
Parameters
get_index_constituent_changes accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
index | str | “S&P 500”, “NASDAQ 100” or “Dow Jones”. Defaults to “S&P 500”. | "S&P 500" |
start_date | str | None | The first date (YYYY-MM-DD) to include. Defaults to None, the first change recorded. | "2021-01-01" |
end_date | str | None | The last date (YYYY-MM-DD) to include. Defaults to None, the latest change. | "2025-12-31" |