Skip to content
StockMarketAgent
§ Tool · Valuation calculator

Dividend discount calculator

A two-stage Gordon DDM: value a stock as the present value of its expected dividend stream — five years of explicit growth, then a Gordon terminal. The platform's only purely dividend-anchored lens, with a structural safety clamp that keeps the math from collapsing near the cost of equity.

§ What this is warning you about first

DDM outputs collapse when growth approaches cost of equity. Gordon's TV = D × (1+g) / (Ke − g) has a vertical asymptote at g = Ke — pushing growth toward Ke makes the value explode toward infinity, which is wrong, not a signal. Treat high terminal-growth assumptions as the first thing to audit; this model is the only one in the suite that enforces the gap structurally, not just with a warning.

DDM
Model · ddm
Dividend / share
Primary input
Low / mid / high
Output range · ±15%
sector_specific
Role · dividend names
5 yr
Stage I horizon
§ Start with a preset
Three dividend starting points — adjust anything after.
LensPresent value of the dividend stream — 5 years of clamped explicit growth, then a Gordon terminal, discounted at a single moderate Ke./en/tools/dividend-discount-calculator
01Dividend anchor2 fields
$
The trailing annual dividend per share. Must be > 0 or the model is excluded.
$
Optional — for upside vs the fair-value range.
02Growth assumptions2 fields
%
Your 5-year dividend-growth assumption. The model clamps it into a safe band — see the audit for the rate actually used.
%
Long-run Gordon growth. Default 2.5% (below the DCFs' 3%). Must be < Ke.
03Discount rate1 field
%
Single moderate Ke — typical institutional pricing. The range comes from the ±15% band, not a dual-Ke spread.
Gap structure enforced: Ke must exceed terminal growth, and Stage I growth is capped below the Ke/terminal midpoint.
§ Fair value range · per share

Dividend discount · Mature dividend payerrequired for archetype

reliability 60/100 · Medium
FV low · mid × 0.85
$39.96
-23.1%
FV mid · deterministic
$47.02
-9.6% vs price
FV high · mid × 1.15
$54.07
+4.0%
Price $52.00
methodology_version = valuation-calculators.v1model_id = ddm · role = sector_specific
§ The growth clamp

Initial growth forced into a safe band — so the math can't collapse near Ke

Stated8.0%
→ clamped to →
Used (initialGrowth)5.75%
cap 5.75%
floor 3.50%
stated 8.0%
terminal 2.5%asymptote risk →Ke 10.0%

Your stated 8.0% exceeded the ceiling 5.75% = max(terminal + 1pp, midpoint(Ke, terminal) − 0.5pp), so the model used 5.75% instead. The clamp is the practical enforcement of the lead warning: rather than printing a divergent number, it forces the assumption into a safe band.

§ The two-stage stream

5 years of explicit dividends, then a Gordon terminal at year 5

$2.88D $3.17Y1
$2.77D $3.35Y2
$2.67D $3.55Y3
$2.56D $3.75Y4
$2.46D $3.97Y5
$33.67TV $54.22Term.
Σ Stage I PV (5 yrs)$13.35
PV of terminal value$33.67
Fair value (mid)$47.02
Initial / terminal growth5.75% → 2.5%
§ Terminal-value dominance

How much of fair value the Gordon terminal carries

Terminal value share of fair value71.6%
terminal-heavy — reliability penalised (0.85 → 0.60)

DDM is structurally terminal-heavy — with only a 5-year explicit horizon and slow dividend growth, the terminal piece routinely sits at 60–80% even for healthy payers. That is why the penalty here triggers at 70%, not the 60% used by the EPS DCFs. Penalising at 60% would mark every DDM run as low-reliability; the 70% line flags only the genuinely terminal-dominated cases.

§ Audit fields
dividend_per_share$3.00
initial_growth5.75% (clamped)
terminal_growth2.50%
ke_moderate10.0%
stage_i_years5
terminal_value_pct71.6%
§ Lens positioning
role = sector_specific · single Ke · ±15% band
required = true · archetype = mature_dividend

DDM is required for the Mature dividend payer archetype — the dividend is the primary equity-return mechanism. The fair value here feeds the composite in the published report.

§ Reliability factorsscore 60/100
0.85 → 0.60Terminal value > 70% of fair value · 71.6%terminal_value_high
§ Formula trace

Every step, derived

  1. clampBand = [floor 3.50% = tg+1pp, cap 5.75% = max(tg+1, (Ke+tg)/2−0.5)]
  2. initialGrowth = min(stated 8%, cap 5.75%) = 5.75% ← CLAMPED from 8%
  3. Y1: D = 3.173 · PV = 3.173 / 1.100 = 2.884
  4. Y2: D = 3.355 · PV = 3.355 / 1.210 = 2.773
  5. Y3: D = 3.548 · PV = 3.548 / 1.331 = 2.666
  6. Y4: D = 3.752 · PV = 3.752 / 1.464 = 2.563
  7. Y5: D = 3.968 · PV = 3.968 / 1.611 = 2.464
  8. Σ Stage I PV = 13.348
  9. TV = D5 3.968 × (1+2.5%) / (10% − 2.5%) = 54.223
  10. PV(TV) = 54.223 / (1+10%)^5 = 33.668
  11. fairValue = 13.348 + 33.668 = 47.017 · terminal 71.6% of FV
  12. range = { low 39.96, mid 47.02, high 54.07 } (±15% band)
  13. terminal 71.6% > 70% → reliability 0.85 → 0.6
§ Calculator contract

One stable kernel contract — same as the reports

Reference the model by its stable id ddm, not the display label. The dedicated page, the all-model workbook, and the report pipeline all hit the same endpoint and reconcile to the same fair value.

Slug/en/tools/dividend-discount-calculator
Kernel model idddm · role sector_specific
Valuation lensTwo-stage Gordon DDM · 5-yr clamped Stage I + Gordon terminal
Primary inputDividend / share (D₀) + growth + terminal growth + moderate Ke
Run endpointPOST /api/v1/valuation-calculators/run · model_id: "ddm"
SensitivityPOST /api/v1/valuation-calculators/sensitivity · Ke × terminal-growth grid
Response contractresult.status (computed / excluded) + result.fairValue (low / mid / high) + initial_growth + terminal_value_pct + reliability
§ Notes

This surface is stateless. The same kernel powers the per-stock reports, so the fair value here reconciles exactly with the report's ddm output for the same inputs. For REITs, run this alongside the REIT NAV / AFFO lens — both are required, and divergence between them signals either dividend-quality issues (DDM > NAV/AFFO) or undervalued property (NAV/AFFO > DDM). Cross-check against the discounted earnings EPS sibling and the owner earnings cash floor.

All-model workbook →REIT NAV / AFFORead methodologymethodology_version = valuation-calculators.v1
§ FAQ

Five things worth knowing

Q01Why does the model clamp my growth rate instead of just using what I typed?+
Because the Gordon terminal value TV = D × (1+g) / (Ke − g) has a vertical asymptote at g = Ke — as growth approaches the cost of equity the output explodes toward infinity, which is a math artefact, not real value. Most free DDM calculators happily emit that divergent number and rely on you noticing it is nonsense. This one structurally forces initial growth into a safe band — at least 1pp above terminal, and at most the midpoint of Ke and terminal minus half a point — so the math can never collapse. The initialGrowth field in the audit always shows the rate actually used: if it does not match what you typed, the clamp activated and you were running an aggressive assumption.
Q02Why is the terminal value 70%+ of fair value — is that a problem?+
It is normal for DDM, not a bug. The explicit horizon is only 5 years and dividends grow slowly, so the Gordon terminal piece routinely carries 60–80% of the value even for genuinely-valuable dividend stocks. That is exactly why the reliability penalty here triggers at 70%, not at 60% like the EPS DCFs — penalising at 60% would mark every DDM run as low-reliability and tell you nothing. The 70% threshold flags only the most terminal-dominated cases, where even small changes to Ke or terminal growth swing the answer dramatically.
Q03Why a 5-year Stage I when the EPS DCFs use 10 years?+
Dividends are a sticky, slow-moving cash flow — mature payers raise dividends in single digits per year and the path is highly predictable. A longer explicit horizon adds no real information; it just gives the terminal value an extra discount while inflating its share of the total relative to Stage I, making the model even more terminal-dominated. That is the opposite of what you want from a model whose lead warning is about terminal-value dominance. Five years is the calibrated horizon for a dividend stream.
Q04When is this model required, and when is it just informational?+
It is strictly required for two archetypes: mature dividend payers (utilities, telecoms, mature consumer staples — where the dividend is the primary equity-return mechanism) and REITs (which distribute ~90% of taxable income as dividends by structure, so a dividend-anchored lens is uniquely apt). For every other archetype the calculator will still compute a value if the company happens to pay a dividend, but the synthesis layer does not expect DDM in the composite — read it as informational only. Notably, DDM is required for REITs precisely where the earnings-based DCFs are excluded.
Q05What happens if the company pays no dividend?+
The model is excluded with reason no_dividend_or_ke. There is no way to anchor a dividend discount model on zero dividends — the same exclusion fires if Ke is missing or if Ke is not greater than terminal growth, because all three break the Gordon math in the same way and the user-facing fix is the same. For a non-payer, use the Discounted Earnings, FCFF DCF, or EV/Revenue lens instead. There is no FAILED state on this model: once applicability passes, the clamp guarantees the math returns a sane number.