| Metric | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
| Checkpoint | Date | Deposit (period) | Interest (period) | Deposit (cum) | Interest (cum) | Ending ($) | Copy |
|---|---|---|---|---|---|---|---|
| {{ row.checkpointLabel }} | {{ row.checkpointDate }} | {{ formatMoney(row.depositPeriod) }} | {{ formatMoney(row.interestPeriod) }} | {{ formatMoney(row.depositCum) }} | {{ formatMoney(row.interestCum) }} | {{ formatMoney(row.ending) }} |
A savings goal is a future balance you want to reach for a buffer, a purchase, or a longer-term plan. The hard part is usually not understanding the destination. It is understanding how starting balance, recurring deposits, compounding, and time interact on the way there.
This calculator turns that relationship into three practical views. It can estimate how long it may take to reach a target, solve for the monthly contribution needed on a fixed horizon, or project the ending value of a plan you already have in mind. The result is presented as a schedule, a monthly timeline, and chart views that separate principal, contributions, and earned growth.
That makes it useful for ordinary planning rather than only textbook examples. Someone building an emergency fund can compare how much faster the goal moves when deposits rise each year. Someone planning a down-payment target can test whether the current monthly contribution is realistic. Someone with an existing deposit habit can project where the plan may land after a set number of years.
The tool is still a model, not a promise. It assumes a constant nominal return, no taxes, no fees, no missed deposits, and no inflation adjustment. Those simplifications are helpful for scenario planning, but they also mean the result should be read as a planning estimate rather than a guaranteed account outcome.
One more boundary matters in practice: the package is oriented around monthly deposits. Compounding can be monthly, quarterly, semiannual, or annual, but the deposit stream and the optional annual step-up are both modeled from that monthly base.
The first choice is not the interest rate. It is the question you are trying to answer. Use When will I get there? when you already know the target and the monthly deposit. Use Monthly target when the horizon is fixed and you need the contribution that would close the gap. Use Projected value when the plan is already defined and you simply want to see where it may end.
The next important choice is whether the yearly deposit should stay flat or step up over time. A step-up is useful when you expect raises or other planned increases in saving capacity. It can make a large difference, especially on longer horizons, but it also means the plan assumes you really will increase the deposit once every year.
Read the result from the top down. Start with the main answer, then check the annual schedule and the charts. If the headline looks promising but the contribution breakdown shows that most of the ending balance still comes from new deposits rather than growth, the plan is more deposit-driven than return-driven. That is neither good nor bad by itself, but it changes what matters most if you need to adjust.
Two misreads come up often. A higher annual return does not automatically rescue an underfunded plan, especially over short periods. And a longer horizon does not always feel acceptable even if the math works. That is why the schedule and timeline matter as much as the headline result: they show the path, not only the destination.
The safest way to use the tool is as a scenario worksheet. Change one assumption at a time, compare the output, and keep the scenarios separate enough that you can still explain why one plan is more or less realistic than another.
The package models a balance that starts with Current savings, receives a monthly deposit, and posts interest at the chosen crediting cadence. The annual return is converted to a monthly rate internally. Deposits are added before interest for each month, which makes the deposit stream behave like an annuity-due style contribution pattern rather than an end-of-month deposit pattern.
The compounding selector changes how often interest is actually posted. Monthly compounding credits interest every month. Quarterly, semiannual, and annual compounding hold the balance without new interest until the posting month arrives, then apply interest for the elapsed block of months. That is why the monthly timeline can look stepped rather than smooth when you choose a less frequent crediting interval.
The three modes share the same engine but solve different unknowns. The time-to-goal mode simulates month by month until the balance reaches the target or until the search hits a 600-month cap. The projected-value mode uses the same month-by-month schedule builder on a fixed horizon. The required-monthly mode uses a closed-form solution when the annual step-up is zero, then falls back to a bounded binary search when step-ups make the path nonlinear.
The annual step-up is applied once every 12 months to the monthly deposit amount. It does not change the interest rate and it does not create irregular deposits inside the year. This is useful for salary-style growth scenarios, but it also means the plan assumes those increases happen on schedule and at the same percentage every year.
The output views all come from the same generated arrays. Annual Schedule stores year snapshots for deposit and interest totals, Balance Trend plots year-end balances, Deposit Timeline traces the monthly path, Contribution Breakdown shows the current split among starting principal, deposits, and interest, and Goal Composition stacks those components over time. The JSON view and exports are built from those same normalized results rather than a second calculation path.
The closed-form expression above is the flat-contribution case used by the monthly-target solver when there is no yearly step-up. Once the deposit rises each year, the package switches to simulation plus binary search because there is no single fixed monthly contribution across the whole horizon.
| Input | Role in the model | Why it changes the result |
|---|---|---|
Goal amount |
Target ending balance used in time-to-goal and monthly-target modes | Defines how much future balance the model needs to reach |
Current savings |
Starting principal at month zero | Raises the base that deposits and interest build on |
Monthly contribution |
Recurring deposit added before interest each month | Determines how much of the path is driven by new money |
Annual return rate |
Nominal annual rate converted to a monthly rate | Changes how quickly the balance compounds |
Compound frequency |
Month interval at which interest is posted | Changes timing of credited growth, especially on shorter horizons |
Annual step-up in contributions |
Yearly percentage increase applied to the monthly deposit | Lets the deposit stream grow over time instead of staying flat |
| Mode | Unknown solved by the package | Key boundary |
|---|---|---|
When will I get there? |
Months needed to reach the target balance | Stops after 600 months and warns if the target is still unmet |
Monthly target |
Required starting monthly deposit for a fixed horizon | Uses closed form only when yearly step-up is zero; otherwise uses binary search |
Projected value |
Ending balance after the chosen number of months | Needs a horizon greater than zero months to generate a schedule |
The privacy model is simple. Calculations, charts, clipboard actions, and downloads happen in the browser, and this tool does not ship a dedicated server helper. That keeps the scenario local to the device unless you deliberately copy or export it.
The top answer is only the headline. The annual schedule tells you whether the plan feels gradual or front-loaded, and the monthly timeline shows where compounding becomes noticeable. If those two views make the path look unrealistic, the headline answer probably is too.
Pay attention to the difference between contribution-driven and growth-driven outcomes. A plan can still be perfectly valid even if most of the ending balance comes from deposits rather than interest, especially on short horizons. But that also means the plan is more sensitive to missed deposits than to small changes in return assumptions.
If the required monthly amount is surprisingly high, the response is usually one of three things: raise the starting balance, extend the horizon, or lower the target. If the time to goal feels too long, the same tradeoff appears from the opposite direction. The charts help make that tradeoff visible instead of leaving it as an abstract number.
Warnings should be taken literally. A target not reached within 50 years is the package telling you the current assumptions do not realistically close the gap inside its search window. That is a scenario-planning signal, not a software defect.
Someone starts with an existing balance, chooses a six-month cash target, and uses the time-to-goal mode to see how long steady deposits may take. The annual schedule matters here because the target may be reached partway through a year even if the yearly summary looks slow at first glance.
A saver wants a down-payment target in four years and uses the monthly-target mode. If the required deposit is higher than expected, the better next step is not guessing. It is testing a longer horizon or a higher starting balance and comparing how much each change lowers the monthly need.
Another user expects to increase deposits each year after annual pay reviews. Turning on a yearly step-up can shorten the time to target or raise the projected ending value without changing the initial monthly amount. The timeline and composition views then show whether the improvement comes mostly from larger later deposits or from growth on a higher balance.
No. It models nominal growth from the entered rate and deposits only.
Because interest may be credited quarterly, semiannually, or annually even though deposits are still added each month.
A flat monthly deposit has a direct annuity-style solution. Once the deposit steps up each year, the path becomes nonlinear and the package switches to simulation with binary search.
The required monthly amount becomes zero, and the package warns that no new contributions are required for that target.