Concept and validation lab

Compound interest you can reproduce, not just admire

Choose the correct rate convention, place each cash flow on the timeline, calculate without intermediate rounding, and compare the answer with fixed control cases.

Four formula branches Three numeric test vectors Exact timing comparison
Formula bench

Match the equation to the cash-flow pattern

All rates below are decimals inside the formula: 5% is 0.05. Keep full precision until the final displayed currency result.

A — one lump sum, nominal rate

A = P(1 + j/m)mt

P is principal, j is the nominal annual rate, m is compounding periods per year, and t is years.

Use this only when the quoted rate is nominal and its compounding frequency is known.

B — one lump sum, effective annual rate

A = P(1 + y)t

y is an annual-effective rate such as APY. For monthly steps, derive i = (1 + y)1/12 − 1.

Twelve applications of i reproduce y exactly, apart from floating-point precision.

C — recurring end-of-period deposits

FV = P(1 + i)N + C[(1 + i)N − 1] / i

C is the deposit at each period's end, i is the compatible periodic rate, and N is the number of periods.

This is an ordinary annuity added to the compounded starting balance.

D — recurring beginning-of-period deposits

FV = P(1 + i)N + C[(1 + i)N − 1](1 + i) / i

Only the contribution term gains the extra (1 + i). The original principal follows the same timeline in both cases.

If i = 0, both recurring formulas use the explicit branch FV = P + CN.

Rate decoder

APY and a nominal annual rate are not interchangeable

For U.S. deposit accounts, the Consumer Financial Protection Bureau defines annual percentage yield as a rate reflecting total interest based on the interest rate and compounding frequency over a 365-day period. The same regulation defines the account's interest rate as an annual rate that does not reflect compounding.

How to derive a compatible periodic rate
Given input Periodic rate for k periods per year Annual-effective check
APY y i = (1 + y)1/k − 1 (1 + i)k − 1 = y
Nominal annual rate j, compounded k times i = j / k (1 + j/k)k − 1

At a 5% APY, the monthly equivalent is approximately 0.407412%, because (1.00407412)12 − 1 equals 5%. Dividing 5% by 12 gives approximately 0.416667% per month and compounds to about 5.1162%—a different annual yield.

The CFPB's Regulation DD Appendix A provides the official U.S. APY calculation for account disclosures and states assumptions including a 365-day term for typical accounts without a stated maturity and no added deposits or withdrawals during that disclosure calculation. A personal projection with recurring deposits is a separate cash-flow model built from the disclosed APY.

Validation bench

Three test vectors with expected outputs

Each case gives enough information to reproduce the result in a spreadsheet, programming language, or scientific calculator.

Vector 1 — nominal rate and monthly compounding

Control for the lump-sum nominal-rate formula
Input Value Reproduction step Expected result
Principal P $1,000 1,000 × (1 + 0.12/12)12×1 Unrounded: 1,126.82503013197
Displayed: $1,126.83
Nominal annual rate j12%
Periods per year m12
Years t1

Cross-check: $126.82503013197 of modeled interest divided by $1,000 gives an effective annual yield of approximately 12.682503%.

Vector 2 — APY must reproduce the annual yield

Control for APY-to-monthly conversion
Step Calculation Expected value
InputsP = $10,000; APY y = 5%; N = 12 months; no deposits
Monthly equivalent(1.05)1/12 − 10.00407412378364835
Correct future value10,000 × (1 + i)12$10,500.00
Deliberately wrong control10,000 × (1 + 0.05/12)12$10,511.62

The $11.62 gap exposes the common error of treating an annual-effective APY as though it were a nominal annual rate.

Vector 3 — recurring deposits and timing

Control for ordinary-annuity versus annuity-due timing
Input or output End-of-month deposits Beginning-of-month deposits
InputsP = $5,000; C = $200 monthly; APY = 5%; N = 120 months
Total deposited$5,000 + ($200 × 120) = $29,000
Expected unrounded future value39,017.105394180539,142.8843195360
Expected displayed future value$39,017.11$39,142.88
Timing differenceBaseline$125.78 more

The starting $5,000 is unchanged between cases. Only each $200 contribution shifts one period earlier, so only the contribution annuity factor receives the extra (1 + i).

Zero-rate branch check

With P = $500, C = $50, N = 12, and i = 0, the expected value is $500 + ($50 × 12) = $1,100. A production implementation should use this explicit branch rather than divide by zero in the annuity formula.

Timeline inspection

Contribution timing is a statement about when money enters

“Monthly contribution” does not say whether the cash arrives before or after that month's growth. An end-of-period model grows the existing balance and then deposits C. A beginning-of-period model deposits C first and then grows the larger balance. Neither is universally correct; the transaction schedule decides.

First two periods with a starting balance P
Moment End-of-period deposit Beginning-of-period deposit
StartPP + C
After period 1P(1 + i) + C(P + C)(1 + i)
After period 2[P(1 + i) + C](1 + i) + C[(P + C)(1 + i) + C](1 + i)

A real account may credit interest daily, compound on another schedule, receive deposits on varying dates, or use an average daily balance. The formulas here are periodic abstractions. Reconcile an account statement using the institution's disclosed balance method before treating a one-cent or one-period difference as an error.

Interpretation limits

Correct arithmetic can still produce an unsuitable forecast

Rates can change

A variable savings APY is not promised for the full horizon. A constant rate isolates the math but does not reproduce future account-rate changes.

Investment returns are uneven

A smooth effective return is a scenario, not a market path. Losses, sequence, portfolio changes, and behavior can make the result materially different.

Future dollars are not today's buying power

The Bureau of Labor Statistics notes that as prices increase, the purchasing power of a dollar declines. A nominal future balance should be compared with the future cost of the goal or converted to a stated real-dollar basis.

Cash flows rarely stay perfect

Missed, increased, reduced, or withdrawn contributions alter both principal and the later growth that principal could have earned.

Use the model that matches the job

Move from formula to a decision-specific tool

For a deposit account and a cash target, use the savings goal calculator, which treats the entered rate as APY and lets contribution timing change. For market-growth scenarios, use the investment calculator, where fees, inflation, return ranges, and contribution growth stay visible.