ForHosting KIT · Finance & money

Annuity future value calculator

Deposit 200 at the end of every month at 1% a month and after 12 deposits you have 2,536.5. Project a savings plan, size a fund for a known expense or check a brochure's promise. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Payment
200
Rate per period
0.01
Periods
12
You get
Future value
2,536.5

Use it to project a savings plan, size a sinking fund for a known future expense, estimate what a recurring investment contribution grows to, or sanity-check the projection in a brochure — one deterministic call, no spreadsheet, no signup.

What the future value of an annuity actually is

An annuity is a stream of equal payments at regular intervals, and its future value is what that stream is worth at the end, once every payment has earned interest for the time it was invested. Deposit 200 at the end of each month at 1% per month and the first deposit compounds for eleven months, the second for ten, and the last for none at all; the future value is the sum of all those grown payments.

The closed-form formula, future value = payment x (((1 + r)^n - 1) / r), is exactly that sum collapsed into one expression, and it is the same formula used by pension providers, banks and finance textbooks. Because the rate is expressed per period, the calculation works for any cadence: a monthly rate with monthly deposits, an annual rate with annual deposits, or any other consistent pair. What matters is consistency — the rate and the period count must describe the same interval.

Send an annual rate with a monthly deposit count and the projection will be wrong by construction, and no calculator can rescue mismatched units. Keep the two aligned and the result is exact, deterministic and reproducible on any machine, which is why the same computation runs identically in your browser and on our edge.

How to use it well and what it does not do

Typical uses fall into three patterns. Fintech and banking products call it to show savers what a recurring deposit plan grows to, because the projected balance is the number that motivates the habit. Finance teams size sinking funds with it: given a known future obligation, they compute what a fixed periodic set-aside accumulates to and adjust the payment until the target is met.

And product teams embed it behind their own goal calculators so the math is maintained in one place instead of being re-implemented — often incorrectly — in every frontend. And it models a constant rate with no fees, taxes, inflation or contribution changes. When your case fits the plain accumulation model, this is the right tool; when it does not, compute the baseline here and layer the extras on top in your own code.

Project a savings plan

Show what a fixed monthly deposit grows to over a chosen term at an expected rate, before the customer commits to the plan.

Size a sinking fund

Compute what a periodic set-aside accumulates to so a known future expense — equipment, tax, a balloon payment — is covered on schedule.

Estimate recurring investments

Model the end balance of equal periodic contributions to an investment account at an assumed periodic return.

Is the rate a percentage or a decimal?

A decimal per period: 0.01 means 1% per period. Divide an annual percentage by 100 and then by the number of periods per year.

What happens with a 0% rate?

It is supported: the future value is simply the payment multiplied by the number of periods, which is the exact limit of the formula at zero interest.

Does it return the period-by-period growth table?

No. It returns the final accumulated value only; the per-period breakdown is a separate capability.

Is it an annuity due or an ordinary annuity?

An ordinary annuity: payments are assumed at the end of each period. For an annuity due, multiply the result by (1 + rate) on your side.

How do I size a sinking fund for a future expense?

Enter a trial deposit, the rate per period and the number of periods, then adjust the deposit until the future value reaches the amount you will need. Finance teams use exactly this to plan for a known obligation.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/fin/annuity-future-value

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/fin/annuity-future-value \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"payment":200,"rate_per_period":0.01,"periods":12}'
{
  "payment": 200,
  "rate_per_period": 0.01,
  "periods": 12
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.annuity_future_value",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_periods1200
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The annuity future value API answers the accumulation question in personal finance: if you deposit the same amount at the end of every period and it earns a fixed interest rate per period, how much will you have right after the last deposit? It applies the closed-form accumulation formula and returns a single number, the future value, in the same currency unit as your payment.

Inputs, units and edge cases

The payment is the amount deposited at the end of each period — a savings contribution, a sinking-fund installment, a recurring investment — and it must be positive. Two edge cases are handled deliberately. And the returned future value is rounded to two decimals — cents — so the response is byte-for-byte stable between runs and between machines. The endpoint takes three numbers. The rate per period is a decimal, so 1% per month is 0.01, not 1 and not 0.01% — and it must be non-negative; a negative rate is rejected with an invalid_input error and is never charged. The periods field is the number of payments and must be a positive integer up to 1200, which comfortably covers a hundred years of monthly deposits; a negative number of periods is meaningless and is rejected with invalid_input. A zero rate is legal and means pure accumulation with no growth: the future value is exactly the payment multiplied by the number of periods, which is the correct mathematical limit of the formula as the rate approaches zero, so the endpoint returns it directly rather than failing on a division by zero.

How to use it well and what it does not do

It is worth being clear about what the endpoint deliberately leaves out. It returns the future value only; it does not produce the period-by-period growth table with the split between contributions and interest. It assumes an ordinary annuity, meaning deposits land at the end of each period; an annuity due, where deposits come at the start, grows by one extra factor of (1 + r). Those omissions are what keep it fast, cheap at $0.002 per request, and exactly predictable.

What does it cost?

$0.002 per request via the API. It is also free to run in your browser on this page.

What if the number of periods is negative?

The request fails with an invalid_input error and is not charged — a negative number of periods has no meaning in this model.

Read the full KIT documentation →