Annuity & Future Value Calculator

Light
Inputs
$
$
0.5%20%
1 yr50 yrs
0%10%
Future Value
$—
Enter values to calculate
Total value of your investment at end of period, including contributions and compound interest.
Total Contributions
$—
Interest Earned
$—
Inflation-Adj. FV
$—
In today's dollars
Effective Annual Rate
—%
Compounded equivalent
Principal vs Interest Breakdown
Growth Over Time
Year-by-Year Breakdown
Year Opening Contributions Interest Closing Balance
How it works: Combines a one-time lump sum with regular annuity payments using standard FV formulas. Interest compounds at the selected frequency. Annuity Due multiplies by (1 + r) since payments earn one extra period.
Target & Parameters
$
$
0.5%20%
1 yr50 yrs
0%10%
Required Payment Per Period
$—
Enter target to calculate
The exact regular contribution needed each period to reach your target.
Total You'll Pay In
$—
Interest Earned
$—
Real Value of Target
$—
Inflation-adjusted
Lump Sum Equivalent
$—
PV of all payments
Principal vs Interest Breakdown
Rate Sensitivity — Required Payment vs Interest Rate
Reverse solver: Given a target future value, lump sum, rate, and time, this calculates the exact regular contribution needed. The chart shows how a higher return dramatically reduces required savings.
Year-by-Year Breakdown
Year Opening Contributions Interest Closing Balance
Inputs
$
0.5%15%
1 yr40 yrs
0%10%
Periodic Payout
$—
Enter values to calculate
The amount you'll receive each payment period, given your fund and selected rate.
Total Paid Out
$—
Total Interest
$—
Real Payout Value
$—
Inflation-adjusted first payment
Payout / Principal %
—%
Principal vs Interest Breakdown
Fund Balance Over Time
Amortization Schedule
Period Opening Interest Payout Closing Balance
Scenario Comparison — Future Value

Adjust each scenario independently to compare how different rates, terms, or contributions affect your outcome.

Scenario A
$
$
$—
Scenario B
$
$
$—
Head-to-Head Growth Chart
Tip: Small differences in return rate compound dramatically over time. Try setting both scenarios to the same inputs but different time horizons to see the value of starting early.
Export this comparison — download a full PDF report with chart and scenario details

Frequently Asked Questions

Everything you need to know about annuities and how this calculator works.

`; // TRUE download via Blob — no print dialog const blob = new Blob([html], { type: 'text/html' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = title.toLowerCase().replace(/[^a-z0-9]+/g, '-') + '.html'; a.click(); URL.revokeObjectURL(url); } // ── FAQ ── const faqs = [ { q: 'What is an annuity?', a: 'An annuity is a series of equal payments made at regular intervals over time. Ordinary annuities pay at the end of each period, while annuity due payments occur at the start. Common examples include retirement income streams, mortgage payments, and insurance payouts.' }, { q: 'What is future value (FV)?', a: 'Future value is what a current investment will be worth at a specific date in the future, assuming a certain interest rate. It accounts for compound interest — where your interest also earns interest over time, accelerating growth significantly over longer periods.' }, { q: 'What does the Reverse Solve mode do?', a: 'Reverse Solve works backward: you tell it the future value you want to reach, and it calculates the exact regular payment you need to make each period to get there. Ideal for retirement planning — e.g. "I need $1M in 25 years, how much must I save monthly?"' }, { q: 'What is the Payout / PMT calculator for?', a: 'The Payout mode calculates how much you can withdraw each period from a lump sum while earning interest, over a set number of years. Use "Deplete Fund" to see how long your savings last, or "Find FV→PMT" to solve for required contributions.' }, { q: 'How does compound interest work?', a: 'Compound interest means you earn returns not just on your principal but also on previously accumulated interest. $10,000 at 7% annually becomes roughly $19,672 after 10 years — nearly double — because each year\'s interest gets added to the base before next year\'s calculation.' }, { q: 'What is Annuity Due vs Ordinary Annuity?', a: 'In an Ordinary Annuity, payments occur at the end of each period. In an Annuity Due, they occur at the start — meaning each payment earns one extra period of interest. The calculator multiplies the result by (1 + r) to account for this.' }, { q: 'Why does the inflation adjustment matter?', a: 'Inflation erodes purchasing power over time. A future value of $500,000 in 20 years may sound large, but at 2.5% inflation it\'s worth only about $303,000 in today\'s dollars. The "Inflation-Adj. FV" result shows your real purchasing power.' }, { q: 'What is Effective Annual Rate (EAR)?', a: 'EAR converts a stated annual rate into its true annual equivalent when interest compounds more than once per year. For example, 5% compounded monthly has an EAR of 5.116%. This lets you compare rates fairly across products with different compounding frequencies.' }, { q: 'Is the data I enter stored anywhere?', a: 'No. All calculations happen entirely in your browser using JavaScript. No data is sent to any server, and nothing is stored or logged. You can use this tool completely privately.' }, { q: 'Can I export my results?', a: 'Yes — every tab has a "Download PDF" button generating a formatted HTML report (page 1: key results + charts; page 2: full data table). Tables also have a "Download CSV" button for spreadsheet use.' }, ]; function buildFAQ() { const grid = document.getElementById('faq-grid'); faqs.forEach(f => { const item = document.createElement('div'); item.className = 'faq-item'; item.innerHTML = `

${f.a}

`; item.querySelector('.faq-q').addEventListener('click', () => { const o = item.classList.toggle('open'); item.querySelector('.faq-q').setAttribute('aria-expanded', String(o)); }); grid.appendChild(item); }); } function tryInit() { if (typeof Chart !== 'undefined') { calcAll(); buildFAQ(); } else setTimeout(tryInit, 80); } window.addEventListener('DOMContentLoaded', tryInit);