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 1990, including dividends reinvested, 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.
Dataset: S&P 500 Historical Returns · Updated —
Loading FRED data…
Source: FRED series SP500 · Federal Reserve Bank of St. Louis / Damodaran
Macro Takeaway
The S&P 500 has delivered an annualized nominal return of approximately 10-11% since 1990, but in real terms — after subtracting CPI inflation — the figure drops to roughly 7-8%. 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 equally 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.
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 preceded stronger forward 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
| Indicator | S&P 500 Total Returns (nominal & real) |
|---|---|
| Geography | United States |
| Frequency | Annual |
| Period | 1990–2026 |
| Variables | Year, nominal return (%), CPI inflation (%), real return (%) |
| Format | CSV, Excel (XLSX) |
| Sources | Aswath Damodaran (NYU Stern), Bureau of Labor Statistics (CPI-U) |
| Last updated | — |
Dataset Variables
The CSV and Excel files contain the following columns. Each row represents one calendar year.
| Column | Type | Description |
|---|---|---|
year | Integer | Calendar year |
nominal_return | Float | S&P 500 total return including dividends, in percent |
cpi_inflation | Float | US CPI year-over-year change, in percent |
real_return | Float | Inflation-adjusted return (nominal minus CPI), in percent |
Column names match the CSV headers exactly.
Download the Complete Dataset
The full dataset is available in CSV and Excel formats — 36 years of annual equity returns.
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 BLS CPI-U data 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(), 'year']}")
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 approximately 2 percentage points of annual return.
Inflation data is derived from the Bureau of Labor Statistics Consumer Price Index for All Urban Consumers (CPI-U), measured on a December-over-December basis. This is the standard measure used by the Federal Reserve and most financial institutions for inflation-adjusted calculations.
Real returns are calculated using the Fisher equation approximation: real return ≈ nominal return − CPI inflation. For most practical purposes, this linear approximation is sufficiently accurate. The geometric (exact) formula — (1 + nominal) / (1 + inflation) − 1 — produces marginally different results only in periods of very high inflation.
The dataset is updated annually in January, when Damodaran publishes the previous year’s return data. A provisional mid-year update may be added using FRED SP500 price data, but the definitive figures are always the January release.
Historical Regimes
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.
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–2026 — 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
- US 10-Year Treasury Yield — The discount rate driving equity valuations
- Real 10-Year Treasury Yield — Real cost of capital for the economy
- US CPI Inflation History — The inflation component of real return calculations
- Credit Spreads & Recession Risk — Risk appetite indicator for cross-asset analysis
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 the S&P 500
- U.S. Bureau of Labor Statistics — Consumer Price Index for All Urban Consumers (CPI-U)
