← Financial Ideas
Financial Ideas 2026-08-05

Savings Goal Planner

Enter every goal you're saving for (emergency fund, vacation, a property-tax sinking fund) and see the exact monthly amount each one needs, with interest doing part of the work.

Savings Goal Planner

Savings Goal & Sinking Fund Planner

Enter every goal you're saving for (emergency fund, vacation, a property-tax sinking fund) and see the exact monthly amount each one needs, with interest doing part of the work.

Date: 2026-08-05 Type: App Theme: Saving Status: Idea

What it is

A single-page browser app that takes a list of savings goals (name, target amount, current balance, target date, and the account's APY) and computes the level monthly contribution each one needs to hit its target on time. It runs the math twice per goal: once assuming the balance earns the entered interest rate, once assuming it earns nothing, so the value of parking the money in a better account is visible as a dollar figure instead of a vague "interest helps."

Who it serves

Someone juggling more than one savings target at once: an emergency fund, a car down payment, a holiday-gifts sinking fund, maybe a wedding. Most people either lump all of this into one savings account with no per-goal math, or they know roughly what they're saving for but have never worked out the monthly number that actually gets them there by the date they have in mind.

The money problem it addresses

Sinking funds and short-term goals often sit in whatever account already existed, usually a standard savings or checking account, instead of a high-yield savings account (HYSA). The national average savings account rate was 0.38% APY as of July 2026, per the FDIC, while top HYSAs were paying up to 4.21% APY in August 2026 (NerdWallet). On a short-horizon goal that gap barely matters; on a goal 3–4 years out, it adds up to real money the saver would otherwise have to contribute out of their own paycheck. The planner isolates that number.

How it works

  1. Enter goals — the app pre-loads ten synthetic example goals covering a mix of an emergency fund, big-purchase goals (car, home down payment, wedding), and short-horizon sinking funds. Rows are editable; users can add or remove goals.
  2. Click Calculate — for each goal, the app grows the current balance forward at the entered APY (compounded monthly, using (1 + APY)^(1/12) − 1 so it matches how banks actually state annual percentage yield) and solves for the level monthly contribution that closes the remaining gap by the target date.
  3. Review results — four summary cards show the total monthly amount needed across all goals, what that total would be at 0% interest, the monthly amount saved by earning interest instead, and the total interest earned across every goal by its target date. A bar chart ranks goals by monthly amount needed, highest first, so the user knows where to send money first. A table below breaks out months remaining, monthly contribution, total out-of-pocket contribution, interest earned, and current progress for each goal.

What's in this folder

  • README.md — this file.
  • cover-image.png — cover illustration used as the card in the web app.
  • metadata.md — workflow provenance, model, cover prompt, file manifest.
  • requirements.md — functional and technical requirements.
  • index.html — single-page entry point; loads style.css and script.js; requires only a modern browser.
  • style.css — layout, typography, summary cards, table, and chart styling.
  • script.js — goal-row management, the compound-interest sinking-fund math, Chart.js rendering.
  • sample-data.json — the ten synthetic goals the app pre-loads, in the same shape, with the APY assumptions documented per goal.

How to run / read it

Open index.html in any modern browser. No build step, no server, no API keys, and it works straight from file://. Sample data loads automatically. Click Calculate My Plan to see results immediately, or edit the goal rows first.

Estimated impact

Run against the ten sample goals, the plan needs $3,956.07/month total if every balance earns its entered APY, versus $4,135.65/month if the same money sat at 0%. That's a $179.59/month difference the saver doesn't have to find from their paycheck, just from where the money lives. Across all ten goals, it adds up to $5,163.55 in interest earned by their target dates.

The size of that effect depends entirely on the time horizon. The 48-month home-down-payment goal earns $3,828.31 in interest on its own, most of the total. The three short sinking funds in the sample (4, 5, and 6 months out), left at the 0.38% national-average rate instead of a 4.00% HYSA, would only save a combined $11.24/month by switching accounts, barely worth the effort of opening a new one. Below roughly a year, account choice barely moves the number, and the planner shows that honestly instead of implying every goal benefits equally.

Good to know

This is a planning and organizing tool, not personalized financial or tax advice. It assumes the entered APY holds constant for the full savings period, which real HYSA rates don't; they move with the Fed funds rate and can drop with little notice. It doesn't account for taxes on interest earned, which is taxable income in the U.S. Treat the monthly numbers as a starting plan, not a guarantee, and check your account's current APY before relying on them.

Sources

  • https://www.nerdwallet.com/banking/best/high-yield-online-savings-accounts — best HYSA rates, up to 4.21% APY, August 2026
  • https://www.forbes.com/advisor/banking/savings/best-high-yield-savings-accounts/ — best HYSA rates, up to 4.00% APY, August 2026
  • https://www.fool.com/money/research/average-savings-account-interest-rate/ — average U.S. savings account rate 0.38% APY as of July 2026 (FDIC), average HYSA rate 1.60%, average 1-year CD 2.49%
  • https://www.fdic.gov/national-rates-and-rate-caps — FDIC National Rates and Rate Caps, July 2026
Requirements

Requirements — Savings Goal & Sinking Fund Planner

Functional Requirements

  • FR-1 User can enter any number of savings goals via an editable table. Each row requires: goal name (text), target amount (dollars), current balance (dollars), target date (date), and the account's APY (%).
  • FR-2 App computes, per goal, the level monthly contribution required to reach the target amount by the target date, given the current balance grows at the entered APY and monthly contributions are made at the end of each month (ordinary annuity).
  • FR-3 App also computes a 0%-APY baseline monthly contribution for the same goal (target minus current, divided evenly across the remaining months), so the value of the interest rate is visible by comparison.
  • FR-4 Summary cards display: total monthly contribution needed across all goals (with APY), the 0%-baseline total, the monthly amount saved by earning interest (baseline minus actual), and total interest earned across all goals by their target dates.
  • FR-5 A Chart.js horizontal bar chart ranks goals by monthly contribution required, highest first, so the user sees where their money needs to go first.
  • FR-6 A per-goal results table lists: months remaining, monthly contribution needed, total the user will contribute out of pocket, interest earned, and current progress toward the target as a percentage.
  • FR-7 A goal whose current balance (grown to the target date at the entered APY) already meets or exceeds the target shows $0/month needed and is flagged "Goal already funded."
  • FR-8 A goal whose target date is today or in the past is treated as due in 1 month; the required contribution becomes the full remaining amount.
  • FR-9 Sample data (ten synthetic goals) is pre-loaded on first render. A "Load sample data" button resets all inputs to the sample set.
  • FR-10 User can add blank goal rows and remove any row. Rows missing a required field, with a non-positive target/current amount, or with an APY outside 0–15% are silently skipped during computation.

Technical Requirements

  • TR-1 Single-page app — index.html opens directly from file:// in any modern browser with no build step, server, or API keys.
  • TR-2 All monetary arithmetic uses integer cents internally (dollar inputs multiplied by 100 and rounded). Dollar display is formatted at output only via toLocaleString.
  • TR-3 Monthly compounding rate is derived from the entered APY as (1 + APY/100)^(1/12) - 1, not a naive APY/12, so it matches how banks state annual percentage yield.
  • TR-4 Months remaining between today (the browser's current date) and each goal's target date is computed as whole calendar months, floored, with a minimum of 1.
  • TR-5 External CDN dependency: chart.js@4.4.7 via https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js. No other third-party libraries.
  • TR-6 Existing Chart.js instance is destroyed before re-rendering to prevent canvas memory accumulation.
  • TR-7 HTML output in results rendering is constructed with string templates; user-supplied goal names are injected into text-only content, never raw into innerHTML attributes, to avoid XSS.
  • TR-8 Input validation: non-positive target/current, missing name, missing/invalid date, or APY outside 0–15% causes that row to be skipped silently; an alert fires only when zero valid rows remain after filtering.

Non-Requirements

  • No real account connections, OAuth flows, bank-linking, or third-party API calls.
  • No persistent storage — session-only state.
  • No server-side computation.
  • No personalized financial, investment, or tax advice output.
  • Does not model taxes on interest earned (savings account interest is taxable income in the U.S.).
  • Does not model variable/promotional APYs that change over the savings period — assumes the entered rate holds constant.

More from Financial Ideas