Present Value
workflow.run_present_valuePresent value of a future lump sum, a level payment stream, or both: what money received later is worth today at a discount rate. annualRate is a fraction (0.05 = 5%) split into periodsPerYear equal periods the nominal way (rate per period = annualRate / periodsPerYear); years x periodsPerYear is the number of periods, which must be whole when a payment is given. Payments are level and arrive at the end of each period, or at the start with paymentTiming "begin" (annuity due). Money received is positive, money paid is negative. A bond priced at its coupon rate comes back at its face value. For a list of uneven cash flows use workflow.run_npv. Edge cases: annualRate from -1 to 100 as a fraction (0.05 is 5%) with the rate per period above -100%; years 0 to 1000; periodsPerYear a whole number 1 to 365 (default 1); paymentTiming end (default) or begin; when a payment is given, years times periodsPerYear must be a whole number. A result too large to represent is an error. Not covered: a rate that changes over time, uneven payments (use workflow.run_npv), growing payments, inflation, taxes and fees, and a discount rate that fits the risk (you choose it). Use when user asks "what is $10,000 in 5 years worth today at 6%?" or "what is a 20-year stream of $500 monthly payments worth today?". Returns: presentValue, pvOfFutureValue, pvOfPayments, discountFactor, ratePerPeriod, periods, totalPayments, effectiveAnnualRate.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"annualRate": "<annualRate>",
"years": "<years>"
},
"name": "workflow.run_present_value"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Length in years, 0 to 1000 (fractions allowed for a lump sum; with payments years x periodsPerYear must be a whole number) | |
| payment | No | Level payment per period. Default 0 | |
| annualRate | Yes | Annual discount rate as a fraction (0.06 = 6%); may be zero or negative, but the rate per period must stay above -100% | |
| futureValue | No | Lump sum received at the end, in any currency. Default 0 | |
| paymentTiming | No | "end" (ordinary annuity, default) or "begin" (annuity due, each payment one period earlier) | |
| periodsPerYear | No | Compounding and payment periods per year, 1 to 365. Default 1 (12 = monthly) |