You put in the same amount P at the end of every month from your starting age a until your retirement age R, so there are n = 12 × (R − a) deposits. Each month the balance grows by the monthly rate i. The amount needed to reach the goal G is the ordinary-annuity payment:
With the default i = (1 + r)1/12 − 1, twelve months compound to exactly the annual return r, which is how the S&P 500's historical figure below is measured. The cost of waiting is P(a + 1) ÷ P(a) − 1: how much more a month you would need if you started a year later.
In today's dollars swaps r for the real return (1 + r) ÷ (1 + inflation) − 1. The goal and the monthly amount are then in today's money, and the monthly amount is understood to rise with inflation each year, so it stays the same in real terms.
Checking against the Money Guy table. The lesson quotes the Money Guy's figures: about $95 a month from 20, $2,480 a month from 50. Their tool states a return of 10% a year at 20, falling 0.1 point for each later age, compounded monthly. Redoing the arithmetic here:
| Start age | Money Guy | 10% ÷ 12 monthly | (1.10)1/12 monthly |
|---|
Real markets do not pay a steady 10%. The steady rate is a teaching device: it shows the shape of compounding, and the range of actual 1928–2025 stretches in the sidebar shows how far real outcomes have strayed from it.
Method. scripts/build_data.py downloads Damodaran's workbook and computes the annualized (geometric) S&P 500 return, inflation and real return over 1928–2025 into data.js; it stops if its figure disagrees with the workbook's own geometric average. Everything else on the page is the annuity arithmetic above, run on your inputs in the browser.
This page illustrates history and arithmetic. It is not investment advice.
It illustrates the lesson Investing basics: why invest, stocks vs. bonds, risk in the personal-finance guide.