Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of October 5, 2026 · refreshed weekly

What Is the Term Premium in Bond Yields?

The term premium is the piece of a 10 year Treasury yield left over after expected short rates. See the split on the live curve, and why it is an estimate.

The term premium is the part of a long Treasury yield that is left over once you account for the average short term interest rate the market expects over the life of the bond. Split a 10 year yield into two pieces, an expected path for short rates and a residual, and the residual is the term premium: the extra yield paid for carrying duration instead of rolling Treasury bills. Nobody quotes it on a screen. It falls out of a model, and the models disagree about its level.

What is the term premium in plain English

There are two ways to own ten years of Treasury exposure. Buy a 10 year note and keep it, locking in today's yield. Or buy a 3 month bill and roll it about forty times, collecting whatever average short rate the next decade delivers. If investors were indifferent between those two paths, the 10 year yield would sit exactly at the expected average of those future short rates. The term premium is the wedge between them.

Duration is the name for what the long holder takes on: the sensitivity of a bond's price to a move in yields. A one percentage point rise in yields takes something near eight percent off the price of a freshly issued 10 year note, while a 3 month bill barely notices. The premium is the payment for sitting in that position rather than staying short. It can also be negative, and published estimates have been negative for long stretches of the past decade.

The shape being decomposed

A yield curve is a yield at each maturity on one day. The ladder below averages each tenor over the past month, then sets it beside the same tenor a year earlier.

QueryThe Treasury curve now and a year ago, by maturity
maturityyield_recent_pctyield_year_ago_pct
3M4.144.07
2Y4.723.57
5Y4.873.66
10Y5.054.12
20YNoneNone
30Y5.44.74
The exact SQL behind every number
SELECT
    leg.1 AS maturity,
    leg.2 AS yield_recent_pct,
    leg.3 AS yield_year_ago_pct
FROM
(
    SELECT
        round(avgIf(toFloat64(yield_3_month), is_recent), 2) AS m3_now,
        round(avgIf(toFloat64(yield_3_month), is_prior), 2)  AS m3_then,
        round(avgIf(toFloat64(yield_2_year), is_recent), 2)  AS y2_now,
        round(avgIf(toFloat64(yield_2_year), is_prior), 2)   AS y2_then,
        round(avgIf(toFloat64(yield_5_year), is_recent), 2)  AS y5_now,
        round(avgIf(toFloat64(yield_5_year), is_prior), 2)   AS y5_then,
        round(avgIf(toFloat64(yield_10_year), is_recent), 2) AS y10_now,
        round(avgIf(toFloat64(yield_10_year), is_prior), 2)  AS y10_then,
        round(avgIf(toFloat64(yield_20_year), is_recent), 2) AS y20_now,
        round(avgIf(toFloat64(yield_20_year), is_prior), 2)  AS y20_then,
        round(avgIf(toFloat64(yield_30_year), is_recent), 2) AS y30_now,
        round(avgIf(toFloat64(yield_30_year), is_prior), 2)  AS y30_then
    FROM
    (
        SELECT
            yield_3_month,
            yield_2_year,
            yield_5_year,
            yield_10_year,
            yield_20_year,
            yield_30_year,
            date >= today() - 30                         AS is_recent,
            date BETWEEN today() - 400 AND today() - 370 AS is_prior
        FROM global_markets.treasury_yields
        WHERE (date >= today() - 30 OR date BETWEEN today() - 400 AND today() - 370)
          AND yield_10_year > 0
    )
    HAVING countIf(is_recent) > 0 AND countIf(is_prior) > 0
)
ARRAY JOIN
[
    ('3M',  m3_now,  m3_then),
    ('2Y',  y2_now,  y2_then),
    ('5Y',  y5_now,  y5_then),
    ('10Y', y10_now, y10_then),
    ('20Y', y20_now, y20_then),
    ('30Y', y30_now, y30_then)
] AS leg
Run this yourself

Over the trailing month the 3 month bill averaged 4.14% and the 30Y bond averaged 5.4%. A year earlier those same two points averaged 4.07% and 4.74%. That is 6 maturities, every value a quoted market yield. The term premium is not in the panel. It is what a model extracts from a long sequence of panels like it.

The curve already carries forward rates

Before any model arrives, the curve pins down forward rates. Ten years of return at the 10 year yield has to match five years at the 5 year yield followed by five years at whatever rate the market implies for years six through ten. Rearranged, that implied rate for years six through ten, the 5y5y forward, is close to twice the 10 year yield minus the 5 year yield.

