Retrieves the one-year default rates per rating of a credit rating agency, year by year from 1989: the share of the ratings outstanding at the start of each year that defaulted within it. The history of default rates per rating calibrates the default intensity of credit risk models and shows how defaults cluster in recessions.

The data comes from CEREP, the central repository where every credit rating agency registered in the European Union reports its ratings to ESMA, in each agency’s own rating scale (AAA to C for S&P and Fitch, Aaa to C for Moody’s). Only the years between the start and end date are retrieved, one request per year. No API key is needed. CEREP answers slowly (up to half a minute per year), so a long history takes a few minutes the first time; each year is cached afterwards. The years before an agency reported to CEREP read as zero defaults and are left out, so the history starts at the first year with a default.

See definition: https://registers.esma.europa.eu/cerep-publication/

Also known as: default frequency, annual default rate by rating, historical default rates.

Default Rates in Python

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_default_rates as shown below.

from financetoolkit import FixedIncome

fixedincome = FixedIncome(start_date='2018-01-01', end_date='2025-12-31')

default_rates = fixedincome.get_default_rates(agency='S&P')

default_rates[['BBB', 'BB', 'B', 'CCC']]

Which returns:

  BBB BB B CCC
2018 0 0 0.0094 0.2617
2019 0.0016 0 0.0182 0.3534
2020 0 0.0097 0.038 0.4661
2021 0 0 0.0039 0.0895
2022 0 0.0046 0.0115 0.1402
2023 0.0006 0.001 0.0138 0.3116
2024 0 0.0021 0.0188 0.2852
2025 0 0.0011 0.0146 0.252

Parameters

The function accepts the following parameters:

  • agency (str, optional): The rating agency, e.g. “S&P”, “Moody’s”, “Fitch”, “DBRS”, “Scope” or “Kroll”, or the CEREP code of any registered agency. Defaults to “S&P”.
  • rating_type (str, optional): “corporate”, “sovereign”, “structured_finance” or “covered_bonds”. Defaults to “corporate”.
  • region (str | None, optional): The area of the rated entities: “Africa”, “America”, “Asia”, “Europe”, “EU members”, “International” or “Oceania”. Defaults to None, which covers all of them.
  • rounding (int | None, optional): The number of decimals to round the results to. Defaults to None.
Share