annual_gap
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-26, from rsp-vs-spy-equal-weight-sp-500.
| year | rsp_price_pct | spy_price_pct | rsp_minus_spy_pp |
|---|---|---|---|
| 2012 | 13.5 | 11.7 | 1.8 |
| 2013 | 30.4 | 26.4 | 4 |
| 2014 | 13.4 | 12.4 | 1 |
| 2015 | -4.2 | -0.8 | -3.5 |
| 2016 | 14.3 | 11.2 | 3.1 |
| 2017 | 15.7 | 18.5 | -2.8 |
| 2018 | -10.2 | -7 | -3.2 |
| 2019 | 26.5 | 28.7 | -2.1 |
| 2020 | 9.9 | 15.1 | -5.2 |
| 2021 | 29.5 | 28.8 | 0.7 |
| 2022 | -13.3 | -19.9 | 6.7 |
| 2023 | 11.8 | 24.8 | -13 |
| 2024 | 11 | 24 | -13 |
| 2025 | 9.6 | 16.6 | -7 |
| 2026 | 9.5 | 12.9 | -3.4 |
- Rows × columns
- 15 × 4
- 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 |
text | 15 distinct values (2012, 2013, 2014…) | |
rsp_price_pct |
number | -13.3 to 30.4 | percent |
spy_price_pct |
number | -19.9 to 28.8 | percent |
rsp_minus_spy_pp |
number | -13 to 6.7 |
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.
SELECT
toString(toYear(date)) AS year,
round(100 * (argMaxIf(toFloat64(close), date, ticker = 'RSP')
/ argMinIf(toFloat64(close), date, ticker = 'RSP') - 1), 1) AS rsp_price_pct,
round(100 * (argMaxIf(toFloat64(close), date, ticker = 'SPY')
/ argMinIf(toFloat64(close), date, ticker = 'SPY') - 1), 1) AS spy_price_pct,
round(100 * (argMaxIf(toFloat64(close), date, ticker = 'RSP')
/ argMinIf(toFloat64(close), date, ticker = 'RSP')
- argMaxIf(toFloat64(close), date, ticker = 'SPY')
/ argMinIf(toFloat64(close), date, ticker = 'SPY')), 1) AS rsp_minus_spy_pp
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('RSP', 'SPY')
AND date >= toDate('2012-01-01')
AND date < today()
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.