FRED SP500 — Daily CSV Download (S&P 500 Price Index)

The S&P 500 historical returns dataset provides annual total returns of the benchmark US equity index since 1928, including reinvested dividends, CPI inflation, and inflation-adjusted real returns. This is the reference dataset for long-term equity performance analysis, asset allocation backtesting, and real purchasing power calculations. For a tech-weighted comparison over a shorter horizon, see our Nasdaq Composite index dataset.

Dataset: S&P 500 Historical Returns · Data through 2025-12-31

Latest Value
14.59%
Dec 31, 2025
Historical Percentile
55.1th
Near median
Historical Average
8.61%
98 observations
Historical Range
HIGH
53.71%
Dec 31, 1954
LOW
-38.07%
Dec 31, 1931

You have the data. Get what it means. New analyses and the live macro-regime read — only when there's something worth your time. No filler.



Loading dataset…

Source: Aswath Damodaran (NYU Stern) · S&P 500 annual total return incl. dividends (bars) vs inflation-adjusted real return (line)


Macro Takeaway

The S&P 500 has delivered an annualized nominal return of approximately 10% since 1928, but in real terms — after adjusting for CPI inflation — the figure drops to roughly 7%. This gap is the inflation tax on capital, and it compounds dramatically over decades. An investor who measures performance only in nominal terms systematically overestimates their actual wealth accumulation. The dispersion across decades is striking: the 2010s delivered annualized real returns above 11%, while the 2000s — bookended by the dot-com crash and the Global Financial Crisis — produced a negative real return over the full decade. Worth reading alongside: what separates near-identical S&P 500 ETFs.

This variance underscores a structural reality: equity returns are not a constant but a function of the starting valuation regime. Periods of above-average real interest rates and compressed valuations have historically been associated with stronger subsequent returns. The real 10-year yield and the CAPE ratio provide complementary lenses for assessing where the current regime sits in this long-term distribution.


Dataset Overview

IndicatorS&P 500 Total Returns (nominal & real)
GeographyUnited States
FrequencyAnnual
Period1928–2025
Variablesdate, nominal return (%), CPI inflation (%), real return (%)
FormatCSV, Excel (XLSX)
SourcesAswath Damodaran (NYU Stern) — S&P 500 returns and CPI-U inflation
Latest observation2025-12-31

Dataset Variables

The CSV and Excel files contain the following columns. Each row represents one calendar year.

ColumnTypeDescription
dateDateYear-end date (December 31) of the calendar year
nominal_returnFloatS&P 500 total return including dividends, in percent
cpi_inflationFloatUS CPI-U change, December-over-December, in percent
real_returnFloatInflation-adjusted return, geometric: (1+nominal)/(1+inflation)−1, in percent

Column names match the CSV headers exactly.


Download the Complete Dataset

The full dataset is available in CSV and Excel formats — 98 years of annual equity returns (1928–2025).

You have the data. Get what it means. New analyses and the live macro-regime read — only when there's something worth your time. No filler.


FRED Direct CSV Access

The S&P 500 price series is available via FRED under code SP500:

https://fred.stlouisfed.org/graph/fredgraph.csv?id=SP500

However, FRED provides only the daily price index — not annual total returns with dividends and inflation adjustment. The Eco3min dataset combines Damodaran’s total-return data (which includes reinvested dividends) with the CPI-U inflation series from the same workbook to produce a single, analysis-ready annual series with nominal returns, inflation, and real returns in one file.

Direct CSV Access — Eco3min Structured Dataset

https://eco3min.fr/dataset/sp500-historical-returns.csv

This URL returns the complete dataset in CSV format. It can be used directly in pandas, R, curl, or any data tool.


Using the Dataset in Python

import pandas as pd

url = "https://eco3min.fr/dataset/sp500-historical-returns.csv"
df = pd.read_csv(url)

print(df.head())
print(f"Average real return: {df['real_return'].mean():.2f}%")
print(f"Best year: {df.loc[df['real_return'].idxmax(), 'date'][:4]}")

