Calculate Present Value of Annuity

Present Value of Annuity Calculator

End of Period (Ordinary Annuity) Beginning of Period (Annuity Due)

Resulting Present Value


Understanding the Present Value of an Annuity

The Present Value of an Annuity (PVA) is a financial calculation that determines the current worth of a series of future equal payments, given a specific discount rate. This concept is fundamental in finance for evaluating investments, pension payouts, and insurance settlements.

The PVA Formula

The calculation depends on whether payments are made at the end of each period (Ordinary) or at the beginning (Annuity Due).

Ordinary Annuity Formula:
PVA = PMT × [(1 - (1 + r)⁻ⁿ) / r]

Where:

  • PMT: The amount of each periodic payment.
  • r: The discount rate per period (expressed as a decimal).
  • n: The total number of periods.

Ordinary Annuity vs. Annuity Due

An Ordinary Annuity involves payments made at the end of the interval (e.g., corporate bonds). An Annuity Due involves payments made at the start of the interval (e.g., rent payments or lease agreements). Because money received sooner is more valuable, an Annuity Due will always have a higher present value than an equivalent Ordinary Annuity.

Calculation Example

Suppose you are scheduled to receive $1,000 every year for the next 5 years. If the current discount rate is 6% per year:

  • Payment (PMT): $1,000
  • Rate (r): 0.06
  • Periods (n): 5
  • Calculation: $1,000 × [(1 – (1.06)⁻⁵) / 0.06] = $4,212.36

In this scenario, the total sum of $5,000 received over five years is worth $4,212.36 in today's dollars.

function calculatePVA() { var pmt = parseFloat(document.getElementById('periodicPayment').value); var rate = parseFloat(document.getElementById('discountRate').value) / 100; var n = parseFloat(document.getElementById('numPeriods').value); var type = document.getElementById('annuityType').value; var resultDisplay = document.getElementById('pvaResult'); var output = document.getElementById('pvaOutput'); var explanation = document.getElementById('pvaExplanation'); if (isNaN(pmt) || isNaN(rate) || isNaN(n) || n <= 0) { alert('Please enter valid positive numbers for all fields.'); return; } var pva; if (rate === 0) { pva = pmt * n; } else { pva = pmt * ((1 – Math.pow(1 + rate, -n)) / rate); if (type === 'due') { pva = pva * (1 + rate); } } output.innerHTML = '$' + pva.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); var timingText = (type === 'due') ? 'at the beginning' : 'at the end'; explanation.innerHTML = 'The present value of receiving ' + n + ' payments of $' + pmt.toLocaleString() + ' ' + timingText + ' of each period, discounted at ' + (rate * 100).toFixed(2) + '% per period.'; resultDisplay.style.display = 'block'; }

Leave a Comment