Synthetic Credit Rating
Calculate a synthetic credit rating and the cost of debt that comes with it, from the interest coverage ratio (EBIT divided by interest expense), following Aswath Damodaran. Most companies have no traded bonds or rating of their own; the coverage ratio is the measure that explains ratings best, so it is mapped to the rating that companies with a similar ratio have, and to that rating’s default spread over the risk free rate:
- Interest Coverage Ratio = EBIT / Interest Expense
- Rating and Default Spread from Damodaran’s synthetic rating table
- Pre-tax Cost of Debt = Risk Free Rate + Default Spread
The table, with this year’s default spreads, is read from Damodaran’s website. Large and small companies use different coverage ranges, as smaller companies need a higher coverage for the same rating.
For more information, see the following book and data:
- Damodaran, A. (2012). “Investment Valuation.” Wiley, 3rd edition, chapter 8.
- Damodaran, A. “Ratings, Interest Coverage Ratios and Default Spread.” https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ratings.html
Also known as: implied credit rating, interest coverage rating, cost of debt.
Synthetic Credit Rating in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_synthetic_credit_rating as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["F", "AAPL", "T"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.models.get_synthetic_credit_rating()
Or, after setting up the Finance Toolkit MCP, ask:
What synthetic credit rating, default spread and pre-tax cost of debt did the interest coverage of Ford, Apple and AT&T imply in each year from 2021 to 2025?
Which returns:
| 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|
| (‘AAPL’, ‘Interest Coverage Ratio’) | 41.1905 | 40.7496 | 29.062 | nan | nan |
| (‘AAPL’, ‘Rating’) | Aaa/AAA | Aaa/AAA | Aaa/AAA | Aaa/AAA | Aaa/AAA |
| (‘AAPL’, ‘Default Spread’) | 0.004 | 0.004 | 0.004 | 0.004 | 0.004 |
| (‘AAPL’, ‘Risk Free Rate’) | 0.0151 | 0.0388 | 0.0387 | 0.0457 | 0.0416 |
| (‘AAPL’, ‘Pre-tax Cost of Debt’) | 0.0191 | 0.0428 | 0.0427 | 0.0497 | 0.0456 |
| (‘F’, ‘Interest Coverage Ratio’) | 2.7915 | 5.0905 | 4.1306 | 4.5695 | 2.0191 |
| (‘F’, ‘Rating’) | Baa2/BBB | A2/A | A3/A- | A2/A | Ba2/BB |
| (‘F’, ‘Default Spread’) | 0.0111 | 0.0078 | 0.0089 | 0.0078 | 0.0184 |
| (‘F’, ‘Risk Free Rate’) | 0.0151 | 0.0388 | 0.0387 | 0.0457 | 0.0416 |
| (‘F’, ‘Pre-tax Cost of Debt’) | 0.0262 | 0.0466 | 0.0476 | 0.0535 | 0.06 |
| (‘T’, ‘Interest Coverage Ratio’) | 3.8675 | -0.7472 | 3.7011 | 3.5969 | 3.6743 |
| (‘T’, ‘Rating’) | A3/A- | D2/D | A3/A- | A3/A- | A3/A- |
| (‘T’, ‘Default Spread’) | 0.0089 | 0.19 | 0.0089 | 0.0089 | 0.0089 |
| (‘T’, ‘Risk Free Rate’) | 0.0151 | 0.0388 | 0.0387 | 0.0457 | 0.0416 |
| (‘T’, ‘Pre-tax Cost of Debt’) | 0.024 | 0.2288 | 0.0476 | 0.0546 | 0.0505 |
Parameters
get_synthetic_credit_rating accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
firm_type | str | The table to use: “large” (market capitalization above five billion), “small” (smaller and riskier firms), “financial” (banks and other financial firms) or “auto”, which picks large or small from the market capitalization of every period. Defaults to “auto”. | "auto" |
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the Toolkit’s rounding. | 2 |
show_columns | list[str] | None | The periods to show. Defaults to None, all periods. | None, all periods |