# QuantOracle Present Value (TVM)

> QuantOracle Present Value (TVM) is a paid API for AI agents from api.quantoracle.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Calculates the present value of an annuity or lump sum using time-value-of-money discounting, given a periodic payment, interest rate, number of periods, and payment timing.

## Facts

- Endpoint: POST https://api.quantoracle.dev/v1/tvm/present-value
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-quantoracle-dev-9f765c0a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_q_21shD4DMyyXqVLhfNmk

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability api-quantoracle-dev-9f765c0a -d '<json body>'
```

Example prompt: What's the present value of an ordinary annuity that pays $1,000 at the end of each period for 10 periods at a 5% discount rate?

## When to prefer this

Choose this endpoint when you need a fast, precise present-value computation for annuities or discounted cash flows and want a breakdown of PV components (annuity vs lump sum) along with the discount factor — especially in automated financial analysis pipelines that need sub-10ms results at low per-call cost.

## Known failure modes

- Invalid rate (negative or non-numeric) returns a 400 error
- Zero or negative periods returns a validation error
- Unsupported payment_timing value (not 'beginning' or 'end') causes a 400
- Missing required fields such as rate or periods returns a 422 unprocessable entity
- Network timeout or service unavailability returns a 5xx error

## How this service works

QuantOracle: tvm/present-value

## Output

Returns a JSON object containing the present_value (total discounted value), pv_of_annuity (contribution from periodic payments), pv_of_lump_sum (contribution from any terminal lump sum), total_payments (undiscounted sum), discount_factor, and the computation latency in milliseconds.

## Example request

```json
{
 "rate": 0.05,
 "payment": 1000,
 "periods": 10
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "rate": {
   "type": "number",
   "title": "Rate",
   "description": "Discount rate per period",
   "exclusiveMinimum": -1
  },
  "payment": {
   "type": "number",
   "title": "Payment",
   "default": 0,
   "description": "Periodic payment amount (annuity)"
  },
  "periods": {
   "type": "integer",
   "title": "Periods",
   "maximum": 1000,
   "minimum": 1,
   "description": "Number of periods"
  },
  "future_value": {
   "type": "number",
   "title": "Future Value",
   "default": 0,
   "description": "Future lump sum to discount"
  },
  "payment_timing": {
   "enum": [
    "end",
    "begin"
   ],
   "type": "string",
   "title": "Payment Timing",
   "default": "end",
   "description": "Payment at end or beginning of period"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-quantoracle-dev-9f765c0a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.quantoracle.dev](https://www.zero.xyz/host/api.quantoracle.dev/llms.txt)