QueryThe 5 year, the 10 year, and the implied 5y5y forward rate
26 rows (showing 20)
monthmonth_labelspot_5y_pctspot_10y_pctforward_5y5y_pct
2024-09-01Sep 20243.493.713.94
2024-10-01Oct 20243.914.14.28
2024-11-01Nov 20244.234.364.48
2024-12-01Dec 20244.254.394.53
2025-01-01Jan 20254.434.634.83
2025-02-01Feb 20254.284.454.62
2025-03-01Mar 20254.044.284.52
2025-04-01Apr 20253.914.284.64
2025-05-01May 20254.024.424.82
2025-06-01Jun 20253.964.384.8
2025-07-01Jul 20253.954.394.83
2025-08-01Aug 20253.794.264.74
2025-09-01Sep 20253.664.124.58
2025-10-01Oct 20253.654.064.48
2025-11-01Nov 20253.674.094.51
2025-12-01Dec 20253.74.144.58
2026-01-01Jan 20263.784.214.65
2026-02-01Feb 20263.684.134.57
2026-03-01Mar 20263.854.254.64
2026-04-01Apr 20263.944.324.7
The exact SQL behind every number
SELECT
    toString(toStartOfMonth(date))                AS month,
    formatDateTime(toStartOfMonth(date), '%b %Y') AS month_label,
    round(avg(toFloat64(yield_5_year)), 2)        AS spot_5y_pct,
    round(avg(toFloat64(yield_10_year)), 2)       AS spot_10y_pct,
    round((10 * avg(toFloat64(yield_10_year)) - 5 * avg(toFloat64(yield_5_year))) / 5, 2) AS forward_5y5y_pct
FROM global_markets.treasury_yields
WHERE date >= today() - 760
  AND yield_5_year > 0
  AND yield_10_year > 0
GROUP BY toStartOfMonth(date)
ORDER BY toStartOfMonth(date)
Run this yourself

In Oct 2026 the 5 year averaged 5.01% and the 10 year averaged 5.24%, which puts the implied 5y5y forward at 5.47%. The forward line is mechanically a stretched version of the gap between the two spot yields: when the 5 year and the 10 year sit close together, the forward sits close to both. It is also the interesting part of the curve, covering a stretch that begins five years out, well past any readable policy cycle. Whatever sits in it mixes a very long dated expectation with a premium, and the curve alone cannot separate the two.

Why the term premium is an estimate, not a price

The expectations half of the split is not observable either. Modelers estimate it with a term structure model fitted to the whole curve across decades of history. The best known is the ACM decomposition, after Adrian, Crump and Moench, published and updated by the Federal Reserve Bank of New York. The Kim and Wright estimate from the Federal Reserve Board is the other one most desks keep on hand. Both report a 10 year term premium. They do not report the same number.

That follows from the arithmetic. The premium is a residual, so any error in the expectations piece lands in it with the opposite sign. A model that reads expected short rates a little low prints a premium a little high, every day, and the data cannot tell the two apart.

The panel below shows how far two careful measures of the same forward looking quantity can sit apart. It takes 10 year inflation expectations, an input any decomposition needs, and puts a market implied reading next to a model based one.

QueryTen year inflation expectations: market implied against model based
monthmonth_labelmarket_10y_pctmodel_10y_pctmodel_gap_pct
2024-10-01Oct 20242.292.120.17
2024-11-01Nov 20242.322.330.01
2024-12-01Dec 20242.32.320.02
2025-01-01Jan 20252.42.440.04
2025-02-01Feb 20252.422.470.05
2025-03-01Mar 20252.332.30.03
2025-04-01Apr 20252.242.350.11
2025-05-01May 20252.312.310
2025-06-01Jun 20252.32.350.05
2025-07-01Jul 20252.382.340.04
2025-08-01Aug 20252.382.280.1
2025-09-01Sep 20252.372.30.07
2025-10-01Oct 20252.312.30.01
2025-11-01Nov 20252.272.310.04
2025-12-01Dec 20252.242.350.11
2026-01-01Jan 20262.312.330.02
2026-02-01Feb 20262.32.370.07
2026-05-01May 20262.442.480.04
The exact SQL behind every number
SELECT
    toString(toStartOfMonth(date))                AS month,
    formatDateTime(toStartOfMonth(date), '%b %Y') AS month_label,
    round(avg(toFloat64(market_10_year)), 2)      AS market_10y_pct,
    round(avg(toFloat64(model_10_year)), 2)       AS model_10y_pct,
    round(abs(avg(toFloat64(market_10_year)) - avg(toFloat64(model_10_year))), 2) AS model_gap_pct
