STRASMORE/EXPLORE 2,401 QUERIES

The 2s10s over the trailing six months, with the 2-year and 10-year moves that produced it

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-19, from What Happens When the Yield Curve Un-Inverts.

as of series 26×8read in context →
The 2s10s over the trailing six months, with the 2-year and 10-year moves that produced it — 26 rows by 8 columns, computed from US exchange, SIP and OPRA data.
weekweek_labely2_yieldy10_yieldspread_2s10sy2_move_bpy10_move_bpsteepening_type
2026-03-23Mar 233.884.440.5600no steepening over the window
2026-03-30Mar 303.844.350.51-4-9no steepening over the window
2026-04-06Apr 63.814.310.5-7-13no steepening over the window
2026-04-13Apr 133.714.260.55-17-18no steepening over the window
2026-04-20Apr 203.784.310.53-10-13no steepening over the window
2026-04-27Apr 273.884.390.510-5no steepening over the window
2026-05-04May 43.94.380.482-6no steepening over the window
2026-05-11May 114.094.590.52115no steepening over the window
2026-05-18May 184.134.560.432512no steepening over the window
2026-05-25May 253.984.450.47101no steepening over the window
2026-06-01Jun 14.174.550.382911no steepening over the window
2026-06-08Jun 84.094.480.39214no steepening over the window
2026-06-15Jun 154.194.460.27312no steepening over the window
2026-06-22Jun 224.074.380.3119-6no steepening over the window
2026-06-29Jun 294.144.490.35265no steepening over the window
2026-07-06Jul 64.214.560.353312no steepening over the window
2026-07-13Jul 134.184.550.373011no steepening over the window
2026-07-20Jul 204.334.690.364525no steepening over the window
2026-07-27Jul 274.284.750.474031no steepening over the window
2026-08-03Aug 34.194.650.463121no steepening over the window
2026-08-10Aug 104.174.680.512924no steepening over the window
2026-08-17Aug 174.244.740.53630no steepening over the window
2026-08-24Aug 244.344.730.394629no steepening over the window
2026-08-31Aug 314.374.780.414934no steepening over the window
2026-09-07Sep 74.634.960.337552no steepening over the window
2026-09-14Sep 144.674.940.277950no steepening over the window
Rows × columns
26 × 8
Period covered
to
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for The 2s10s over the trailing six months, with the 2-year and 10-year moves that produced it, derived from the stored result.
ColumnTypeRangeNotes
week date 2026-03-23 to 2026-09-14
week_label text 26 distinct values (Apr 13, Apr 20, Apr 27…)
y2_yield number 3.71 to 4.67 ratio or rate
y10_yield number 4.26 to 4.96 ratio or rate
spread_2s10s number 0.27 to 0.56
y2_move_bp number -17 to 79
y10_move_bp number -18 to 52
steepening_type text 1 distinct value (no steepening over the window)

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.

the exact SQL behind every number
SELECT
    week,
    week_label,
    y2_yield,
    y10_yield,
    spread_2s10s,
    y2_move_bp,
    y10_move_bp,
    multiIf(
        (y10_move_bp - y2_move_bp) <= 0,                        'no steepening over the window',
        y2_move_bp < 0 AND abs(y2_move_bp) >= abs(y10_move_bp), 'bull steepener (2-year fell most)',
        'bear steepener (10-year rose most)'
    ) AS steepening_type
FROM
(
    SELECT
        week,
        week_label,
        y2_yield,
        y10_yield,
        spread_2s10s,
        round((y2_yield  - first_value(y2_yield)  OVER (ORDER BY week ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) * 100) AS y2_move_bp,
        round((y10_yield - first_value(y10_yield) OVER (ORDER BY week ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) * 100) AS y10_move_bp
    FROM
    (
        SELECT
            toStartOfWeek(date, 1)                                                   AS week,
            formatDateTime(week, '%b %e')                                            AS week_label,
            round(argMax(ifNull(toFloat64(yield_2_year), 0.), date), 2)              AS y2_yield,
            round(argMax(ifNull(toFloat64(yield_10_year), 0.), date), 2)             AS y10_yield,
            round(argMax(ifNull(toFloat64(yield_10_year), 0.) - ifNull(toFloat64(yield_2_year), 0.), date), 2) AS spread_2s10s
        FROM global_markets.treasury_yields
        WHERE date >= today() - 182
          AND yield_2_year > 0 AND yield_10_year > 0
        GROUP BY week
    )
)
ORDER BY week

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisWhat Happens When the Yield Curve Un-Inverts
The 2s10s spread by month, full history series 604×5 Which leg did the work: 2-year and 10-year moves over the 91 days before each crossing table 7×9 Every 2s10s un-inversion: the crossing and the spread 3, 6 and 12 months later table 7×8 SPY's change from the crossing-day close, 3, 6 and 12 months after each un-inversion table 2×5 3m10y and 2s10s spreads, monthly averages over twenty years series 241×4 3-month and 10-year yields with both spreads, last 90 days series 62×6 See all 2,401 queries →