On-the-Run vs Off-the-Run Treasuries
On-the-run vs off-the-run Treasuries: what makes the newest auction issue the benchmark, why it yields less, and how buybacks target seasoned bonds.
On-the-run Treasuries are the most recently auctioned security at each maturity: the newest 2-year note, 5-year note, 10-year note or 30-year bond. Every other outstanding issue at that maturity is off the run, also called seasoned. The split has nothing to do with credit quality. Every one of them is an obligation of the same issuer. What separates them is where the trading activity sits, and that decides which bond sets the benchmark yield the whole market quotes.
What makes a Treasury on the run?
The Treasury raises money at scheduled auctions. The security that comes out of the most recent auction of a given tenor becomes the on-the-run issue for that tenor and takes over as the benchmark. It holds that status until the next auction of the same tenor prints a newer one, at which point yesterday's benchmark is off the run.
Nothing about the bond itself changes on that day. Its coupon and its maturity date are the same the morning after. What changes is the crowd around it. Once a newer issue arrives:
- Dealers quote the new issue in larger size and in tighter increments.
- Futures hedges, repo financing, dealer inventory and relative-value positions migrate to it.
- The older issue keeps trading, in smaller clips and with a wider bid-ask spread.
- A growing share of the older issue settles into buy-and-hold portfolios and stops circulating at all.
That last point carries more weight than it sounds. A bond held to maturity by an insurer or a foreign central bank is, for trading purposes, out of the market.
How long does a Treasury stay on the run?
The shelf life is set by the auction calendar, and it varies by tenor. The 2-year, 3-year, 5-year and 7-year notes are auctioned every month, so each of those benchmarks is replaced after roughly four weeks. The 10-year note and the 30-year bond also come to market every month, on a quarterly rhythm: a brand new issue in February, May, August and November, then reopenings that add size to that same security in the months between. A reopening does not create a new benchmark. It enlarges the existing one, which keeps the current 10-year note on the run for the rest of the quarter.
Follow that forward and the proportions are stark. A 10-year note is the benchmark for about three months, then spends the next nine and three quarter years off the run. The on-the-run list is a few dozen securities. The off-the-run list is very nearly the entire marketable Treasury market.
What does a yield curve quote actually plot?
The panel below is the constant maturity Treasury series, usually shortened to CMT. It is the daily par yield curve published at fixed points: 3 months, 2 years, 10 years, 30 years and the rest. It is fitted from the most actively traded, most recently auctioned issues, then interpolated to those round maturities.
| tenor | yield_pct | curve_asof |
|---|---|---|
| 3-month | 4.24 | Sep 25, 2026 |
| 6-month | 0 | Sep 25, 2026 |
| 1-year | 4.5 | Sep 25, 2026 |
| 2-year | 4.81 | Sep 25, 2026 |
| 3-year | 0 | Sep 25, 2026 |
| 5-year | 4.98 | Sep 25, 2026 |
| 7-year | 0 | Sep 25, 2026 |
| 10-year | 5.17 | Sep 25, 2026 |
| 20-year | 0 | Sep 25, 2026 |
| 30-year | 5.49 | Sep 25, 2026 |
The exact SQL behind every number
SELECT
step.1 AS tenor,
round(step.2, 2) AS yield_pct,
curve_asof
FROM
(
SELECT
formatDateTime(date, '%b %e, %Y') AS curve_asof,
arrayJoin([
('3-month', toFloat64(ifNull(yield_3_month, 0))),
('6-month', toFloat64(ifNull(yield_6_month, 0))),
('1-year', toFloat64(ifNull(yield_1_year, 0))),
('2-year', toFloat64(ifNull(yield_2_year, 0))),
('3-year', toFloat64(ifNull(yield_3_year, 0))),
('5-year', toFloat64(ifNull(yield_5_year, 0))),
('7-year', toFloat64(ifNull(yield_7_year, 0))),
('10-year', toFloat64(ifNull(yield_10_year, 0))),
('20-year', toFloat64(ifNull(yield_20_year, 0))),
('30-year', toFloat64(ifNull(yield_30_year, 0)))
]) AS step
FROM
(
SELECT *
FROM global_markets.treasury_yields
WHERE yield_10_year > 0
AND yield_30_year > 0
ORDER BY date DESC
LIMIT 1
)
)As of Sep 25, 2026, the 2-year point sat at 4.81% and the 10-year point at 5.17%. Notice the wording: point, not bond. On any given Tuesday no outstanding security has exactly ten years left to run, so the 10-year reading is a value taken off a fitted curve anchored on the on-the-run note. That is the quiet assumption inside every curve chart a retail investor has ever looked at.
Why does an on-the-run Treasury yield less?
An on-the-run note trades richer than an off-the-run bond of nearly identical maturity, which is the same statement as saying it yields slightly less. The mechanism is immediacy. A buyer who may need to sell a large block at short notice wants the issue with the deepest two-sided market, and pays for that in the form of a marginally lower yield. The difference is the liquidity premium.
Someone sits on the other side of it. An investor comfortable holding to maturity can own seasoned paper instead, collect the few extra basis points every year, and give up the ability to exit quickly in size. Dealers and relative-value desks trade the gap itself, owning off-the-run issues against short positions in on-the-run ones, or the reverse. The premium is not a constant. It widens when immediacy gets expensive in stressed markets, and compresses in quiet ones.
How big is the on-the-run premium?
The constant maturity series cannot answer that directly. It is anchored on the on-the-run issue to begin with. What it can supply is a yardstick. The next panel measures the average yield step between the benchmark tenors over the trailing four months, then divides each step by the years of maturity between its two ends.
| tenor_pair | avg_gap_bps | abs_bps_per_year |
|---|---|---|
| 2-year to 10-year | 38.6 | 4.8 |
| 10-year to 30-year | 47.9 | 2.4 |
The exact SQL behind every number
SELECT
tenor_pair,
round(avg(gap_pct) * 100, 1) AS avg_gap_bps,
round(abs(avg(gap_pct)) * 100 / max(years), 1) AS abs_bps_per_year
FROM
(
SELECT
step.1 AS tenor_pair,
step.2 AS gap_pct,
step.3 AS years,
step.4 AS step_order
FROM
(
SELECT arrayJoin([
('2-year to 10-year', toFloat64(yield_10_year) - toFloat64(yield_2_year), 8.0, 1),
('10-year to 30-year', toFloat64(yield_30_year) - toFloat64(yield_10_year), 20.0, 2)
]) AS step
FROM global_markets.treasury_yields
WHERE date >= today() - 120
AND yield_2_year > 0
AND yield_10_year > 0
AND yield_30_year > 0
)
)
GROUP BY tenor_pair
HAVING count() > 0
ORDER BY max(step_order)The 2-year to 10-year step averaged 38.6 basis points over that window, which works out to about 4.8 basis points for each extra year of maturity. The 10-year to 30-year step stretches across a much longer run of maturity, and the same arithmetic there gives 2.4 basis points a year. The two figures are rarely the same, and the distance between them is what people mean by the shape of the curve as opposed to its level.
Hold that against a second yardstick: how far the 10-year yield travels in an ordinary day.
| month | month_label | median_abs_move_bps | p90_abs_move_bps |
|---|---|---|---|
| 2024-10-01 | Oct 2024 | 3 | 7 |
| 2024-11-01 | Nov 2024 | 3 | 13.2 |
| 2024-12-01 | Dec 2024 | 4 | 7 |
| 2025-01-01 | Jan 2025 | 3 | 9 |
| 2025-02-01 | Feb 2025 | 4 | 9.2 |
| 2025-03-01 | Mar 2025 | 4 | 9 |
| 2025-04-01 | Apr 2025 | 6 | 11 |
| 2025-05-01 | May 2025 | 4 | 8 |
| 2025-06-01 | Jun 2025 | 4 | 7.2 |
| 2025-07-01 | Jul 2025 | 3.5 | 7.9 |
| 2025-08-01 | Aug 2025 | 2 | 5 |
| 2025-09-01 | Sep 2025 | 3 | 5 |
| 2025-10-01 | Oct 2025 | 2 | 5.9 |
| 2025-11-01 | Nov 2025 | 2.5 | 5.3 |
| 2025-12-01 | Dec 2025 | 3 | 5 |
| 2026-01-01 | Jan 2026 | 2 | 4.2 |
| 2026-02-01 | Feb 2026 | 2 | 6.4 |
| 2026-03-01 | Mar 2026 | 5 | 8.9 |
| 2026-04-01 | Apr 2026 | 3 | 4 |
| 2026-05-01 | May 2026 | 3 | 7.3 |
The exact SQL behind every number
SELECT
toString(toStartOfMonth(d)) AS month,
formatDateTime(toStartOfMonth(d), '%b %Y') AS month_label,
round(quantileDeterministic(0.5)(chg_bps, toUInt32(d)), 1) AS median_abs_move_bps,
round(quantileDeterministic(0.9)(chg_bps, toUInt32(d)), 1) AS p90_abs_move_bps
FROM
(
SELECT
d,
prev,
abs(cur - prev) * 100 AS chg_bps
FROM
(
SELECT
date AS d,
toFloat64(ifNull(yield_10_year, 0)) AS cur,
any(toFloat64(ifNull(yield_10_year, 0)))
OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev
FROM global_markets.treasury_yields
WHERE date >= today() - 780
AND yield_10_year > 0
)
)
WHERE prev > 0
AND d >= toStartOfMonth(today() - 700)
GROUP BY month, month_label
HAVING count() >= 5
ORDER BY monthIn Sep 2026 the median one-day change in the 10-year yield came to 2.5 basis points, with the busier days up near 8.5. Market commentary generally puts the on-the-run premium on the 10-year note at roughly one to three basis points in ordinary conditions, wider when liquidity thins. Treat that as a commonly published range, not a measurement from this page. The scale is the useful part: the premium is a small fraction of a normal day's move. That is how it stays invisible on a curve chart while remaining very much alive in a dealer's profit and loss.
Why Treasury buybacks target off-the-run issues
This is where the distinction earns its keep. The Treasury's buyback operations bid for off-the-run securities specifically, the seasoned issues that have drifted into portfolios and out of active trading. Treasury buyback operations walks through the mechanics of those reverse auctions.
The framing of the programme follows from the target. Cash used to repurchase seasoned paper is raised again through ordinary auctions of on-the-run issues, so the outstanding debt is not reduced. What changes is the composition: thinly traded old securities come out of the market, and freshly issued benchmark securities go back in. That is the sense in which the programme is described as liquidity support rather than debt reduction.
Comparing a seasoned bond to a curve quote
The 2s10s spread is the 10-year constant maturity yield minus the 2-year, and the 3m10y spread works the same way off the 3-month bill. Both legs of both spreads are curve points, which means both are anchored on on-the-run issues.
| month | month_label | yield_2y_pct | yield_10y_pct | spread_2s10s_bps |
|---|---|---|---|---|
| 2024-10-01 | Oct 2024 | 3.97 | 4.1 | 12.3 |
| 2024-11-01 | Nov 2024 | 4.26 | 4.36 | 9.8 |
| 2024-12-01 | Dec 2024 | 4.23 | 4.39 | 16.6 |
| 2025-01-01 | Jan 2025 | 4.27 | 4.63 | 35.7 |
| 2025-02-01 | Feb 2025 | 4.21 | 4.45 | 24.1 |
| 2025-03-01 | Mar 2025 | 3.97 | 4.28 | 31 |
| 2025-04-01 | Apr 2025 | 3.78 | 4.28 | 50.1 |
| 2025-05-01 | May 2025 | 3.92 | 4.42 | 50.4 |
| 2025-06-01 | Jun 2025 | 3.89 | 4.38 | 49.4 |
| 2025-07-01 | Jul 2025 | 3.88 | 4.39 | 51 |
| 2025-08-01 | Aug 2025 | 3.7 | 4.26 | 56.1 |
| 2025-09-01 | Sep 2025 | 3.57 | 4.12 | 55.2 |
| 2025-10-01 | Oct 2025 | 3.52 | 4.06 | 54 |
| 2025-11-01 | Nov 2025 | 3.55 | 4.09 | 54.4 |
| 2025-12-01 | Dec 2025 | 3.5 | 4.14 | 64.2 |
| 2026-01-01 | Jan 2026 | 3.54 | 4.21 | 67.7 |
| 2026-02-01 | Feb 2026 | 3.47 | 4.13 | 65.4 |
| 2026-03-01 | Mar 2026 | 3.71 | 4.25 | 53.1 |
| 2026-04-01 | Apr 2026 | 3.8 | 4.32 | 52 |
| 2026-05-01 | May 2026 | 4 | 4.48 | 48.9 |
The exact SQL behind every number
SELECT
toString(toStartOfMonth(date)) AS month,
formatDateTime(toStartOfMonth(date), '%b %Y') AS month_label,
round(avg(toFloat64(yield_2_year)), 2) AS yield_2y_pct,
round(avg(toFloat64(yield_10_year)), 2) AS yield_10y_pct,
round((avg(toFloat64(yield_10_year)) - avg(toFloat64(yield_2_year))) * 100, 1) AS spread_2s10s_bps
FROM global_markets.treasury_yields
WHERE date >= toStartOfMonth(today() - 700)
AND yield_2_year > 0
AND yield_10_year > 0
GROUP BY month, month_label
ORDER BY monthThe panel tracks both legs and the spread between them, month by month. In Sep 2026 the 2-year averaged 4.61% and the 10-year averaged 4.94%, putting 2s10s at 33.3 basis points. For a longer walk through the same series, see the 2026 first-half Treasury curve.
Now pull up a seasoned 9-year note and its yield will not match the curve. Several things account for the gap, and none of them is an error. Its remaining maturity is not exactly the curve point. Its liquidity premium differs from the benchmark's. Its coupon differs too, and an old high-coupon bond alongside a newer low-coupon note of similar maturity can post different yields to maturity on the same afternoon. Financing terms in the repo market differ between the two as well. A reader comparing those numbers is looking at structure, not at a data problem.
FAQ
What does on the run mean for a Treasury?
It means the security is the most recently auctioned issue at its maturity, for example the newest 10-year note. That issue serves as the benchmark for its tenor and carries the heaviest trading volume of any Treasury at that point on the curve.
How long does a Treasury stay on the run?
Roughly one month for the 2-year, 3-year, 5-year and 7-year notes, which are auctioned monthly. About three months for the 10-year note and the 30-year bond, whose new issues arrive in February, May, August and November and are reopened in the months between.
Do off-the-run Treasuries yield more than on-the-run Treasuries?
An off-the-run issue generally yields slightly more than an on-the-run issue of nearly the same maturity. That gap is the liquidity premium paid for the deeper, tighter market in the benchmark. Published estimates put it at a few basis points on the 10-year in calm conditions, with wider readings when market liquidity thins.
Why does the Treasury buy back off-the-run securities?
Buyback operations bid for seasoned issues that have largely stopped circulating. The cash is raised again through ordinary auctions of current benchmark securities, so the operation changes the composition of outstanding debt rather than its size.
Which yields go into the 2s10s spread?
The 2-year and 10-year points of the constant maturity curve, both anchored on the on-the-run notes at those tenors. A seasoned bond's yield will not line up exactly with either leg.
How these numbers were built
Every panel reads the daily constant maturity Treasury series, the published par yield curve at fixed maturity points. It carries one row per business day and lags the current session slightly at the front edge, so the newest curve shown here is the last completed publication, dated Sep 25, 2026. Basis point figures are computed in SQL as a yield difference multiplied by 100. The daily-move panel uses a deterministic quantile, so two runs of the same query return the same median.
Every panel on this page carries the exact SQL beneath it, so any curve you read here can be rebuilt line by line. To pull the constant maturity curve for a date of your own choosing, ask for it in plain English on the Strasmore terminal.