FROM global_markets.inflation_expectations
WHERE date >= today() - 760
  AND market_10_year > 0
  AND model_10_year > 0
GROUP BY toStartOfMonth(date)
ORDER BY toStartOfMonth(date)
Run this yourself

In May 2026 the market implied measure averaged 2.44% and the model based measure averaged 2.48%, a difference of 0.04 percentage points. Neither one is a quote. A term premium estimate inherits that kind of spread, which is why a claim that the term premium rose last quarter needs the name of a model attached to it.

What is left after inflation

Part of a long yield is a view on prices. A breakeven rate is the inflation rate at which a nominal note and an inflation protected note of the same maturity pay the same. Take a market implied 10 year inflation measure out of the 10 year nominal yield and what remains is an implied real yield, the piece a decomposition works on.

QueryThe 10 year yield split into implied inflation and an implied real yield
monthmonth_labelnominal_10y_pctinflation_10y_pctreal_10y_pct
2024-10-01Oct 20244.12.291.81
2024-11-01Nov 20244.362.322.04
2024-12-01Dec 20244.392.32.09
2025-01-01Jan 20254.632.42.23
2025-02-01Feb 20254.452.422.03
2025-03-01Mar 20254.282.331.95
2025-04-01Apr 20254.282.242.04
2025-05-01May 20254.422.312.11
2025-06-01Jun 20254.382.32.08
2025-07-01Jul 20254.392.382.01
2025-08-01Aug 20254.262.381.88
2025-09-01Sep 20254.122.371.75
2025-10-01Oct 20254.062.311.75
2025-11-01Nov 20254.092.271.82
2025-12-01Dec 20254.142.241.9
2026-01-01Jan 20264.212.311.9
2026-02-01Feb 20264.132.31.83
2026-05-01May 20264.482.442.04
The exact SQL behind every number
SELECT
    toString(y.month)                     AS month,
    formatDateTime(y.month, '%b %Y')      AS month_label,
    round(y.nominal, 2)                   AS nominal_10y_pct,
    round(i.expected_inflation, 2)        AS inflation_10y_pct,
    round(y.nominal - i.expected_inflation, 2) AS real_10y_pct
FROM
(
    SELECT
        toStartOfMonth(date)          AS month,
        avg(toFloat64(yield_10_year)) AS nominal
    FROM global_markets.treasury_yields
    WHERE date >= today() - 760 AND yield_10_year > 0
    GROUP BY month
) AS y
INNER JOIN
(
    SELECT
        toStartOfMonth(date)            AS month,
        avg(toFloat64(market_10_year))  AS expected_inflation
    FROM global_markets.inflation_expectations
    WHERE date >= today() - 760 AND market_10_year > 0
    GROUP BY month
) AS i USING (month)
ORDER BY month
Run this yourself

The real line ran 1.81% in Oct 2024 and 2.04% in May 2026, against a nominal 10 year of 4.48% and implied inflation of 2.44% in that later month. Inflation uncertainty, which is the width of the distribution rather than its center, is one of the things charged to the term premium. A holder who is unsure about the average price level in year nine wants paying for that, and the payment appears nowhere else in the arithmetic.

When the long end moves and the front end does not

Hold expected short rates still and the whole move in a long yield has to land in the residual. The 3 month bill is the cleanest market read on where policy sits over the next quarter, and how markets price Fed rate odds covers the instruments that carry that read further out. The panel below puts month over month changes in the 3 month bill next to the 10 year, both in basis points.

