The Internal Growth Rate (IGR) is the maximum rate at which a company can grow its revenue using only its retained earnings, without raising any external financing (neither debt nor equity).

The formula is as follows:

\[\text{Return on Assets} = \text{Net Income} / \text{Total Assets at the end of the period}\] \[\text{Retention Ratio} = 1 - \text{Dividend Payout Ratio}\] \[\text{IGR} = (\text{Return on Assets} \cdot \text{Retention Ratio}) / (1 - (\text{Return on Assets} \cdot \text{Retention Ratio}))\]

Also known as: IGR.

Internal Growth Rate (IGR) in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_internal_growth_rate as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(
    ["ADBE", "INTU", "ADSK"],
    api_key="FINANCIAL_MODELING_PREP_KEY",
    start_date="2021-01-01",
    end_date="2025-12-31",
)

toolkit.models.get_internal_growth_rate()

Or, after setting up the Finance Toolkit MCP, ask:

How fast could Adobe, Intuit and Autodesk have grown without outside financing from 2021 to 2025, measured by the internal growth rate?

Which returns:

  2021 2022 2023 2024 2025
ADBE 0.2151 0.2122 0.2229 0.2254 0.3188
ADSK 0.0613 0.0955 0.1006 0.1144 0.0991
INTU 0.1004 0.0489 0.0569 0.0639 0.0782

Parameters

get_internal_growth_rate accepts the following parameters.

ParameterTypeDescriptionExample
roundingintThe number of decimals to round the results to. Defaults to None.2
growthboolWhether to calculate the growth of the values. Defaults to False.True
lagint | list[int]The lag to use for the growth calculation. Defaults to 1.4
standardizeboolWhether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.True
trailingint | NoneThe trailing period to use for the calculation. Defaults to None.4
Share