Skip to content
All library documents

Finding Historical Constituents for the CAC 40 and S&P 500

Article Quant Q&A · Author: m_vdbeek

Summary

The document surveys ways to obtain historical membership lists for the CAC 40 and S&P 500, a dataset needed to study index returns without relying on today’s constituents. It distinguishes historical constituent names from richer data such as index weights, and points to commercial data providers as well as lower-cost or free sources.

For the CAC 40, suggested approaches include consulting archived French-language records or extracting membership tables from the French Wikipedia page and combining them with historical stock prices. The responses also mention Euronext as a possible academic source and Quandl as a data-wrangling route. For the S&P 500, a lower-cost website is suggested alongside Bloomberg. These are historical recommendations rather than a verified current directory: the free CAC 40 source may contain errors, and the scraping approach requires checking table structure and tidying data. The document does not validate any source or provide a comparison of coverage, licensing, or accuracy.

Key ideas

  • Historical index membership is needed alongside historical prices to reconstruct index constituents over time.
  • Commercial providers may supply membership histories and possibly index weights.
  • Archived web sources and table scraping can provide lower-cost CAC 40 constituent data.
  • Free or inexpensive datasets may contain errors and require validation.

Tags

Full text
# CAC40 components historical data


# CAC40 components historical data












I'm looking for historical data of the CAC40 components.

I looked at these previously asked questions:

- What data sources are available online?

- Finding historical data for indices

as well as Yahoo Finance and the official CAC40 site (on Euronext).

The issue is that it's easy with Yahoo finance to find:

- the historical data for a CAC40 company

- a list of current CAC40 components

but not the list of CAC40 components at the time.

Are there any sources from which I could download this information from ?

Edit: If this kind of data is available for the SP500, I would be very interested as well!

## Answer by Sithered (score 4, accepted)

https://quant.stackexchange.com/a/17368

I'm not sure if you are looking for the components only or if you want more data, like the weights in the index.

Unfortunately, unlike most other data on the web, it's hard to get any good financial data for free. The only easy way is to pay for accessing it through a financial data provider such as Bloomberg (with MEMB function when you select an index).

For the S&P500, I found this website, where it's a lot cheaper than Bloomberg (USD3 vs USD24000) : http://www.daytradingbias.com/?page_id=105159

For the CAC40 you are lucky, I found this website where it's free (I hope you have some knowledge of French), but there is no more data than the dates and names of components : http://www.bnains.org/archives/histocac/histocac.htm

But free (or cheap) data actually come at a price: I do not guarantee data correctness (actually I'm pretty sure there are some errors, by looking at their building methods).

## Answer by Marco Breitig (score 1)

https://quant.stackexchange.com/a/17378

As you said yourself, Yahoo finance provides the historical stock data. The only thing left is to know the historical composition of the CAC40. This information can be extracted from the french wikipedia site about the CAC40, or from the source @jean-paul-sartre mentioned. In my answer I will concentrate on how to scrap the information.

Some time ago I wrote a `R`function to scrap information from wikipedia tables. Using the `R-package RCurl` one has to specify the URL of the wikipedia website and a number $n$ which table to scrap. I download the sourcecode by

```
x <- getURL(url="http://fr.wikipedia.org/wiki/CAC_40")
```

and with the help of `gregexpr` I search for `<table` and `</table>`, take the $n$-th table. Then I iterate over `<tr>` cells, get the heading from `<th>` and the actual content from `<td>` cells. Sometimes one has to tidy up a bit. Scraping the two tables from wikipedia, combining them and extracting the historical development of the CAC40 constituents is now straightforward.

## Answer by lemarin (score 1)

https://quant.stackexchange.com/a/17428

This data isn't free obviously, but Euronext (the index provider) might be inclined to give you this information if it's for academic purposes. It's advertised on their website here: https://www.euronext.com/fr/market-data/products/end-day-index-data

## Answer by Drew (score 0)

https://quant.stackexchange.com/a/17370

You can try Quandl. They have a nice API to R and Python which you can use to do the data-wrangling.

## Answer by ℕʘʘḆḽḘ (score 0)

https://quant.stackexchange.com/a/17432

Bloomberg or datastream are the only possible sources.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.