{"slug":"what-is-the-term-premium","qid":"curve_ladder","label":"The Treasury curve now and a year ago, by maturity","post_title":"What Is the Term Premium in Bond Yields?","post_url":"/blog/what-is-the-term-premium#q-curve_ladder","columns":["maturity","yield_recent_pct","yield_year_ago_pct"],"rows":[{"maturity":"3M","yield_recent_pct":4.14,"yield_year_ago_pct":4.07},{"maturity":"2Y","yield_recent_pct":4.72,"yield_year_ago_pct":3.57},{"maturity":"5Y","yield_recent_pct":4.87,"yield_year_ago_pct":3.66},{"maturity":"10Y","yield_recent_pct":5.05,"yield_year_ago_pct":4.12},{"maturity":"20Y","yield_recent_pct":null,"yield_year_ago_pct":null},{"maturity":"30Y","yield_recent_pct":5.4,"yield_year_ago_pct":4.74}],"shape":"table","sql":"SELECT\n    leg.1 AS maturity,\n    leg.2 AS yield_recent_pct,\n    leg.3 AS yield_year_ago_pct\nFROM\n(\n    SELECT\n        round(avgIf(toFloat64(yield_3_month), is_recent), 2) AS m3_now,\n        round(avgIf(toFloat64(yield_3_month), is_prior), 2)  AS m3_then,\n        round(avgIf(toFloat64(yield_2_year), is_recent), 2)  AS y2_now,\n        round(avgIf(toFloat64(yield_2_year), is_prior), 2)   AS y2_then,\n        round(avgIf(toFloat64(yield_5_year), is_recent), 2)  AS y5_now,\n        round(avgIf(toFloat64(yield_5_year), is_prior), 2)   AS y5_then,\n        round(avgIf(toFloat64(yield_10_year), is_recent), 2) AS y10_now,\n        round(avgIf(toFloat64(yield_10_year), is_prior), 2)  AS y10_then,\n        round(avgIf(toFloat64(yield_20_year), is_recent), 2) AS y20_now,\n        round(avgIf(toFloat64(yield_20_year), is_prior), 2)  AS y20_then,\n        round(avgIf(toFloat64(yield_30_year), is_recent), 2) AS y30_now,\n        round(avgIf(toFloat64(yield_30_year), is_prior), 2)  AS y30_then\n    FROM\n    (\n        SELECT\n            yield_3_month,\n            yield_2_year,\n            yield_5_year,\n            yield_10_year,\n            yield_20_year,\n            yield_30_year,\n            date >= today() - 30                         AS is_recent,\n            date BETWEEN today() - 400 AND today() - 370 AS is_prior\n        FROM global_markets.treasury_yields\n        WHERE (date >= today() - 30 OR date BETWEEN today() - 400 AND today() - 370)\n          AND yield_10_year > 0\n    )\n    HAVING countIf(is_recent) > 0 AND countIf(is_prior) > 0\n)\nARRAY JOIN\n[\n    ('3M',  m3_now,  m3_then),\n    ('2Y',  y2_now,  y2_then),\n    ('5Y',  y5_now,  y5_then),\n    ('10Y', y10_now, y10_then),\n    ('20Y', y20_now, y20_then),\n    ('30Y', y30_now, y30_then)\n] AS leg","computed_at":"2026-10-05T15:00:35.456583+00:00","elapsed":0.052033852}