Where can I find constituent lists and data for the S&P and other indices?
In Bloomberg, use the ‘Equity Screening’ equity screening function (type ‘EQS’ and press Enter).
- Click on the ‘Index’ criteria to choose one or more indices.
- For historical changes to an index, use the ‘Additions and Deletions’ function instead (type ‘ADD’ and press Enter). Note, you cannot export data from the ADD function, so Bloomberg is not advised for building historical lists.
- See also the 'MEMB' membership function.
In Compustat via WRDS, create a list of constituents within a selected timeframe.
- Go to WRDS and choose ‘Compustat-Capital IQ’.
- Select ‘North America – Daily’ then select ‘Index Constituents’. *
- In ‘Step 1’, choose your date range (year and month).
- In ‘Step 2’, click on ‘Code Lookup’. In the dialog window, type the name of the index (for example ‘S&P 500’) and press Enter, then select the best match (‘S&P 500 Comp-Ltd’), select ‘TICKER’ identifier type and click the ‘Add Codes to List’ button (code ‘I003’) then ‘Add Codes to Query’.
- In ‘Step 3’, select query variables, and finally click the ‘Submit Query’ button.
- * Alternatively to Compustat North America, look at Compustat Global or World Indices by WRDS.
In CRSP via WRDS, you can get the full history of S&P 500 constituents.
- You can use SAS Studio or Jupyter Notebooks, on the WRDS website. It uses the 'MSP500LIST' library.
- By default, you only get PERMNO codes, start and end date. You can add in other identifiers from Compustat by joining with another library, see the sample Python code.
- Watch the video on S&P constituents in WRDS for an overview.
In LSEG Refinitiv Workspace, search for the index you are interested in (or browse the 'Indices Overview' function), then click on 'Constituents' in the horizontal navigation menu.
- There are also Refinitiv equity lists for each country, these are treated as indices. Read about the Refinitiv equity index methodology on LSEG.com.
In Datastream, when choosing the ‘Data Category’, select ‘Constituent Lists’.
- The series code for a list usually has an ‘L’ at the start, for example the FTSE 100’s series code is ‘LFTSE100’ and for the S&P 500 it is ‘LS&PCOMP’. Use a Static Request for variables such as ‘NAME’ and ‘ISIN’.
- For historical membership for a specific month, add numbers to the end of the code in the format ‘MMYY’, for example ‘LS&PCOMP1218’ for December 2018 constituents. (If the code ended with ‘D’ for ‘Daily’ or ‘H’ for ‘Historical’, remove this character before adding the ‘MMYY’ characters.)
- See chapter 8 of the University of Bern Introduction to Datastream document for a description of how to combine multiple series of historical constituents in a Datastream Request Table.
See also Where can I find current constituent lists for the S&P and other indices?, an FAQ post from IESE Business School, University of Navarra, covering Bloomberg, Datastream, Workspace and Capital IQ.
Was this helpful? 2 0