split_years
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-28, from what-is-the-5s30s-spread.
| year | inverted_2s10s_session_count | inverted_5s30s_session_count | split_session_count |
|---|---|---|---|
| 1998 | 27 | 0 | 27 |
| 2000 | 227 | 179 | 53 |
| 2005 | 3 | 0 | 3 |
| 2006 | 163 | 22 | 145 |
| 2007 | 72 | 0 | 72 |
| 2019 | 3 | 0 | 3 |
| 2022 | 125 | 81 | 52 |
| 2023 | 250 | 96 | 150 |
| 2024 | 166 | 0 | 166 |
- Rows × columns
- 9 × 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 | 9 distinct values (1998, 2000, 2005…) | |
inverted_2s10s_session_count |
number | 3 to 250 | count |
inverted_5s30s_session_count |
number | 0 to 179 | count |
split_session_count |
number | 3 to 166 | count |
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,
countIf(spread_2s10s < 0) AS inverted_2s10s_session_count,
countIf(spread_5s30s < 0) AS inverted_5s30s_session_count,
countIf(spread_2s10s < 0 AND spread_5s30s > 0) AS split_session_count
FROM
(
SELECT
date,
toFloat64(yield_30_year) - toFloat64(yield_5_year) AS spread_5s30s,
toFloat64(yield_10_year) - toFloat64(yield_2_year) AS spread_2s10s
FROM global_markets.treasury_yields
WHERE date >= toStartOfYear(subtractYears(today(), 30))
AND yield_2_year > 0
AND yield_5_year > 0
AND yield_10_year > 0
AND yield_30_year > 0
)
GROUP BY year
HAVING inverted_2s10s_session_count > 0 OR inverted_5s30s_session_count > 0
ORDER BY year
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.