{
  "id": "savings",
  "version": "341b489a1422",
  "status": "published",
  "name": "Savings Calculator",
  "question": "How will my savings grow?",
  "summary": "Computes the balance of a savings account from its APY, a starting deposit, and monthly deposits, and how long it takes to reach a savings goal.",
  "category": "finance",
  "subcategory": "investing",
  "url": "https://www.acalculator.org/finance/savings-calculator",
  "markdown": "https://www.acalculator.org/finance/savings-calculator.md",
  "kind": "schedule",
  "method": "Each month, interest = balance × ((1 + APY)^(1/12) − 1), then the monthly deposit is added; the monthly deposit that reaches a goal G in n months is (G − P(1 + g)^n) × g ÷ ((1 + g)^n − 1).",
  "assumptions": [
    "The APY stays the same for the whole time. Savings rates can change at any time.",
    "Interest is added monthly at the rate that gives exactly the APY over 12 months.",
    "Deposits are made at the end of each month.",
    "Tax on interest is not included.",
    "This is an estimate for planning, not financial advice."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "initial": {
        "title": "Initial deposit",
        "description": "The amount in the account at the start.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 1000000000
      },
      "monthly": {
        "title": "Deposit each month",
        "description": "The amount added at the end of every month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 100000000
      },
      "apy": {
        "title": "APY (annual percentage yield)",
        "description": "The yearly yield the bank quotes, with compounding included. A balance left for a year grows by exactly this percent.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 30
      },
      "years": {
        "title": "For how long? (years)",
        "description": "How many years you save.",
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      },
      "goal": {
        "title": "Savings goal",
        "description": "A target balance. The calculator shows when you reach it and the deposit that reaches it in time.",
        "type": "number",
        "x-unit": "USD",
        "exclusiveMinimum": 0,
        "maximum": 1000000000
      }
    }
  },
  "outputs": {
    "balance": {
      "label": "You’ll have",
      "description": "The balance at the end of the last month.",
      "format": "money"
    },
    "deposits": {
      "label": "Your deposits",
      "description": "The initial deposit plus every monthly deposit.",
      "format": "money"
    },
    "interest": {
      "label": "Interest",
      "description": "All the interest earned: the final balance minus your deposits.",
      "format": "money"
    },
    "firstYear": {
      "label": "Interest in the first year",
      "description": "The interest earned in the first 12 months.",
      "format": "money"
    },
    "goalMonths": {
      "label": "Months to reach your goal",
      "description": "The first month whose end balance is at or above the goal, counted from the start. 0 when the initial deposit already reaches it.",
      "format": "integer"
    },
    "needed": {
      "label": "Monthly deposit to reach your goal in time",
      "description": "The deposit each month that makes the final balance equal the goal, or 0 if no deposit is needed.",
      "format": "money"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "initial": 5000,
      "monthly": 200,
      "apy": 4,
      "years": 5
    },
    "outputs": {
      "balance": 19319.069237718395,
      "deposits": 17000,
      "interest": 2319.069237718395,
      "firstYear": 243.68842126684302
    },
    "text": "Saving $17,000.00 over 5 years at 4% APY grows to $19,319.07, of which $2,319.07 is interest."
  },
  "examples": [
    {
      "given": {
        "initial": 10000,
        "apy": 4,
        "years": 1
      },
      "expect": {
        "balance": 10400,
        "interest": 400,
        "firstYear": 400
      },
      "source": "APY definition in Regulation DD (12 CFR 1030, Appendix A): a one-year balance earns exactly the APY; hand calculation in content.mdx"
    },
    {
      "given": {
        "initial": 0,
        "monthly": 200,
        "apy": 5,
        "years": 10
      },
      "expect": {
        "balance": 30872.63226029329,
        "deposits": 24000,
        "interest": 6872.632260293289
      },
      "source": "future value of monthly deposits, hand calculation in content.mdx"
    },
    {
      "given": {
        "initial": 1000,
        "monthly": 100,
        "apy": 0,
        "years": 5,
        "goal": 5000
      },
      "expect": {
        "balance": 7000,
        "goalMonths": 40,
        "needed": 66.66666666666667
      },
      "source": "hand calculation in content.mdx: 1,000 + 40 × 100 = 5,000; (5,000 − 1,000) ÷ 60"
    },
    {
      "given": {
        "initial": 0,
        "monthly": 100,
        "apy": 3,
        "years": 2,
        "goal": 10000
      },
      "expect": {
        "balance": 2469.3162396065404,
        "needed": 404.970405961182
      },
      "source": "hand calculation in content.mdx"
    }
  ],
  "sources": [
    "Consumer Financial Protection Bureau, Regulation DD (Truth in Savings), 12 CFR 1030, Appendix A: annual percentage yield calculation. https://www.consumerfinance.gov/rules-policy/regulations/1030/a/",
    "FDIC, Deposit insurance: $250,000 per depositor, per insured bank, for each account ownership category. https://www.fdic.gov/resources/deposit-insurance",
    "Internal Revenue Service, About Form 1099-INT, Interest Income. https://www.irs.gov/forms-pubs/about-form-1099-int",
    "U.S. Securities and Exchange Commission, Investor.gov savings goal calculator. https://www.investor.gov/financial-tools-calculators/calculators/savings-goal-calculator"
  ],
  "related": [
    "compound-interest",
    "investment",
    "529"
  ],
  "changelog": []
}
