Altman Z-Score
Calculates the Altman Z-Score, a financial metric used to predict the likelihood of a company going bankrupt. The Altman Z-Score is calculated using several financial ratios, including working capital to total assets, retained earnings to total assets, earnings before interest and taxes (EBIT) to total assets, market value of equity to book value of total liabilities, and sales to total assets.
The formula is as follows:
\[\text{Working Capital to Total Assets} = \text{Working Capital} / \text{Total Assets}\] \[\text{Retained Earnings to Total Assets} = \text{Retained Earnings} / \text{Total Assets}\] \[\text{EBIT to Total Assets} = \text{EBIT} / \text{Total Assets}\] \[\text{Market Value to Total Liabilities} = \text{Market Value of Equity} / \text{Total Liabilities}\] \[\text{Sales to Total Assets} = \text{Sales} / \text{Total Assets}\] \[\text{Altman Z-Score} = 1.2 \cdot \text{Working Capital to Total Assets} + 1.4 \cdot \text{Retained Earnings to Total Assets} + 3.3 \cdot \text{EBIT to Total Assets} + 0.6 \cdot \text{Market Value to Total Liabilities} + 1.0 \cdot \text{Sales to Total Assets}\]The Altman Z-Score can be interpreted as follows:
- A Z-Score of less than 1.81 indicates a high likelihood of bankruptcy.
- A Z-Score between 1.81 and 2.99 indicates a gray area.
- A Z-Score of greater than 2.99 indicates a low likelihood of bankruptcy.
Also known as: Altman Z-score, bankruptcy prediction, financial distress score.
No programming experience? With the Finance Toolkit MCP server, AI assistants such as Claude and ChatGPT can calculate the Altman Z-Score for you. Just ask in plain English.
Calculate the Altman Z-Score in Python
The Altman Z-Score is available in the Models module of the open-source Finance Toolkit. Install it with:
pip install financetoolkit -U
Then call get_altman_z_score as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(["AAPL", "TSLA"], api_key="FINANCIAL_MODELING_PREP_KEY")
altman_z_score = toolkit.models.get_altman_z_score()
altman_z_score.loc["AAPL"]
Which returns:
| 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|
| Working Capital to Total Assets | 0.0267 | -0.0527 | -0.0049 | -0.0641 | -0.0492 |
| Retained Earnings to Total Assets | 0.0158 | -0.0087 | -0.0006 | -0.0525 | -0.0397 |
| EBIT to Total Assets | 0.3187 | 0.3459 | 0.3337 | 0.3383 | 0.3695 |
| Market Value to Total Liabilities | 10.4015 | 7.022 | 10.4821 | 12.5264 | 14.2874 |
| Sales to Total Assets | 1.0422 | 1.1179 | 1.0871 | 1.0714 | 1.1584 |
| Altman Z-Score | 8.3888 | 6.3973 | 8.4709 | 9.5533 | 10.8355 |
Parameters
get_altman_z_score accepts the following parameters:
- diluted (bool, optional): Whether to use diluted shares outstanding in the calculation. Defaults to True.
- rounding (int, optional): The number of decimals to round the results to. Defaults to None.
- growth (bool, optional): Whether to calculate the growth of the values. Defaults to False.
- lag (int | list[int], optional): The lag to use for the growth calculation. 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.
- trailing (int | None, optional): The trailing period to use for the calculation. Defaults to None.
Related Models
The Models module page introduces the module, and the sidebar lists all of its functions.