How CompoundCalc Calculates Compound Interest
Every calculator on CompoundCalc is an educational estimate. This page explains the formulas, assumptions and limits so users can judge the result instead of treating it as financial advice.
Core formula
This formula works for a single starting amount. Pages with monthly contributions add each deposit into the projection and compound it for the remaining time.
Contribution assumptions
- Monthly contributions: most tools assume a fixed monthly deposit.
- Timing: unless stated otherwise, deposits are treated as end-of-period contributions.
- Return: the annual return is constant in the calculator, even though real markets are not.
- Currency: results use the entered number format and are not tied to a specific tax system.
What the calculators do not include
No calculator here automatically applies income tax, capital gains tax, account fees or platform charges.
A constant return smooths the path. Real investment returns move up and down.
Use a lower real return assumption or the inflation-related guides for more conservative planning.
The site does not recommend investments or tell you what to buy.
The formulas, written out
Nothing on this site uses a proprietary model. Every result comes from standard formulas, applied with stated conventions. They are reproduced here so you can check any figure by hand.
| Quantity | Formula | Notes |
|---|---|---|
| Future value of a lump sum | FV = P × (1 + r/n)n×t | P principal, r annual rate as a decimal, n compounding periods per year, t years. |
| Future value of regular deposits | FV = PMT × [((1 + r/n)n×t − 1) / (r/n)] | Ordinary annuity — deposits at the end of each period. |
| Deposits at the start of each period | Multiply the above by (1 + r/n) | Each deposit earns exactly one extra period. |
| Present value | PV = FV ÷ (1 + r/n)n×t | The lump-sum formula rearranged. |
| Effective annual rate | EAR = (1 + r/n)n − 1 | Also called APY on deposit products. |
| Doubling time | t = ln(2) / (n × ln(1 + r/n)) | The Rule of 72 approximates this. |
| Real rate of return | (1 + nominal) ÷ (1 + inflation) − 1 | Not nominal minus inflation. |
Known limitations
- Returns are constant. Real markets are not. With deposits or withdrawals, the order of returns affects the final balance; a constant-return projection does not model that risk.
- Contributions are level. Increasing deposits with income is common and not modelled by default.
- No withdrawals mid-plan. The accumulation tools assume nothing is taken out.
- Currency-agnostic. Dollar signs are labels. The mathematics is identical in any currency.
- Country rules are not encoded. Where a page mentions ISAs or pensions, contribution limits and tax treatment are described in general terms and change over time.
If you find a figure that does not reconcile with these formulas, that is worth reporting — contact@compoundcalc.com.
Questions about our methodology
What formula does CompoundCalc use?
FV = P × (1 + r/n)n×t for lump sums, plus the ordinary annuity formula for recurring contributions. The general engine uses a closed-form annuity with the cash-flow convention described below.
Why do your results differ from other calculators?
Differences can come from compounding frequency, deposit timing, rate conventions, fees, rounding or an error. Our general engine groups the monthly budget into equal deposits per compounding period. That is an approximation of calendar-month deposits when frequency is not monthly.
Do the calculators include tax, fees or inflation?
Some tools offer explicit adjustments. The main calculator shows a separate inflation-adjusted balance, and the investment fee calculator models charges. Taxes are not modelled. For purchasing power, see retirement in today's dollars.
Is my data sent anywhere when I use a calculator?
No. Every calculation runs in your browser. Nothing you type is transmitted, stored or logged — there is no server-side calculation endpoint to send it to. See the privacy policy.
Exact conventions and independent verification
Updated September 13, 2026. The general growth engine uses a nominal annual rate r and n compounding periods per year. It converts a monthly budget C into a deposit D = 12C/n at each selected period boundary. At n = 12 this models monthly deposits. At n = 1 it groups the budget into one annual deposit; at n = 365 it spreads it into daily deposits. These are different cash-flow schedules, not exact simulations of monthly bank deposits under every interest-crediting policy.
For k complete periods, i = r/n and beginning deposits multiplier b = 1+i (otherwise b = 1): FV = P(1+i)k + Db[(1+i)k − 1]/i. At zero rate the result is P + Dk. A final fractional period f grows this balance by (1+i)f, with no new deposit in that incomplete period. Total contributed is P + Dk. Thus fractional timelines no longer create phantom interest by counting deposits that were never made.
Doubling time for a lump sum is ln(2) / [n × ln(1+r/n)]. New deposits are excluded. Goal tools require whole-month timelines and use the annuity formula solved for the payment. A zero-time goal above the starting balance is reported as impossible, not converted into a one-month plan.
The investment fee model deliberately uses an effective annual gross return, converted to a monthly factor, and separately deducts the entered annual fee divided by twelve. Its page states the order of growth, fees and deposits.
Release tests compare JavaScript results with a separate Python implementation that sums individual cash flows. Tests include zero inputs, near-zero and negative rates, annual/monthly/daily compounding, fractional periods, beginning/end deposits, fee charges and invalid inputs. This verifies the model’s arithmetic, not future investment returns or every possible financial product.
Keep CompoundCalc in your preferred sources
If these explanations help, you can choose CompoundCalc as a preferred source in Google Search.
Savings goals and dated contribution returns
The savings goal calculator uses monthly nominal interest, a fixed monthly deposit and the selected beginning/end timing. Optional inflation raises the target by (1 + inflation)years; it does not increase the deposit. Time mode stops at the first complete crossing month, within 100 years.
The contribution-aware XIRR calculator uses calendar-day differences divided by 365 and solves for one annual effective rate. It supports positive deposits before one positive terminal value, giving a unique solution. Withdrawals and distributions are excluded. Independent tests reconstruct ending values from known annual rates, including losses, leap days and irregular deposits; output tables describe an equivalent constant-growth path, not market history.