Gordon Growth Model
Install and import#
npm install fintech-algorithmsimport { gordonGrowthModel } from "fintech-algorithms/fundamental-analysis-and-valuation/intrinsic-valuation/gordon-growth-model";Signature#
gordonGrowthModel(data)Capitalises a single next-period dividend as a growing perpetuity, dividing it by the spread between the cost of equity and the perpetual growth rate, and exposes that spread and its reciprocal alongside the resulting value per share.
Parameters#
| Name | Type | Notes |
|---|---|---|
data | { dividend_next: number; cost_of_equity: number; perpetual_growth: number } | dividend_next is the dividend one period ahead, not the dividend just paid. cost_of_equity is the discount rate and perpetual_growth the constant growth rate applied forever. Other keys in the record are not read. |
Returns#
{ state: string; method: string; dividend_timing: string; discount_growth_spread: number; capitalization_multiple: number; intrinsic_value_per_share: number }
discount_growth_spread is cost_of_equity less perpetual_growth, capitalization_multiple its reciprocal, and intrinsic_value_per_share is dividend_next divided by that spread. dividend_timing records which dividend the formula assumes.
Errors#
- When
datais absent, an array, or not an object — throws Error - When
dividend_nextis not a finite number, or is negative — throws Error - When
cost_of_equityis not strictly between 0 and 1 — throws Error - When
perpetual_growthis at or below -1, or at or abovecost_of_equity— throws Error
Complexity: time O(1),
space O(1).
Worked example#
executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.
Input#
{
"valuation_date": "2026-08-04",
"currency": "USD",
"dividend_next": 3.12,
"cost_of_equity": 0.1,
"perpetual_growth": 0.04
}Call#
gordonGrowthModel(data)Returns#
object with 6 fields: state, method, dividend_timing, discount_growth_spread, capitalization_multiple, intrinsic_value_per_share
{
"state": "valued",
"method": "gordon-growth",
"dividend_timing": "D1-next-period",
"discount_growth_spread": 0.060000000000000005,
"capitalization_multiple": 16.666666666666664,
"intrinsic_value_per_share": 52
}Other exports#
This module also exports
calculate, freeCashFlowDcf, dividendDiscountModel, residualIncomeModel, economicValueAdded. Every module additionally exports run as an alias of its
primary function, and a meta object carrying its catalog id, domain, family,
shape and article URL.
Diagrams#
How it works#
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References#
- Capital Equipment Analysis: The Required Rate of Profit — Myron J. Gordon and Eli Shapiro
- Dividend Discount Models — Aswath Damodaran
- Evidence boundary