Inspect the Arithmetic — Investment Return Required to Reach a Goal

Version 1.0
Last verified: June 2026

Transparent arithmetic is the operating system of this calculator.

This document publishes the formulae, computational structure, and assumptions used to generate the outputs displayed on the calculator page.

No opinions. No hidden assumptions. Just arithmetic.

Purpose

This calculator solves for the annual investment return required to reach a stated portfolio target in today's dollars (real purchasing power). Inputs: starting balance, target balance (real), recurring contributions (real, inflation-indexed in nominal terms), time horizon, and assumed inflation. Outputs: required nominal and real annual returns, nominal equivalent of the target, breakdown, and accumulation schedule at the solved return.

It is an educational tool only. It does not model taxes, fees, contribution limits, or account rules.

Shared engine

Forward simulation and the return solver live in /assets/js/investment-growth.engine.js as InvestmentGrowthEngine.simulateInvestment() and InvestmentGrowthEngine.solveRequiredNominalReturn(). The Inflation-Adjusted Investment Calculator uses the same forward simulation.

Definitions

Core equations

1. Real return

rreal = (1 + rnom) / (1 + π) − 1

2. Exact terminal horizon

The investment ends at the exact entered horizon Y. Contribution frequency chooses contribution dates only; it does not redefine Y via round(m × Y).

FVstart = S × (1 + rreal)Y
NominalTarget = T × (1 + π)Y

3. Contribution dates

End of period: t = Δ, 2Δ, … while t ≤ Y.
Beginning of period: t = 0, Δ, 2Δ, … while t < Y (includes the start of a partial final contribution period; excludes t = Y).

A contribution at time tk compounds for the remaining horizon:

FVk = C × (1 + rreal)Y − tk

With inflation indexing (default), C is constant in today’s dollars. Without indexing, the real contribution at t is C / (1 + π)t.

4. Solve for rnom

Find rnom (which may be negative) such that RealFinal ≈ T (within $0.01 tolerance) by binary search. If the target is already met or exceeded at 0% nominal, the search continues below 0% rather than clamping to zero. If RealFinal < T even at rnom = 1000%, the calculator reports 1000% and shows a shortfall warning. If RealFinal still exceeds T near −100% nominal (e.g. large contributions), the floor rate is reported with an unreachable-floor flag.

Historical context warning

When required rreal,annual > 7%, the UI shows a contextual note: S&P 500 annualized total return (with dividends reinvested) over calendar years 1975–2024 was approximately 12.1% nominal and 8.2% after inflation. This is historical context only — not a forecast or recommendation. A high nominal return with modest real return does not trigger the warning.

Implementation

If any discrepancy is identified between this documentation and the live calculator, the JavaScript engine is the source of truth.