Savings Goal Calculator
Work backward from a target: enter the goal, the number of years, and any starting balance, and see the level monthly contribution the future-value formula requires to reach it at the assumed return.
Monthly amount to reach your goal
Example: $50,000 in 5 years from $5,000 at 4% → $662.08/mo.
Working backward from the goal
Most of the calculators on this site run forward: a starting balance, a monthly contribution, and an assumed return go in, and a future balance comes out. The Savings Goal Calculator runs the same future-value formula in reverse. The goal, the starting balance, the assumed return, and the number of years go in, and the unknown is the level monthly contribution — the PMT term — that makes the formula land exactly on the goal at the end of the horizon. In the reference example, reaching $50,000 in 5 years from $5,000 at an assumed 4% return, the answer is $662.08 a month. That case is locked into the engine's automated tests, and every figure on this page is computed at build time by the same engine that runs the form above, so the explanation cannot drift from the tool.
The contribution the tool solves for is account-agnostic: compounding does not care which account a dollar sits in. How the same monthly amount is treated differently once it lands in a traditional 401(k), a Roth, or a taxable brokerage account — the tax timing that the growth arithmetic ignores — is the subject of the companion guide, 401(k), Roth IRA, and Taxable Accounts: How They Fit Together; the rest of the site's explainers are collected under Guides.
How the engine inverts the formula
The forward formula documented on the methodology page is
FV = P·(1+r)ⁿ + PMT·[((1+r)ⁿ − 1) / r], where r is the annual rate divided
by 12 and n is the number of months. The first term is the starting balance compounded
on its own; the second is the future value of a level stream of end-of-month contributions. The
savings-goal solve sets FV equal to the goal and works through four steps:
- Fix the growth factor. With 4% a year the monthly rate is
4% ÷ 12, and 5 years is 60 months, so
(1+r)ⁿcomes to about 1.2210. Every dollar in place at the start ends the horizon as roughly 1.22 dollars. - Grow the starting balance on its own. $5,000 × 1.2210 = about $6,104.98. The engine reports this as the growth-alone projection.
- Measure the gap. $50,000 − $6,104.98 = $43,895.02. This is the part of the goal the contributions have to cover.
- Divide the gap by the annuity factor. The bracketed term
((1+r)ⁿ − 1) / ris the value, at the end of the horizon, of one dollar deposited at the end of every month — about 66.30 here. Because the second term of the formula is simply PMT times that factor, the contribution is the gap divided by it: $43,895.02 ÷ 66.30 = $662.08.
There is no iteration, trial and error, or approximation in this solve. The future-value formula is linear in PMT, so isolating it is one division, and the answer is exact to floating-point precision. That distinguishes this tool from the 401(k) and drawdown models described on the methodology page, which have to be simulated month by month because salary growth, match caps, and inflation-escalated withdrawals do not reduce to a closed form. The one special case is a 0% return: the annuity factor's division by r is undefined there, so the engine switches to plain arithmetic and divides the gap by the number of months instead.
Checking the answer with the forward formula
A reverse solve can be verified by running it forward. Feeding the solved $662.08 back into the future-value formula — the same calculation the Investment Calculator performs — with the same $5,000 balance, 4% return, and 5 years produces a balance of $50,000.00, which is the goal. The forward run also exposes a split that the result panel above does not show: of that ending balance, $44,724.61 is money deposited ($5,000 at the start plus 60 contributions of $662.08) and $5,275.39 is growth — about 11% of the total. Over a 5-year horizon at this rate, in other words, the deposits do most of the work and compounding does the rest; the longer example below shows the proportions shifting.
The already-on-track case
Step three can come out at or below zero. If the starting balance, compounded on its own, already reaches the goal by the end of the horizon, there is no gap to fill, and the engine returns a required contribution of zero together with the growth-alone figure. The result panel then reads "No monthly contribution needed" and reports what the balance is projected to reach by itself. The same $5,000 at 4% for 5 years grows to about $6,104.98; aimed at a $6,000 goal instead of $50,000, that projection clears the target on its own, and the engine returns a required contribution of $0.00.
Three details of that comparison matter for reading it correctly. It is made once, at the end of the horizon — the model does not report when along the way the balance first crosses the goal. It is a comparison of a projection against a fixed target: the projection assumes the constant return arrives every month, and the tool has no measure of how likely that is. And the engine reports only that the gap is closed, not the size of the surplus; the growth-alone figure minus the goal is that surplus, and the tool leaves it uncomputed. A negative required contribution — an amount that could be withdrawn each month and still hit the goal — is never reported; the answer floors at zero.
Horizon: the same goal over 3, 5, and 10 years
The number of years enters the solve in three places at once. More months means the gap is spread over more deposits; a larger growth factor means each of those deposits compounds for longer, raising the annuity factor; and the starting balance compounds for longer too, shrinking the gap before the deposits are even counted. Holding the $50,000 goal, the $5,000 balance, and the 4% assumption fixed:
| Years | Growth alone | Gap to fill | Required per month |
|---|---|---|---|
| 3 | $5,636.36 | $44,363.64 | $1,161.91 |
| 5 | $6,104.98 | $43,895.02 | $662.08 |
| 10 | $7,454.16 | $42,545.84 | $288.94 |
Doubling the horizon from 5 to 10 years cuts the required contribution from $662.08 to $288.94, a drop of about 56% — more than the halving that spreading an unchanged gap over twice as many months would produce on its own, because the other two effects push in the same direction. Compressing the horizon to 3 years raises the figure to $1,161.91. The table is the honest way to read a horizon that is not yet fixed: the required amount is not a single number but a curve, and the tool reports one point on it.
Rate: the same goal at 0%, 4%, and 8%
The return is the input the model treats with the least skepticism. It is applied as a constant, every month, with no variation and no possibility of falling short, which makes it the assumption most worth testing. Holding the goal, the balance, and the 5-year horizon fixed:
| Assumed return | Growth alone | Gap to fill | Required per month |
|---|---|---|---|
| 0% | $5,000.00 | $45,000.00 | $750.00 |
| 4% | $6,104.98 | $43,895.02 | $662.08 |
| 8% | $7,449.23 | $42,550.77 | $579.10 |
At 0% the solve is pure division: $50,000 − $5,000 = $45,000.00, spread over 60 months, is $750.00. Moving the assumption to 4% lowers the figure to $662.08, and doubling it again to 8% lowers it to $579.10. Two things stand out. The spread between the 0% row and the 8% row — about $170.90 a month — is the entire contribution of the return assumption to this 5-year answer, and it is smaller than the $872.98 spread between the 3-year and 10-year rows at a fixed 4%. For these particular ranges the horizon moves the answer more than the rate does — but a swing from 3 to 10 years and a swing from 0% to 8% are not comparable perturbations, so that ordering is a fact about this pair of tables, not a property of the solve; other ranges could reverse it. And the 0% row is a ceiling: no non-negative return assumption produces a larger required contribution for these inputs, so the difference between that row and any other is exactly how much of the plan is being asked of the return.
A longer goal: $250,000 in 20 years
The proportions change over a long horizon. Consider $20,000 growing toward $250,000 over 20 years at an assumed 6% return. The growth factor is now about 3.310, so the starting balance alone is projected to reach $66,204.09 — roughly 26% of the goal before any contribution is counted. The gap is $183,795.91, the annuity factor is about 462.0, and the required contribution comes to $397.79 a month. Run forward, the 240 deposits total $95,469.94; together with the starting balance, money deposited comes to $115,469.94, and growth supplies the remaining $134,530.06 — about 54% of the ending balance, against about 11% in the 5-year reference case. Same formula, same conventions; the horizon alone moves the share of the goal that compounding is asked to supply.
A short goal with no starting balance
At the other extreme, a goal of $12,000 in 2 years from a starting balance of zero. With a 0% assumption the growth-alone projection is $0.00, the gap is the whole goal, and the solve is $12,000 ÷ 24 = $500.00 a month. Swapping in a 4% assumption changes that to $481.10 — a difference of $18.90 a month, because over 24 months the annuity factor barely exceeds the month count. Short horizons are where the return assumption matters least to the arithmetic; the model still applies it with the same certainty either way.
Reading the output, and common misreadings
The figure is a level deposit. The solve assumes the same amount arrives at the end of every month for the whole horizon — it does not step up over time, skip months, or front-load. A deposit pattern that differs from that will not track the projection even at the assumed return. It is stated in nominal dollars. The goal is treated as a fixed number of future dollars; the model has no view on what those dollars buy at the horizon. As the methodology page notes, entering a real (after-inflation) return instead of a nominal one reads the answer in today's dollars — the tool does not do that conversion itself. The return is constant and certain. No variability, no sequence of good and bad years, no scenario in which the assumed rate does not arrive; the sensitivity tables above are the only place that uncertainty appears. Months are whole. The engine rounds years × 12 to the nearest whole month, so a fractional year is accepted but resolved to whole months. The result updates as the fields change. There is no separate calculate step, and a blank starting balance is read as zero.
The engine also declines inputs it cannot solve: a goal of zero, a negative balance or return, a return beyond the range the engine supports, or a horizon of zero or beyond its supported span each produce a message in the result panel instead of a number. Nothing on this page models taxes, fees, contribution limits, or the account the money sits in; those are the omissions the methodology page lists for every tool on the site.
Where this fits with the other tools
This calculator answers one question — the monthly amount — and hands the others off. The Investment Calculator is the same formula run forward: enter a contribution and it reports the ending balance with the deposits-and-growth split shown above, which is the natural way to test a rounded-off version of this tool's answer. The Compound Interest Calculator isolates the growth-alone term for a lump sum at any compounding frequency. For a retirement target specifically, the Retirement Calculator runs the same accumulation formula to a nest egg and then carries that balance into a month-by-month drawdown simulation, while the Retirement Planner projects three account buckets with the same formula to a combined pre-tax figure and reports a first-year withdrawal figure from it under the 4% convention — it does not simulate a drawdown. The companion guide 401(k), Roth IRA, and Taxable Accounts: How They Fit Together explains why a monthly amount split across those account types grows identically but is not worth the same after withdrawal. The full set of explainers is under Guides.
Frequently asked questions
How is the monthly amount calculated?
The calculator grows the starting balance at the assumed return for the full horizon, subtracts that projection from the goal to find the gap, and divides the gap by the future value of one dollar deposited at the end of every month — the annuity factor ((1+r)ⁿ − 1) / r, where r is the annual rate divided by 12 and n is the number of months. It is the future-value formula solved for the contribution term in a single division, with no iteration. At a 0% return the gap is divided by the number of months instead.
What does the annual return input represent?
An assumption chosen by the person using the tool, applied as a constant monthly rate for the whole horizon. The model does not supply a rate, does not vary it, and does not consider the chance that it fails to arrive. Because it is the least certain input, the page above solves the same goal at several rates so the weight of the assumption is visible: in the 5-year reference example, the spread between a 0% and an 8% assumption is about $170.90 a month.
What does "already on track" mean?
That the starting balance, compounded on its own at the assumed return, is projected to reach or exceed the goal by the end of the horizon, so the gap the contributions would have to fill is zero or negative. The engine returns a required contribution of zero and reports the growth-alone projection; it does not report the surplus or a negative contribution. In the example above, $5,000 at 4% for 5 years is projected to reach about $6,104.98, which is past a $6,000 goal.
Does it account for inflation?
No. The goal is treated as a fixed number of future (nominal) dollars, and the answer is a nominal monthly amount. The site-wide convention on the methodology page applies: entering a real, after-inflation return in place of a nominal one produces an answer that can be read in today’s dollars. The calculator does not perform that adjustment itself and does not assume any inflation rate.
Why does extending the timeline reduce the monthly amount by more than proportionally?
Because the number of years acts on the solve three times. More months divide the gap into more deposits; a larger growth factor gives every deposit longer to compound, which raises the annuity factor; and the starting balance compounds for longer, which shrinks the gap itself. In the reference example, going from 5 to 10 years lowers the required contribution from $662.08 to $288.94 — a 56% drop, more than the halving that spreading an unchanged gap over twice as many months would explain on its own.
Are contributions made at the start or the end of each month?
At the end. The reverse solve uses the ordinary-annuity factor, matching the end-of-month convention documented on the methodology page. This tool does not offer a begin-of-month option; a deposit made at the start of each month would earn one extra month of growth and so would need to be slightly smaller to reach the same goal. The Investment Calculator, which runs the formula forward, offers that timing switch.
Can the calculator solve for the number of years instead?
No. The engine solves the future-value equation for exactly one unknown, the monthly contribution; the goal, starting balance, rate, and years are all inputs. Solving for the horizon at a fixed contribution is a different rearrangement that this tool does not implement. Because the result updates as the fields change, entering a series of values in the years field and reading the contribution at each one traces the same curve as the horizon table above.
What happens at a 0% return?
The annuity factor divides by the monthly rate, which is undefined at zero, so the engine switches to plain arithmetic: the gap between the goal and the starting balance is divided by the number of months. In the reference example that is ($50,000 − $5,000) ÷ 60 = $750.00 a month. For any non-negative return this 0% figure is the largest contribution the tool can report for those inputs, because growth can only shrink the gap.
Not financial advice: a general educational estimate that assumes a constant return and a fixed-dollar goal (no inflation adjustment). Values are processed locally in your browser and never transmitted. See the methodology page.