Year-end data on the S&P 500, Nominal GDP and Consumer Prices from 1925 to the most recent year-end for which final data is available.
data(SP500data)A data.frame with observations on the S&P500 from 1925 to the most recent year end for which final data is available:
Year: type `num`.
SP500Price: type `num`. Year-end (12/31) price of the S&P 500
SP500EpsAll4Q: type `num`. As-Reported Earnings per share for the S&P 500 for the entire calendar year.
SP500EpsBest3Q: type `num`. 4/3 x Sum of the three highest quarterly earnings per share for the S&P 500 during the calendar year.
SP500EpsBest2Q: type `num`. 2 x Sum of the two highest quarterly earnings per share for the S&P 500 during the calendar year.
SP500EpsBest1Q: type `num`. 4 x the highest earnings per share in a quarter for the S&P 500 during the calendar year.
SP500Revenue: type `num`. Annual Revenues per share for the S&P 500 during the calendar year.
SP500DPS: type `num`. Annual Dividends per share for the S&P 500 during the calendar year.
SP500OperatingEPS: type `num`. Operating Earnings per share for the S&P 500 for the calendar year.
SP500Nom1YrFwdRet: type `num`. Nominal total return including both change in price and dividends and not adjusted for inflation for the S&P 500 for the FOLLOWING calendar year.
CPIAUCNS: type `num`. Consumer Price Index for All Urban Consumers: All Items in U.S. City Average, as of year end.
GDPA: type `num`. Nominal GDP at an annual frequency.
CPIAUCNS is obtained from the Federal Reserve's FRED database at https://fred.stlouisfed.org/series/CPIAUCNS GDPA is obtained from the Federal Reserve's FRED database at https://fred.stlouisfed.org/series/CPIAUCNS Data for the S&P 500 is updated using the QUARTERLY DATA tab of https://www.spglobal.com/spdji/en/documents/additional-material/sp-500-eps-est.xlsx Final year-end numbers are typically reported in April or May of the following year.
Chapter 13 (Expected Returns) of Martin, Philips, Scherer, Stoyanov and Li, Portfolio Construction and Risk Analysis, Springer, 2024.
data(SP500data)
names(SP500data)
head(SP500data, 5)
tail(SP500data, 5)
Run the code above in your browser using DataLab