calculate_perpetuity_value
Calculate the present value of a perpetuity: a constant (or constant-growth) cash flow received forever, discounted at a required rate. Formula: Perpetuity PV = CF / r; Growing perpetuity PV = CF / (r - g). WHEN TO USE: Use to value perpetual streams such as preferred dividends, ground rents, endowment-style income, or the terminal value component of a DCF (Gordon Growth Model). WHEN NOT TO USE: Do NOT use for finite cash-flow streams (use calculate_annuity_present_value or calculate_npv), and do NOT set growth_rate >= rate — the formula is undefined there (it implies an infinite value). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { perpetuity_value: number (currency), inputs }. PARAMETERS: cash_flow (required): Periodic cash flow received forever, e.g. 30000. Must be > 0 for a normal perpetuity. rate (required): Required return / discount rate as a decimal, e.g. 0.08 = 8% (never pass percentage points). Must be strictly greater than growth_rate. growth_rate (optional): OPTIONAL perpetual growth rate of the cash flow as a decimal, e.g. 0.03 = 3% (never pass percentage points). Defaults to 0 (no growth). Must be strictly less than rate.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Required return / discount rate as a decimal, e.g. 0.08 = 8% (never pass percentage points). Must be strictly greater than growth_rate. | |
| cash_flow | Yes | Periodic cash flow received forever, e.g. 30000. Must be > 0 for a normal perpetuity. | |
| growth_rate | No | OPTIONAL perpetual growth rate of the cash flow as a decimal, e.g. 0.03 = 3% (never pass percentage points). Defaults to 0 (no growth). Must be strictly less than rate. |