S&P 500 30-year rolling returns, 1928–2024
Every complete 30-year holding window of the S&P 500 since 1928 — computed year-by-year with dividends reinvested and CPI inflation adjustment. Answers the practical question: what has "the long run" actually delivered, and how much did it depend on when you started?
Across 68 rolling 30-year windows (1928–1957 through 1995–2024), the S&P 500 delivered a median nominal CAGR of 10.81% and median real CAGR of 7.19%. The worst 30-year period (starting 1965) still produced a positive real return of 4.30%. The best (starting 1932) produced 10.26%. Zero of 68 historical 30-year windows produced a negative real return.
Method
For each possible start year y in 1928 through 1995, we compute the geometric compounded total return of the S&P 500 held from year-end y−1 through year-end y+29, with dividends reinvested annually at year-end price. Nominal CAGR = (final / initial)^(1/30) − 1. Real CAGR uses the same formula after dividing final value by cumulative CPI-U inflation over the window. Data source: Damodaran (NYU Stern) for total returns, Shiller CAPE dataset for cross-validation, BLS CPI-U for inflation. No fees, taxes, or bid/ask are deducted.
Rolling return distribution (nominal CAGR)
| Window | N | Min | 10th %ile | Median | Mean | 90th %ile | Max |
|---|---|---|---|---|---|---|---|
| 30 years | 68 | 7.97% | 9.64% | 10.81% | 11.01% | 12.78% | 13.63% |
| 20 years | 78 | 2.37% | 6.76% | 10.91% | 10.73% | 15.00% | 17.70% |
| 10 years | 88 | -1.67% | 2.88% | 10.76% | 10.46% | 17.30% | 20.11% |
Rolling return distribution (real / inflation-adjusted CAGR)
| Window | Min | 10th %ile | Median | Mean | 90th %ile | Max |
|---|---|---|---|---|---|---|
| 30 years | 4.30% | 4.80% | 7.19% | 7.07% | 8.86% | 10.26% |
| 20 years | 0.63% | 2.14% | 7.07% | 6.90% | 11.62% | 12.90% |
| 10 years | -4.07% | -1.07% | 6.60% | 6.91% | 14.11% | 17.95% |
Worst 5 rolling 30-year windows (by real CAGR)
| Start | End | Nominal CAGR | Real CAGR | Nominal multiplier | Real multiplier |
|---|---|---|---|---|---|
| 1965 | 1994 | 9.89% | 4.30% | 16.94× | 3.54× |
| 1956 | 1985 | 9.43% | 4.48% | 14.95× | 3.72× |
| 1959 | 1988 | 9.64% | 4.60% | 15.79× | 3.85× |
| 1955 | 1984 | 9.47% | 4.65% | 15.10× | 3.91× |
| 1962 | 1991 | 10.20% | 4.76% | 18.41× | 4.04× |
Best 5 rolling 30-year windows (by real CAGR)
| Start | End | Nominal CAGR | Real CAGR | Nominal multiplier | Real multiplier |
|---|---|---|---|---|---|
| 1932 | 1961 | 12.78% | 10.26% | 36.86× | 18.74× |
| 1933 | 1962 | 12.77% | 9.84% | 36.79× | 16.69× |
| 1943 | 1972 | 13.33% | 9.82% | 42.66× | 16.63× |
| 1942 | 1971 | 13.34% | 9.58% | 42.81× | 15.54× |
| 1935 | 1964 | 12.63% | 9.52% | 35.44× | 15.32× |
Implications
- Sequence-of-returns risk is real but bounded. The worst 30-year window (1965–1994) still delivered 4.30% real. Every 30-year window since 1928 has produced positive real return — but the gap between best (10.26%) and worst is 5.96%, meaning start-timing matters a lot.
- 10-year windows are volatile; 30-year windows are not. 10-year real CAGR ranges from -4.07% to 17.95% — a 22.02% spread. 30-year real ranges only 5.96%. Time smooths the sequence risk.
- The "10% nominal" figure is a mean, not a guarantee. Mean 30-year nominal CAGR is 11.01%; median is 10.81%. The 10th percentile is 9.64%. For planning, use 7-8% nominal / 5-6% real to leave margin.
- Selection bias in current cohort. The most recent 30-year window (1995–2024) delivered 8.07% real — above the historical median. Extrapolating this recent experience forward is the single most common mistake in retirement planning.
Cite this study
Snowballr Research Team. (2026). S&P 500 30-Year Rolling Total Returns 1928–2024. Snowballr.io.
https://snowballr.io/research/sp500-rolling-30-year-returns
Sources & methodology
- Total return series: Damodaran, NYU Stern (pages.stern.nyu.edu/~adamodar)
- Cross-validation: Shiller CAPE dataset (econ.yale.edu/~shiller/data.htm)
- Inflation: BLS CPI-U (bls.gov/cpi)
- License: CC-BY 4.0. Cite Snowballr Research when reusing.
- Last verified: