Gordon Growth Model (GGM)
The Gordon Growth Model, also known as the Dividend Discount Model (DDM) with Constant Growth, is a method used to estimate the intrinsic value of a stock based on its expected future dividends. The model assumes that dividends will grow at a constant rate indefinitely.
The formula is as follows:
\[\text{Intrinsic Value} = (\text{Dividends Per Share} \cdot (1 + \text{Growth Rate})) / (\text{Rate of Return} - \text{Growth Rate})\]The formula essentially discounts the future expected dividends to their present value, taking into account the required rate of return and the growth rate. The numerator represents the expected dividend in the next period. The denominator represents the required rate of return minus the growth rate.
Investors often use the Gordon Growth Model to compare the intrinsic value of a stock with its current market price. If the intrinsic value is higher than the market price, some investors may interpret it as an indication that the stock is undervalued.
It’s important to note that the Gordon Growth Model is based on several assumptions, including the assumption of constant growth in dividends. It is most applicable to mature companies with stable and predictable dividend growth. If a company’s dividend growth is expected to fluctuate or if it does not pay dividends, alternative valuation models may be more appropriate.
The assumption of constant growth of dividends is often unrealistic. In reality, dividends may fluctuate or even be suspended. Therefore, the Gordon Growth Model should be used with caution and in conjunction with other valuation methods.
The Rate of Return must exceed the growth rate; periods where it doesn’t are left out with a warning. Within 2 percentage points of it the value is calculated with a warning, as a tenth of a percentage point on either rate then moves it by about 5%.
Also known as: Gordon Growth Model, DDM, dividend discount model, GGM.
Gordon Growth Model (GGM) in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_gordon_growth_model as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["KO"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.models.get_gordon_growth_model()
Or, after setting up the Finance Toolkit MCP, ask:
What is Coca-Cola worth per share in the Gordon growth model, based on its own dividend growth and cost of equity, from 2021 to 2025 and projected to 2030?
Which returns:
| KO | |
|---|---|
| 2021 | 133.98 |
| 2022 | 68.3625 |
| 2023 | 59.2227 |
| 2024 | 102.938 |
| 2025 | 104.472 |
| 2026 | 107.084 |
| 2027 | 109.761 |
| 2028 | 112.505 |
| 2029 | 115.318 |
| 2030 | 118.201 |
Parameters
get_gordon_growth_model accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
rate_of_return | float, list or dict | The required rate of return, one number, or a list or dict with a rate per ticker. Defaults to None, which uses each company’s Cost of Equity of the period - valued (the last one for the projections): the CAPM with the equity risk premium of its country and a beta of a year of daily returns, as in get_weighted_average_cost_of_capital. | 0.08 |
growth_rate | float, list or dict | The growth rate of the dividends, which holds forever. Defaults to None, which uses the compound annual growth of the company’s Dividends per Share up to the period valued, kept within 0 and the long-run growth rate of 2.5% (2.5% where it has none). | 0.03 |
project_periods | int | The number of years to project the intrinsic value for, beyond the last complete period. Defaults to 5. | 10 |
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the rounding of the Toolkit (4 unless set otherwise). | 2 |