Time Value of Money
valuation_time_valueDiscount or compound cash flows, value annuities and perpetuities, and compute DCF terminal values using Gordon growth or exit multiples.
Instructions
Time value of money: discount or compound a single sum, value level and growing annuities and perpetuities, and compute a terminal value by Gordon growth or exit multiple. Method selects the formula. Use to move cash flows through time or to value a terminal value in a DCF; combine with a rate from valuation_discount_rate. For uneven multi-period cash flows use valuation_income_methods; for rate construction use valuation_discount_rate. Per method: present_value needs future_value + discount_rate + periods; future_value needs present_value + discount_rate + periods; annuity_pv needs payment + discount_rate + periods; perpetuity_pv needs payment + discount_rate; growing_annuity_pv needs payment + discount_rate + growth_rate + periods; terminal_value_gordon_growth needs final_year_cashflow + perpetual_growth_rate + discount_rate; terminal_value_exit_multiple needs final_year_cashflow + exit_multiple. Rates and growth are decimals (0.10 = 10%); for terminal_value_gordon_growth the discount rate must exceed the perpetual growth rate. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: present_value = PV = FV / (1 + r)^n.; future_value = FV = PV * (1 + r)^n.; annuity_pv = PV = PMT * [1 - (1 + r)^-n] / r.; perpetuity_pv = PV = PMT / r.; growing_annuity_pv = PV of a constant-growth annuity.; terminal_value_gordon_growth = TV = FCF * (1 + g) / (r - g).; terminal_value_exit_multiple = TV = FCF * exit multiple. | |
| payment | No | Recurring payment per period, in currency units. | |
| periods | No | Number of periods n (non-negative). | |
| growth_rate | No | Per-period growth rate as a decimal (0.03 = 3%). | |
| future_value | No | Future cash amount to discount, in currency units. | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| exit_multiple | No | Exit multiple applied to the final-year cash flow (e.g. 8.0 for 8x). | |
| present_value | No | Present amount to compound, in currency units. | |
| final_year_cashflow | No | Final-year projected cash flow (FCF), in currency units. | |
| perpetual_growth_rate | No | Perpetual growth rate g as a decimal; must be below discount_rate for Gordon growth. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Error message when the call fails. | |
| steps | No | Intermediate calculation steps for traceability (one string per step). | |
| value | Yes | Computed valuation, rate, or metric. | |
| method | No | Formula / method name that produced the result. | |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). | |
| formula_reference | No | Mathematical formula or reference applied. |