QueryMonth over month change in the 3 month bill and the 10 year, in basis points
26 rows (showing 20)
monthmonth_labelfront_end_delta_bpten_year_delta_bp
2024-09-01Sep 2024-36.7-15
2024-10-01Oct 2024-20.437.2
2024-11-01Nov 2024-9.826
2024-12-01Dec 2024-22.93.6
2025-01-01Jan 2025-4.823.8
2025-02-01Feb 2025-1.1-17.8
2025-03-01Mar 20250.4-17.1
2025-04-01Apr 2025-1.3-0.1
2025-05-01May 20253.914.5
2025-06-01Jun 20256-4
2025-07-01Jul 2025-0.90.8
2025-08-01Aug 2025-10.8-12.7
2025-09-01Sep 2025-23.9-14.4
2025-10-01Oct 2025-8.8-5.9
2025-11-01Nov 2025-4.13.2
2025-12-01Dec 2025-25.84.9
2026-01-01Jan 2026-1.47
2026-02-01Feb 20262.2-8.8
2026-03-01Mar 20263.112
2026-04-01Apr 2026-2.37.3
The exact SQL behind every number
SELECT
    toString(mo)                           AS month,
    formatDateTime(mo, '%b %Y')            AS month_label,
    round((bill_3m - prior_bill) * 100, 1) AS front_end_delta_bp,
    round((ten_yr - prior_ten) * 100, 1)   AS ten_year_delta_bp
FROM
(
    SELECT
        mo,
        bill_3m,
        ten_yr,
        lagInFrame(bill_3m) OVER (ORDER BY mo ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_bill,
        lagInFrame(ten_yr)  OVER (ORDER BY mo ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_ten
    FROM
    (
        SELECT
            toStartOfMonth(date)          AS mo,
            avg(toFloat64(yield_3_month)) AS bill_3m,
            avg(toFloat64(yield_10_year)) AS ten_yr
        FROM global_markets.treasury_yields
        WHERE date >= today() - 790 AND yield_10_year > 0
        GROUP BY mo
    )
)
WHERE prior_bill > 0
ORDER BY mo
Run this yourself

In Oct 2026 the bill moved 7.7 basis points month over month while the 10 year moved 25.1. Both series share one basis point scale, which makes the months when one travels and the other sits nearly still easy to pick out across the 26 rows. Those are the months a decomposition charges mostly to the premium. The same arithmetic is why the 2s10s spread can steepen with no change in the expected policy path, and why a curve un-inversion is not automatically a story about the Fed. For the full shape of the curve through the first half of this year, see the 2026 H1 Treasury curve review.

What moves the term premium

Four candidates come up repeatedly, in no particular order.

  • The size and maturity mix of government issuance: more long dated coupon supply means more duration for the market to absorb.
  • Foreign and official demand, including reserve managers and central bank portfolios that hold large blocks of long Treasuries.
  • Inflation uncertainty, as distinct from the expected level of inflation.
  • The appetite for duration risk among leveraged and liability matching holders, which moves with balance sheet capacity.

We are not ranking those. Each one is measurable on its own, the premium is not, and attributions to it stay arguments rather than measurements.

Not the same question as on the run pricing

On the run versus off the run pricing compares two bonds of nearly the same maturity and the small yield difference between them, a liquidity and scarcity spread inside a single point on the curve. The term premium concerns the level of the curve itself, the gap between a long yield and the expected path of short rates. A cheap off the run bond and a high term premium estimate are separate observations, and they can appear together or apart.

FAQ

What is the term premium in simple terms?

It is the extra yield a long bond offers over the average short term rate the market expects during the bond's life. Hold the expected path fixed and the leftover is the premium, the payment for carrying duration instead of rolling bills.

Is the term premium an actual market price?

No. It is a residual from a model fitted to the yield curve. The New York Fed publishes the ACM estimate and the Federal Reserve Board publishes the Kim and Wright estimate, and the two put the 10 year premium at different levels, so a term premium figure travels with the name of its model.

Can the term premium be negative?

Yes. A negative estimate says a long bond yields less than the expected average of future short rates, which is what published estimates showed for long stretches of the past decade. A holder can prefer locked in long duration to rolling bills for reasons other than yield.

Does a rising term premium mean the Fed is about to move?

Not by itself. The premium is defined as the part of a long yield that is not the expected policy path, so a change in it is, by construction, the part policy expectations did not account for. The short end of the curve is where the expectations piece is tracked.

How is the term premium different from the 2s10s spread?

2s10s is a subtraction between two quoted yields, available instantly and identical for everyone. The term premium is an estimate of one component inside a single yield. A steeper 2s10s is consistent with a higher premium estimate and with a changed expected path, and it does not distinguish them.


Every panel here carries the SQL that produced it, so the arithmetic is one click away. To run the same decomposition over a window you pick, ask for it in plain English on the Strasmore terminal.