Annuity Calculator
An ordinary annuity is a sequence of equal payments at the end of each period. The calculator returns the future value FV = PMT · ((1 + r)ⁿ − 1) / r, or the present value PV = PMT · (1 − (1 + r)⁻ⁿ) / r, depending on what you select.
Future value and present value
An annuity is a series of equal payments made at regular intervals. A pension paying a fixed monthly amount, a savings plan with a standing order, and the repayment schedule on a loan are all annuities seen from different sides.
This calculator handles the ordinary annuity — payments at the end of each period — and returns either the future value, the total accumulated once the last payment is made, or the present value, the single sum today that is financially equivalent to the whole series.
Future value answers “what will this be worth when I finish paying in?”. Present value answers “what is this stream worth to me now?”. They are the same series discounted or compounded to different points on the timeline, which is why the two formulas are so nearly mirror images.
Present value is the one that decides things: comparing a lump sum against a payment stream only works once both are expressed at the same instant, conventionally today.
How to use this calculator
- Enter the payment per period The amount paid or received each period, not the annual total. The calculator is currency-agnostic: it never converts, so whatever unit you put in is the unit that comes out.
- Enter the rate per period as a percentage This is the single most error-prone field. It wants the rate for one period, not the annual rate, and it wants a percentage rather than a decimal — 0.4167 means 0.4167%, which is 5% a year divided by twelve.
- Enter the number of periods Count periods, not years. Sixty monthly payments is n = 60, not n = 5, and the rate must be the monthly rate to match.
- Choose future or present value The selector switches formulas. Both use the same three inputs, so you can flip between them to see the two ends of the same series.
The formula, and where it comes from
FV = PMT · ((1 + r)ⁿ − 1) / r PV = PMT · (1 − (1 + r)⁻ⁿ) / r
Both are geometric series in disguise. Each payment is compounded forward, or discounted back, by a different number of periods, so the total is a sum of terms in constant ratio (1 + r). The closed form for a geometric sum collapses that series into the expression above.
The rate you type as a percentage is divided by 100 before use, so 6 becomes r = 0.06. When r is effectively zero the closed form would divide by zero, so the code detects that case and falls back to PMT × n — the correct answer, since with no interest the value of a series is simply the sum of its payments.
What each input means
- PMT Payment per period — form field “Payment per period”
- The fixed amount transferred at the end of every period. It must be constant: a series with a rising payment is a growing annuity and needs a different formula. Units: currency, consistent throughout — the tool does not convert.
- r Rate per period — form field “Rate per period (%)”
- The interest rate for one period, entered as a percentage. It must match the payment frequency, so monthly payments need a monthly rate. A rate of zero is accepted and handled as a special case. Units: percent per period.
- n Number of periods — form field “Number of periods n”
- How many payments are made. Non-integer values are accepted arithmetically but rarely mean anything, since a fraction of a payment is not usually a real cash flow. Units: periods.
Worked examples
Every number below is produced by the same calculation engine the tool above runs. Nothing here is typed by hand, so the walkthrough cannot drift from what you get when you enter the same values yourself.
Saving 100 a month for five years
A standing order of 100 per month for sixty months, at a nominal 5% a year. Divided across twelve months that is a rate of about 0.4167% per period.
Inputs Payment per period = 100, Rate per period (%) = 0.4167, Number of periods n = 60, What to compute = future
- Payment PMT = 100.00
- Rate per period r = 0.4167% = 0.004167
- Number of periods n = 60
- Formula FV = PMT · ((1 + r)ⁿ − 1) / r
- Future value FV = 6800.68
Result FV = 6800.68
You pay in 6,000 across the sixty months, and the future value exceeds that by roughly 800. That excess is the interest earned by earlier payments while later ones were still to come — the first payment compounds for 59 periods, the last for none at all.
The result is shown to two decimals — a display convention for money, not a claim of accuracy. The arithmetic is full double precision and rounds only at the end.
The same series valued today
Identical inputs, but asking for present value instead. This is the sum you would need to have now, at the same rate, to be indifferent between it and the sixty payments.
Inputs Payment per period = 100, Rate per period (%) = 0.4167, Number of periods n = 60, What to compute = present
- Payment PMT = 100.00
- Rate per period r = 0.4167% = 0.004167
- Number of periods n = 60
- Formula PV = PMT · (1 − (1 + r)⁻ⁿ) / r
- Present value PV = 5299.02
Result PV = 5299.02
The present value is well below the 6,000 of nominal payments, because money arriving later is worth less than money arriving now. The gap widens with the rate and with the length of the series.
The two results are linked: compounding the present value forward for sixty periods at the same rate reproduces the future value. If your own two figures do not satisfy that relationship, one of the two used a different rate or period count.
Reading the result
What the number does and does not include
This is a pure time-value calculation: no tax, no fees, no inflation adjustment, no allowance for a missed payment. A real savings product returns less than the future value shown, and a real loan costs more.
Two decimal places is formatting, not precision
Money is displayed to two decimals throughout. The certainty of those digits depends entirely on the certainty of your rate: a rate quoted to four figures cannot support a projection accurate to the cent thirty years out.
Ordinary annuity timing
Payments are assumed to fall at the end of each period. If yours fall at the start — rent, insurance premiums and most leases work this way — the series is an annuity-due, and its value is this result multiplied by (1 + r).
When you would use this
Projecting a regular savings plan
Future value with the monthly contribution and expected monthly return estimates a pot at a target date, and is quick enough to try several rates and see how sensitive the outcome is.
Valuing a stream of payments
Present value is the standard way to compare an offer of a lump sum against an offer of instalments — a settlement, a pension option, or a lease. Discounting both to today makes them directly comparable.
Assumptions and limitations
What this calculator assumes
- Payments are equal, regular and made at the end of each period, which is the ordinary-annuity convention.
- The rate is constant for the whole term and compounds once per period, at the same frequency as the payments.
- The rate entered is per period and expressed as a percentage; it is divided by 100 internally.
Where it stops being the right tool
- Only level payments. Growing annuities, indexed payments and irregular cash flows are outside the model.
- No annuity-due mode. Beginning-of-period payments require multiplying the answer by (1 + r) yourself.
Common mistakes
Entering the annual rate with a monthly period count
Why it happens. The annual rate is the number quoted in every advertisement, so it is the one at hand. Pairing 5 with n = 60 monthly payments applies 5% per month and inflates the future value enormously.
How to avoid it. Divide the nominal annual rate by the number of periods per year before entering it. For 5% a year paid monthly, enter 5/12 ≈ 0.4167.
Typing the rate as a decimal
Why it happens. Financial formulas are usually written with r as a decimal, so 0.05 looks correct. This field expects a percentage, so 0.05 is read as 0.05%, a hundredfold understatement.
How to avoid it. Enter 5 for five percent. Check the rate line in the output, which shows both the percentage you typed and the decimal actually used.
Counting years instead of periods
Why it happens. “Five years” is how the problem is stated, so 5 gets entered even when payments are monthly and the rate has already been converted to a monthly figure.
How to avoid it. Multiply years by the number of payments per year. Monthly payments over five years is n = 60, and the mismatch is easy to spot because the result comes out far too small.
Frequently asked questions
What is the difference between future value and present value?
Future value is the total accumulated at the end of the series, once every payment has been made and compounded. Present value is the single sum today that is financially equivalent to that stream. They describe the same payments valued at opposite ends of the timeline.
Which rate should I enter?
The rate for one period, as a percentage. If payments are monthly and the nominal annual rate is 5%, enter 5/12 ≈ 0.4167 rather than 5. The rate and the period count must always describe the same frequency.
Does this handle an annuity-due?
Not directly. The calculator assumes payments at the end of each period. For payments at the start, such as rent or most leases, compute the ordinary value here and multiply by (1 + r).
What happens if I enter a rate of zero?
The closed-form expressions divide by r, so a zero rate is detected and handled separately: both present and future value become PMT × n. That is the correct answer, since with no interest the series is worth exactly the sum of its payments.