Using the Dataset in R

library(readr)

url <- "https://eco3min.fr/dataset/sp500-historical-returns.csv"
df <- read_csv(url)

head(df)
summary(df$real_return)

Both examples load the dataset directly from the URL — no download or API key required.


Methodology

The nominal return series is sourced from Aswath Damodaran’s annual dataset published by New York University’s Stern School of Business. Damodaran’s methodology includes both price appreciation and reinvested dividends, making it a total return measure — a critical distinction, as dividends have historically contributed roughly 2 percentage points of annual return.

Inflation is the annual CPI-U change (December-over-December), taken from the same Damodaran workbook, which compiles it from the US Bureau of Labor Statistics series. This is the standard measure used for inflation-adjusted return calculations.

Real returns use the exact geometric formula — (1 + nominal) / (1 + inflation) − 1 — not the linear approximation (nominal − inflation). The difference is most visible in high-inflation years: in 2022, a −18.0% nominal return with 6.5% inflation yields −23.0% real (geometric), versus −24.5% under the linear shortcut.

The series covers complete calendar years only. It is refreshed when Damodaran publishes the prior year’s figures, typically each January.


Historical Regimes

The series begins in 1928. The four most recent decades illustrate how regime-dependent equity returns are — and why a single long-run average obscures more than it reveals.

1990–1999 — The great bull market. The S&P 500 delivered annualized nominal returns exceeding 18%, fueled by the technology revolution, declining interest rates (the Fed Funds rate fell from 8% to 5.5%), and the longest peacetime expansion in US history at the time. Real returns averaged roughly 15% annually — a pace that subsequent decades would not replicate. The period ended with CAPE ratios at all-time highs above 44.

2000–2009 — The lost decade. Two major bear markets (dot-com crash and Global Financial Crisis) produced a cumulative nominal return near zero over the full decade. In real terms, investors lost purchasing power. This decade illustrates the asymmetry of equity returns: a 50% drawdown requires a 100% recovery to break even. The decade also coincided with the Fed cutting rates to 1% (2003) then to 0% (2008), laying the groundwork for the next regime. On investing after a market that has just made new highs, see what the record high actually shows.

2010–2019 — QE-fueled recovery. Annualized real returns exceeded 11%, driven by three Federal Reserve QE programs, corporate buybacks averaging $500 billion per year, and profit margin expansion. By 2019, the 10-year Treasury yield had fallen below 2%, compressing the equity risk premium and mechanically inflating valuations. The period was characterized by historically low volatility and a near-absence of significant drawdowns outside of brief corrections.

2020–2025 — Pandemic, inflation, and concentration. The COVID-19 crash (−34% in 23 trading days) was followed by the fastest recovery in market history. The subsequent inflation shock and Fed tightening cycle (2022–2023) produced the first meaningful correction in real terms since 2008. A notable structural feature of this period is extreme sector concentration: the top 7 stocks accounted for over 30% of the index by late 2024, raising questions about the representativeness of “the market” as a measure of broad economic performance.


Related Macroeconomic Datasets

Related Research


Macroeconomic Dataset Hub

This dataset is part of the Eco3min macro-financial data repository. Explore all available datasets including inflation, interest rates, equity returns, credit spreads, and currency indicators.

Explore the Eco3min Dataset Hub


Sources

  • Aswath Damodaran — NYU Stern School of Business, Annual Returns on Stocks, Bonds and Bills (S&P 500, including dividends)
  • U.S. Bureau of Labor Statistics — Consumer Price Index for All Urban Consumers (CPI-U), via the Damodaran workbook

Dataset Reference

Last updated — 4 August 2026

Disclaimer – Financial Information: The analyses, commentary, and content published on eco3min.fr are provided for informational and educational purposes only. They do not constitute investment advice or a solicitation to buy or sell financial instruments. Past performance is not indicative of future results. All investment decisions involve risk and are the sole responsibility of the reader.