Corporate Bond Yields
Retrieves the yields of corporate bonds of a variety of countries, by rating where the source splits them, monthly and with long histories: the input for a credit spread factor outside the United States, where corporate bond indices by rating (iBoxx, ICE BofA) are licensed data.
- Germany: the average yield on debt securities outstanding of non-MFI corporations the Bundesbank publishes monthly from 1957 (monthly averages), all ratings together (“All ratings”). No API key is needed.
- Australia: the yields of non-financial corporate bonds rated A and BBB with a target tenor of 3, 5, 7 and 10 years the Reserve Bank of Australia publishes from 2005 (end of month), e.g. “BBB 10Y”. No API key is needed.
- United States: Moody’s seasoned Aaa and Baa corporate bond yields, from 1919. This requires a FRED API key (the fred_api_key of the FixedIncome class); see get_moodys_corporate_bond_yields for daily data.
With spread=True each yield is returned as a spread over government bonds: for Germany over the yield on public debt securities outstanding (from 1956), for Australia over the Australian government bond yield of the same tenor (end of month, interpolated between 5 and 10 years for 7 years, from 2013), and for the United States over the 10-year Treasury yield.
The yields are decimal fractions (0.0446 for 4.46%), with one column per country and rating.
See definition: https://www.bundesbank.de/en/statistics/money-and-capital-markets
Also known as: corporate credit spread, corporate bond yield by rating, euro credit spread, BBB spread.
Corporate Bond Yields in Python
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_corporate_bond_yields as shown below.
from financetoolkit import FixedIncome
fixedincome = FixedIncome(start_date='2026-03-01', end_date='2026-08-31')
corporate_bond_yields = fixedincome.get_corporate_bond_yields(
countries=['Germany', 'Australia'], spread=True
)
corporate_bond_yields.loc[
:, (slice(None), ['All ratings', 'A 5Y', 'BBB 5Y', 'BBB 10Y'])
].droplevel(0, axis=1)
Which returns:
| All ratings | A 5Y | BBB 5Y | BBB 10Y | |
|---|---|---|---|---|
| 2026-03 | 0.01 | 0.0097 | 0.0123 | 0.0114 |
| 2026-04 | 0.0091 | 0.0085 | 0.011 | 0.01 |
| 2026-05 | 0.0086 | 0.0089 | 0.011 | 0.0097 |
| 2026-06 | 0.0084 | 0.0086 | 0.0103 | 0.0088 |
| 2026-07 | 0.0085 | 0.0085 | 0.0102 | 0.0086 |
| 2026-08 | 0.0085 | 0.0083 | 0.0099 | 0.0084 |
Parameters
The function accepts the following parameters:
- countries (list[str] | str | None, optional): The countries to retrieve, from “Germany”, “Australia” and “United States”. Defaults to None, which retrieves every country available, the United States only with a FRED API key.
- spread (bool, optional): Whether to return the spread over government bonds instead of the yield. Defaults to False.
- 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.