Skip to main content
Glama
by apetta

perpetuity

Calculate present value of infinite payment streams for financial analysis. Use for preferred stock dividends, endowment funds, real estate income, and perpetual bonds.

Instructions

Calculate present value of a perpetuity (infinite series of payments).

A perpetuity is an annuity that continues forever. Common in: - Preferred stock dividends - Endowment funds - Real estate with infinite rental income - UK Consol bonds (historically)

Formulas: Level Ordinary: PV = C / r Level Due: PV = C / r × (1 + r) Growing: PV = C / (r - g), where r > g

Examples:

LEVEL PERPETUITY: £1000 annual payment at 5% payment=1000, rate=0.05 Result: PV = £20,000

GROWING PERPETUITY: £1000 payment growing 3% annually at 8% discount payment=1000, rate=0.08, growth_rate=0.03 Result: PV = £20,000

PERPETUITY DUE: £1000 at period start at 5% payment=1000, rate=0.05, when='begin' Result: PV = £21,000

Input Schema

NameRequiredDescriptionDefault
contextNoOptional annotation to label this calculation (e.g., 'Bond A PV', 'Q2 revenue'). Appears in results for easy identification.
output_modeNoOutput format: full (default), compact, minimal, value, or final. See batch_execute tool for details.full
paymentYesPeriodic payment amount (e.g., 1000)
rateYesDiscount rate per period (e.g., 0.05)
growth_rateNoPayment growth rate (None or 0 for level, e.g., 0.03 for growing)
whenNoPayment timing: 'end' or 'begin'end

Input Schema (JSON Schema)

{ "properties": { "context": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional annotation to label this calculation (e.g., 'Bond A PV', 'Q2 revenue'). Appears in results for easy identification." }, "growth_rate": { "anyOf": [ { "minimum": 0, "type": "number" }, { "type": "null" } ], "default": null, "description": "Payment growth rate (None or 0 for level, e.g., 0.03 for growing)" }, "output_mode": { "default": "full", "description": "Output format: full (default), compact, minimal, value, or final. See batch_execute tool for details.", "enum": [ "full", "compact", "minimal", "value", "final" ], "type": "string" }, "payment": { "description": "Periodic payment amount (e.g., 1000)", "type": "number" }, "rate": { "description": "Discount rate per period (e.g., 0.05)", "exclusiveMinimum": 0, "type": "number" }, "when": { "default": "end", "description": "Payment timing: 'end' or 'begin'", "enum": [ "end", "begin" ], "type": "string" } }, "required": [ "payment", "rate" ], "type": "object" }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/apetta/vibe-math-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server