{
  "slug": "savings-goal-date",
  "title": "Savings Goal Date Calculator",
  "heading": "Savings Goal Date Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/savings-goal-date",
  "summary": "Find the month you hit a savings target at your current contribution and rate.",
  "description": "Most savings tools ask how much to save per month to hit a date. This one flips it: given what you can actually put aside, when do you get there? That framing is more useful when the contribution is fixed by your budget rather than by ambition. The calculator compounds your starting balance and monthly deposits at the account's APY, returns the number of months to the target, and shows how much of the total came from interest rather than deposits — which is the figure that makes the case for moving cash out of a zero-interest checking account.",
  "formula": "Balance after n months = Current×(1+r)^n + Contribution×((1+r)^n − 1) ÷ r. Solve for the first n where balance ≥ target.",
  "dateModified": "2026-08-25",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=savings-goal-date",
  "inputs": [
    {
      "id": "target",
      "label": "Savings target",
      "kind": "number",
      "hint": null,
      "default": 25000,
      "unit": "$",
      "min": 1,
      "max": null
    },
    {
      "id": "current",
      "label": "Current balance",
      "kind": "number",
      "hint": null,
      "default": 4000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "monthly",
      "label": "Monthly contribution",
      "kind": "number",
      "hint": null,
      "default": 600,
      "unit": "$/mo",
      "min": 0,
      "max": null
    },
    {
      "id": "apy",
      "label": "Account APY",
      "kind": "number",
      "hint": null,
      "default": 4.25,
      "unit": "%",
      "min": 0,
      "max": null
    },
    {
      "id": "annualBump",
      "label": "Annual increase in contribution",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "%",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "months",
      "label": "Months to reach the goal",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "years",
      "label": "Years to reach the goal",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "deposited",
      "label": "Total you deposit",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "interest",
      "label": "Interest earned along the way",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "finalBalance",
      "label": "Balance when you get there",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "finalContribution",
      "label": "Contribution in the final month",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Savings target: 25000 $",
      "Current balance: 4000 $",
      "Monthly contribution: 600 $/mo",
      "Account APY: 4.25 %",
      "Annual increase in contribution: 0 %"
    ],
    "outputs": [
      "Months to reach the goal: 33",
      "Years to reach the goal: 2.75",
      "Total you deposit: $19,800.00",
      "Interest earned along the way: $1,659.16",
      "Balance when you get there: $25,459.16",
      "Contribution in the final month: $600.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter savings target ($).",
      "Enter current balance ($).",
      "Enter monthly contribution ($/mo).",
      "Enter account apy (%).",
      "Enter annual increase in contribution (%).",
      "Read your months to reach the goal on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "target": 15000,
        "current": 2500,
        "monthly": 350,
        "apy": 2.55,
        "annualBump": 0
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "target": 25000,
        "current": 4000,
        "monthly": 600,
        "apy": 4.25,
        "annualBump": 0
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "target": 40000,
        "current": 6500,
        "monthly": 950,
        "apy": 6.800000000000001,
        "annualBump": 0
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Why does zero months show up?",
      "a": "It means the target is not reached inside 100 years at these inputs — typically a zero contribution with a balance below target. Add a monthly amount or lower the target."
    },
    {
      "q": "Is APY the right rate to use?",
      "a": "Yes for savings accounts, because APY already reflects compounding. If you only have a nominal rate, the difference is minor at current levels, but APY is the number banks are required to publish and the one to compare across institutions."
    },
    {
      "q": "Should I model taxes on the interest?",
      "a": "In a taxable account, interest is ordinary income, so a rough adjustment is to multiply the APY by (1 − your marginal rate). In tax-advantaged accounts, use the full APY. At small balances the difference barely moves the date; at large ones it matters."
    },
    {
      "q": "Does the annual increase make much difference?",
      "a": "More than most people expect over long horizons — a 3% yearly bump roughly tracks pay rises and can pull a ten-year goal in by a year or more, because each increase compounds for the remaining term."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/sinking-fund-monthly",
    "https://www.revenuelab.fyi/toolbox/emergency-fund-target",
    "https://www.revenuelab.fyi/toolbox/personal-runway-months"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Savings Goal Date Calculator (https://www.revenuelab.fyi/toolbox/savings-goal-date)"
}