docs/us_corporate/sp500_membership_periods

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.corporatesp500membershiphistory
grain
company-period
years
1957 – 2026
cadence
Irregular (index reconstitutions)
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

nametypedefinition
cikkeystring10-digit zero-padded SEC CIK. Not unique — dual-class companies share a CIK.
company_namestringCompany name as registered with SEC EDGAR.
country_idkeystringISO alpha-2 country code. Always US for S&P 500 members.
county_idstring5-character FIPS code of the company headquarters county.Joins dim.counties on county_id.
end_yearint64Year the company was removed (derived from period_end). Null if current member.
is_currentboolTrue if the company is currently in the S&P 500 (period_end is null).
period_enddateDate the company was removed from the index. Null if currently a member.
period_startdateDate the company joined the S&P 500 for this membership stint.
removal_reasonstringReason for removal from the index (e.g. acquired, delisted, bankrupt). Null if still a member.
sicstringStandard Industrial Classification code (4 digits).
sic_descriptionstringHuman-readable description of the SIC code.
start_date_unknownboolTrue for pre-1957 entries where the exact addition date is not known.
start_yearint64Year the company joined the index for this stint (derived from period_start).
state_idstring2-char state FIPS of company HQ from SEC submissions.
tickerkeystringStock ticker symbol. One row per ticker × membership stint.
yearint64 · yearSnapshot 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