I have S&P 500 Dividend Yield data. I want to build graph that would show how much money — including dividends — I would get if I hold 1 "unit" of S&P 500 over time.

So the dividends for every year would be:

dividends[year] = sp500_price[year]*sp500_dividends_yield[year]/100

And the cumulative total for every year would be:

total[year] = dividends[first_year] + ... + dividends[year] + market_cap[year]

Is that right?

2 Answers 2


Yes or no.

Yes, if you do not reinvest the dividends and hold them in a bank account having 0% interest rate. Then you can indeed use the formulas.

No, if you reinvest the dividends. In this case, you need to accrue interest over interest. Compound interest in a longer time scale makes the result much better than what your formula proposes.

I would heavily suggest to use compounds investments in all estimation formulas. In reality, if you obtain some extra money, and if you are an investor, you would anyway invest the extra money sooner or later.


As you discovered, the S&P index returns, if calculated just by looking at the index year on year, do not account for dividends. It only goes back to 1988, but ^SP500TR can be useful for what you seek.

I'd add to your idea of treating the index as if it were a stock, an S&P unit or share. Each year, don't adjust the index, adjust the number of units. If the dividend yield was 2%, and you started year 1 with 1.00 units, at year end you now have 1.02 units. Over time, the units help maintain the gains from dividend vs the index appreciating, if that's of any value to you.


You must log in to answer this question.

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