Retrieves the Treasury term premia of Adrian, Crump and Moench (2013), as the Federal Reserve Bank of New York estimates them daily from 1961 for maturities of 1 to 10 years. A Treasury yield is split into the average short rate investors expect over the bond’s life and the term premium: the extra yield they demand for holding a long bond instead of rolling over short ones. The split tells whether a move in long yields comes from expected monetary policy or from compensation for risk, such as inflation and fiscal uncertainty.

Adrian, T., Crump, R. K., & Moench, E. (2013). Pricing the Term Structure with Linear Regressions. Journal of Financial Economics, 110(1), 110-138. https://doi.org/10.1016/j.jfineco.2013.04.009

Three components are returned per maturity: the “Term Premium”, the “Expected Short Rate” (the risk-neutral yield, the yield if investors were indifferent to risk) and the “Fitted Yield” of the model, which is their sum. The model is fitted to the zero-coupon Treasury curve of Gürkaynak, Sack and Wright (2007), so every value is a continuously compounded zero-coupon rate, as a decimal fraction (0.0067 for 0.67%). No API key is needed. Weekly and monthly periods take the last day of each period, matching the New York Fed’s own month-end series.

The term premium is a model estimate rather than an observed price: it rests on the model’s five pricing factors (principal components of the yield curve), and other models, such as that of Kim and Wright (2005), give different levels with similar movements.

See definition: https://www.newyorkfed.org/research/data_indicators/term-premia-tabs

Also known as: ACM term premium, Treasury term premium, risk-neutral yield, expected short rate, bond risk premium.

Term Premium in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_term_premium as shown below.

from financetoolkit import FixedIncome

fixedincome = FixedIncome(start_date='2026-05-01', end_date='2026-10-31')

term_premium = fixedincome.get_term_premium(period='monthly', maturity_years=[2, 5, 10])

term_premium['Term Premium']

Or, after setting up the Finance Toolkit MCP, ask:

What was the term premium on 2-, 5- and 10-year US Treasuries each month from May to October 2026?

Which returns:

  2Y 5Y 10Y
2026-05 0.0011 0.003 0.0066
2026-06 0.0004 0.0018 0.0051
2026-07 0.0018 0.0043 0.0083
2026-08 0.0015 0.0038 0.0076
2026-09 0.0042 0.0057 0.0089
2026-10 0.0024 0.0037 0.0068

Parameters

get_term_premium accepts the following parameters.

ParameterTypeDescriptionExample
periodstrWhether to return the daily, weekly or monthly data. Defaults to “daily”."weekly"
maturity_yearslist[int] | str | NoneThe maturities in years to keep, from 1 to 10, e.g. [2, 5, 10] (or “2,5,10”). Defaults to None, which keeps every maturity.[1, 5, 10, 30]
roundingint | NoneThe number of decimals to round the results to. Defaults to None.2
growthboolWhether to return the growth data or the actual data. Defaults to False.True
lagintThe number of periods to lag the growth data by. Defaults to 1.4
standardizeboolWhether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.True
Share