STRASMORE/EXPLORE 2,433 QUERIES

curve_by_bucket

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-20, from how-treasury-buybacks-work.

as of ranking 7×3read in context →
curve_by_bucket — 7 rows by 3 columns, computed from US exchange, SIP and OPRA data.
tenorbuyback_bucketyield_pct
1M1Mo to 2Y3.97
3M1Mo to 2Y4.12
1Y1Mo to 2Y4.4
2Y1Mo to 2Y4.67
5Y3Y to 5Y4.78
10Y7Y to 10Y4.94
30Y20Y to 30Y5.29
Rows × columns
7 × 3
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 curve_by_bucket, derived from the stored result.
ColumnTypeRangeNotes
tenor text 7 distinct values (10Y, 1M, 1Y…)
buyback_bucket text 4 distinct values (1Mo to 2Y, 20Y to 30Y, 3Y to 5Y…)
yield_pct number 3.97 to 5.29 percent

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
    tenor,
    buyback_bucket,
    round(yld, 2) AS yield_pct
FROM
(
    SELECT
        date,
        ['1M', '3M', '6M', '1Y', '2Y', '3Y', '5Y', '7Y', '10Y', '20Y', '30Y'] AS tenors,
        ['1Mo to 2Y', '1Mo to 2Y', '1Mo to 2Y', '1Mo to 2Y', '1Mo to 2Y',
         '2Y to 3Y', '3Y to 5Y', '5Y to 7Y', '7Y to 10Y', '10Y to 20Y', '20Y to 30Y'] AS buckets,
        [toFloat64(yield_1_month), toFloat64(yield_3_month), toFloat64(yield_6_month),
         toFloat64(yield_1_year), toFloat64(yield_2_year), toFloat64(yield_3_year),
         toFloat64(yield_5_year), toFloat64(yield_7_year), toFloat64(yield_10_year),
         toFloat64(yield_20_year), toFloat64(yield_30_year)] AS ylds
    FROM global_markets.treasury_yields
    WHERE date <= '2026-09-18'
      AND isNotNull(yield_2_year)
      AND isNotNull(yield_10_year)
    ORDER BY date DESC
    LIMIT 1
)
ARRAY JOIN
    tenors AS tenor,
    buckets AS buyback_bucket,
    ylds AS yld,
    arrayEnumerate(tenors) AS pos
WHERE isNotNull(yld)
ORDER BY pos
⌘/Ctrl + Enter
More from this analysishow-treasury-buybacks-work
bucket_series series 76×4 Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays ranking 25×4 Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years) ranking 25×3 SPY options median spread by expiration date, near-the-money strikes only ranking 25×4 When market headlines publish, by New York clock hour ranking 24×2 Stock headlines by ET hour of publication (last 30 days, all days) ranking 24×3 See all 2,433 queries →