I was playing with Robert Shiller's U.S. Stock Markets 1871-Present and CAPE Ratio dataset to simulate an investor who buys the S&P500 with their monthly savings—equal to that month's CPI—for the last forty years, reinvesting dividends. (I assume the existence of a zero-fee way to buy fractions of the S&P500's level.)

I calculated their internal rate of return in excess of the risk-free rate they would have gotten by investing in the ten-year Treasury note (whose rate each month is also included in the dataset; I assume the existence of some savings account that pays a monthly interest at rate equal to the ten-year T-note). I used XIRR to obtain the money-weighted annual rate of return.

The number I got was 3.59% annualized (equal to 8.23% from the S&P500 minus 4.63% from the Treasuries).

This seems particularly low so I'd like to ask if this matches other analyses, or if I made a mistake in my spreadsheet on Google Sheets (this is the original spreadsheet from Shiller's website plus columns added to help me compute the above numbers).

I also wrote some open-source JavaScript code to run this same analysis, but for several forty year horizons (as well as ten, twenty, and sixty year horizons). That analysis corroborates this result, and is also available online.

A static snapshot of the graph it generates is below. The S&P500's excess returns over forty and sixty year horizons ending in the last several decades seems lackluster, not breaking 4% since the 1960's, and this too makes me wonder if I'm doing something wrong, or if this jibes with others' analyses.

Excess return of the S&P 500 above Treasury for all 60, 40, 20, and 10 year horizons since 1871

1 Answer 1


Self-answer—how awfully embarrassing, I had a bug in how I was handling dividends, in both

(I was basically not reinvesting dividends…)

With this correction, the result is better: the excess return, investing the CPI every month, over the last forty years has been 5.8%.

I noticed that the spreadsheet had columns for the real price and dividends (i.e., nominal price adjusted by the CPI), so using those, and investing $1 monthly, the real excess return of the S&P 500, over the last forty years, comes out to… 2.8%.

I've updated both the spreadsheet and the interactive website with the bugfix and to show real excess returns.

A static snapshot of the website:

Fixed: investing $1 monthly in the S&P 500, real excess returns over ten, twenty, forty, and sixty year horizons

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .