Formula
Each year: B = B × (1 + r) + your contribution + matchMatch = match % × min(your contribution, match limit % × salary)Income ≈ final balance × withdrawal rate How it works
This calculator projects a 401(k), 403(b) or similar workplace plan year by year. Each year you contribute a percentage of your salary, your employer adds its match, the whole balance earns the assumed return, and your salary rises by the raise you enter. Contributions are credited at the end of each year, which keeps the estimate slightly conservative.
Employee contributions are capped at the 2026 IRS elective-deferral limit of $24,500, plus a $8,000 catch-up from age 50. Workers aged 60–63 may be allowed a larger catch-up, and the limits rise with inflation in most years, so high savers may be able to put in more than shown.
A typical match is "50% of what you contribute, up to 6% of salary", which is worth 3% of pay. Contributing at least enough to get the full match is one of the highest-return moves available, because the match is an instant return on your money.
The retirement income line uses a withdrawal rate. The well-known "4% rule" comes from research suggesting that withdrawing 4% of a balanced portfolio in the first year, then adjusting for inflation, has historically lasted about 30 years. It is a rule of thumb, not a guarantee.
Frequently asked questions
How much do I need to retire?
A common estimate is 25 times the yearly spending your portfolio must cover (the inverse of the 4% rule). Subtract expected Social Security and pensions from your spending first.
Is the result in today's dollars?
No — it is in future dollars. The note under the result shows roughly what it would be worth in today's money at 2.5% inflation. To plan in today's dollars, you can instead enter a real return (return minus inflation) and set the raise to your expected real raise.
What return should I use?
Many planners use 5–7% for a stock-heavy portfolio and lower for one with more bonds. Small changes compound over decades, so try a few values to see the range.