sp500_membership_periods
S&P 500 membership periods panel with company metadata. Tier A-. Grain: one row per ticker × membership stint; companies with two stints produce two rows. Period bounds derived from Wikipedia change-log; pre-1957 entries have start_date_unknown=TRUE.
tier a-Tier A-: Wikipedia-sourced; verified against SEC for CIK linkage. Pre-2000 date precision may be month-only.
overview
overview
636 membership stints. Companies with multiple stints produce multiple rows. Pre-1957 entries have start_date_unknown=TRUE.
current vintage — 2025
history — Yes — 1957–present
provenance
source & licensing
authority
Wikipedia
dataset
Wikipedia S&P 500 Change Log
license
Creative Commons Attribution-ShareAlike 4.0 (Wikipedia source)
citation
Wikipedia contributors (2025). List of S&P 500 companies.
schema
fields
| name | type | definition |
|---|---|---|
| cikkey | string | 10-digit zero-padded SEC CIK. Not unique — dual-class companies share a CIK. |
| company_name | string | Company name as registered with SEC EDGAR. |
| country_idkey | string | ISO alpha-2 country code. Always US for S&P 500 members. |
| county_id | string | 5-character FIPS code of the company headquarters county.Joins dim.counties on county_id. |
| end_year | int64 | Year the company was removed (derived from period_end). Null if current member. |
| is_current | bool | True if the company is currently in the S&P 500 (period_end is null). |
| period_end | date | Date the company was removed from the index. Null if currently a member. |
| period_start | date | Date the company joined the S&P 500 for this membership stint. |
| removal_reason | string | Reason for removal from the index (e.g. acquired, delisted, bankrupt). Null if still a member. |
| sic | string | Standard Industrial Classification code (4 digits). |
| sic_description | string | Human-readable description of the SIC code. |
| start_date_unknown | bool | True for pre-1957 entries where the exact addition date is not known. |
| start_year | int64 | Year the company joined the index for this stint (derived from period_start). |
| state_id | string | 2-char state FIPS of company HQ from SEC submissions. |
| tickerkey | string | Stock ticker symbol. One row per ticker × membership stint. |
| year | int64 · year | Snapshot year of the S&P 500 membership record.Part of primary key. |
relationships
joins
primary key
ticker, cik, country_id
common joins
sp500_companies on (cik, ticker)
sp500_financials on (cik)
usage
how to use this table
method
Parsed from Wikipedia S&P 500 change-log table; CIK joined from SEC EDGAR company search.
do not use for
Pre-1957 analysis; constituent list may be incomplete before the index launch year.
last updated · Jul 7, 2026