HQM Corporate Bond Yield Curve
Retrieves the High Quality Market (HQM) corporate bond yield curve of the U.S. Department of the Treasury: the yields of high quality (AAA, AA and A rated) US corporate bonds by maturity, from 6 months to 100 years, monthly from 1984. The Treasury builds it for discounting long-dated liabilities, which is why it is the prescribed discount curve for US corporate pension obligations, and its long history makes it a natural basis for modelling how corporate yields and spreads move.
Two curves are available. Spot rates (rate=”spot”) are zero-coupon yields, the rate to discount a single payment at that maturity, for 17 maturities. Par yields (rate=”par”) are the coupons a bond priced at par would pay, for 2, 5, 10 and 30 years, comparable to the Treasury par yield curve (see get_treasury_rates). Every value is the average over the month.
The data comes from FRED, which republishes the Treasury’s curve, so a free FRED API key is required. The rates are returned as decimal fractions (0.0558 for 5.58%).
See definition: https://home.treasury.gov/data/treasury-coupon-issues-and-corporate-bond-yield-curves
Also known as: HQM curve, corporate bond yield curve, pension discount curve, AA corporate curve.
HQM Corporate Bond Yield Curve in Python
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_hqm_corporate_bond_yield_curve as shown below.
from financetoolkit import FixedIncome
fixedincome = FixedIncome(start_date='2026-03-01', end_date='2026-08-31')
fixedincome.get_hqm_corporate_bond_yield_curve()[['1Y', '5Y', '10Y', '30Y', '100Y']]
Which returns:
| 1Y | 5Y | 10Y | 30Y | 100Y | |
|---|---|---|---|---|---|
| 2026-03 | 0.0406 | 0.0447 | 0.0514 | 0.0614 | 0.0653 |
| 2026-04 | 0.0408 | 0.0449 | 0.0513 | 0.0612 | 0.065 |
| 2026-05 | 0.0414 | 0.0467 | 0.0528 | 0.0622 | 0.0656 |
| 2026-06 | 0.0422 | 0.0472 | 0.0527 | 0.0611 | 0.0641 |
| 2026-07 | 0.0433 | 0.0488 | 0.0545 | 0.0643 | 0.0677 |
| 2026-08 | 0.0431 | 0.0497 | 0.0558 | 0.0665 | 0.0702 |
Parameters
The function accepts the following parameters:
- rate (str, optional): “spot” for the spot rates or “par” for the par yields. Defaults to “spot”.
- rounding (int | None, optional): The number of decimals to round the results to. Defaults to None.
- growth (bool, optional): Whether to return the growth data or the actual data. Defaults to False.
- lag (int, optional): The number of periods to lag the growth data by. Defaults to 1.
- standardize (bool, optional): Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.