index_paths
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-30, from warren-buffett-index-put-trade.
| year | sp500_fund_rebased | euro_stoxx_fund_rebased |
|---|---|---|
| 2005 | 100 | 100 |
| 2006 | 113.7 | 128.1 |
| 2007 | 117.4 | 147.9 |
| 2008 | 72.5 | 81.1 |
| 2009 | 89.5 | 97.9 |
| 2010 | 101 | 86.9 |
| 2011 | 100.8 | 69.6 |
| 2012 | 114.4 | 81.8 |
| 2013 | 148.3 | 99.6 |
| 2014 | 165.1 | 87 |
| 2015 | 163.7 | 81.2 |
| 2016 | 179.5 | 79 |
| 2017 | 214.3 | 96.1 |
| 2018 | 200.7 | 78.5 |
| 2019 | 258.5 | 96.2 |
| 2020 | 300.3 | 98.4 |
| 2021 | 381.5 | 110.1 |
| 2022 | 307.1 | 91.3 |
| 2023 | 381.7 | 112.8 |
| 2024 | 470.7 | 113.6 |
| 2025 | 547.7 | 151.9 |
| 2026 | 614.1 | 161 |
- Rows × columns
- 22 × 3
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
year |
number | 2,005 to 2,026 | |
sp500_fund_rebased |
number | 72.5 to 614.1 | |
euro_stoxx_fund_rebased |
number | 69.6 to 161 |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH yearly AS
(
SELECT
ticker,
toYear(date) AS calendar_year,
argMax(toFloat64(close), date) AS year_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'FEZ')
AND date >= '2005-01-01'
GROUP BY ticker, calendar_year
),
base AS
(
SELECT
ticker,
argMin(year_close, calendar_year) AS first_close
FROM yearly
GROUP BY ticker
)
SELECT
y.calendar_year AS year,
round(maxIf(100 * y.year_close / b.first_close, y.ticker = 'SPY'), 1) AS sp500_fund_rebased,
round(maxIf(100 * y.year_close / b.first_close, y.ticker = 'FEZ'), 1) AS euro_stoxx_fund_rebased
FROM yearly AS y
INNER JOIN base AS b ON b.ticker = y.ticker
GROUP BY year
ORDER BY year
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.