Sustainable Growth Rate (SGR)
The Sustainable Growth Rate (SGR) is the maximum rate at which a company can grow its revenue, using internally generated funds only, without having to raise additional equity or increase its financial leverage.
The formula is as follows:
\[\text{Return on Equity} = \text{Net Income} / \text{Total Equity at the beginning of the period}\] \[\text{Retention Ratio} = 1 - \text{Dividend Payout Ratio}\] \[\text{SGR} = \text{Return on Equity} \cdot \text{Retention Ratio}\]The SGR assumes the company keeps its leverage and pays out only through dividends. Companies that return cash mainly through share buybacks have a low payout ratio on paper and a return on equity inflated by a shrinking equity base, so their SGR overstates what they can fund internally.
Also known as: SGR, self-sustainable growth rate.
Sustainable Growth Rate (SGR) in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_sustainable_growth_rate as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["NKE", "LULU", "DECK"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.models.get_sustainable_growth_rate()
Or, after setting up the Finance Toolkit MCP, ask:
What were the sustainable growth rates of Nike, Lululemon and Deckers from 2021 to 2025?
Which returns:
| 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|
| DECK | 0.3129 | 0.3359 | 0.4302 | 0.4584 | 0.4075 |
| LULU | 0.3812 | 0.312 | 0.4923 | 0.4288 | 0.3652 |
| NKE | 0.3297 | 0.2001 | 0.2521 | 0.0637 | 0.0531 |
Parameters
get_sustainable_growth_rate accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
rounding | int | The number of decimals to round the results to. Defaults to None. | 2 |
growth | bool | Whether to calculate the growth of the values. Defaults to False. | True |
lag | int | list[int] | The lag to use for the growth calculation. Defaults to 1. | 4 |
standardize | bool | Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False. | True |
trailing | int | None | The trailing period to use for the calculation. Defaults to None. | 4 |