{
  "id": "millionaire",
  "version": "705bd955c8f5",
  "status": "published",
  "name": "Millionaire Calculator",
  "question": "When will I be a millionaire?",
  "summary": "Works out the age at which your savings reach $1 million from what you have, what you save each month and a yearly return, and how much to save each month to get there by an age you choose.",
  "category": "finance",
  "subcategory": "investing",
  "url": "https://www.acalculator.org/finance/millionaire-calculator",
  "markdown": "https://www.acalculator.org/finance/millionaire-calculator.md",
  "kind": "schedule",
  "method": "g = (1 + R)^(1/12) − 1; each month balance = balance × (1 + g) + deposit until it reaches the goal; age = age now + months ÷ 12. To reach it by age A: n = 12 × (A − age), deposit = (G − P(1 + g)^n) × g ÷ ((1 + g)^n − 1), or (G − P) ÷ n at 0%.",
  "assumptions": [
    "The return stays the same every year, and deposits are made at the end of each month. Real returns go up and down.",
    "Amounts are not adjusted for inflation: $1 million in 25 years buys less than $1 million today.",
    "Taxes and fees are not taken out. This is an estimate for planning, not investment advice."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "age": {
        "title": "Your age",
        "description": "Your age now.",
        "type": "integer",
        "minimum": 15,
        "maximum": 99
      },
      "saved": {
        "title": "Saved and invested now",
        "description": "What you have saved and invested today.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000000
      },
      "monthly": {
        "title": "You save each month",
        "description": "What you add at the end of every month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 100000000
      },
      "rate": {
        "title": "Yearly return",
        "description": "The yearly return with compounding included (an APY for a savings account). It stays the same every year.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 30
      },
      "goal": {
        "title": "Goal",
        "description": "The balance you want to reach.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 1,
        "maximum": 10000000000
      },
      "by": {
        "title": "Reach it by age",
        "description": "Optional: an age by which you want to reach the goal, for the monthly saving it takes.",
        "type": "integer",
        "minimum": 16,
        "maximum": 100
      }
    }
  },
  "outputs": {
    "millionAge": {
      "label": "You reach the goal at age",
      "description": "Your age now plus the months until the balance first reaches the goal, ÷ 12.",
      "format": "number"
    },
    "years": {
      "label": "Years to go",
      "description": "The months until the balance reaches the goal, ÷ 12.",
      "format": "number"
    },
    "months": {
      "label": "Months to go",
      "description": "The first month whose end balance is at or above the goal; 0 if you are already there.",
      "format": "integer"
    },
    "deposits": {
      "label": "Your money",
      "description": "What you have now plus every monthly deposit until then.",
      "format": "money"
    },
    "growth": {
      "label": "Growth",
      "description": "The return earned until then: the balance minus your money.",
      "format": "money"
    },
    "status": {
      "label": "Reached by age 100?",
      "description": "Shown when the balance does not reach the goal by age 100.",
      "format": "text"
    },
    "needed": {
      "label": "Save each month to reach it by your age",
      "description": "The monthly deposit that makes the balance equal the goal at the age you picked; $0 if you need none.",
      "format": "money"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "age": 30,
      "saved": 25000,
      "monthly": 1000,
      "rate": 7,
      "goal": 1000000,
      "by": 65
    },
    "outputs": {
      "millionAge": 56.08333333333333,
      "years": 26.083333333333332,
      "months": 313,
      "deposits": 338000,
      "growth": 664047.1764062744,
      "needed": 428.3508380653741
    },
    "text": "Saving $1,000.00 a month at 7%, you put $338,000.00 toward $1,000,000.00, with $664,047.18 of growth."
  },
  "examples": [
    {
      "given": {
        "age": 30,
        "saved": 25000,
        "monthly": 1000,
        "rate": 7,
        "goal": 1000000,
        "by": 65
      },
      "expect": {
        "months": 313,
        "millionAge": 56.08333333333333,
        "deposits": 338000,
        "growth": 664047.1764062744,
        "needed": 428.3508380653741
      },
      "source": "month by month in content.mdx, checked in Python; U.S. Securities and Exchange Commission, Investor.gov, Compound interest calculator and formula, https://www.investor.gov/financial-tools-calculators/calculators/compound-interest-calculator (retrieved 2026-10-03)"
    },
    {
      "given": {
        "age": 30,
        "saved": 0,
        "monthly": 2000,
        "rate": 0,
        "goal": 1000000,
        "by": 71
      },
      "expect": {
        "months": 500,
        "millionAge": 71.66666666666667,
        "deposits": 1000000,
        "needed": 2032.520325203252
      },
      "source": "hand calculation in content.mdx: 1,000,000 ÷ 2,000 = 500 months; 1,000,000 ÷ 492 months"
    },
    {
      "given": {
        "age": 40,
        "saved": 100000,
        "monthly": 2000,
        "rate": 5,
        "goal": 1000000,
        "by": 60
      },
      "expect": {
        "months": 228,
        "millionAge": 59,
        "needed": 1810.4044091829232
      },
      "source": "month by month at g = 1.05^(1/12) − 1, checked in Python; 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/ (retrieved 2026-10-03)"
    },
    {
      "given": {
        "age": 60,
        "saved": 0,
        "monthly": 100,
        "rate": 0,
        "goal": 1000000
      },
      "expect": {
        "status": "Not by age 100",
        "deposits": 48000
      },
      "source": "hand calculation in content.mdx: 480 months × $100 = $48,000"
    },
    {
      "given": {
        "age": 45,
        "saved": 1200000,
        "monthly": 0,
        "rate": 5,
        "goal": 1000000
      },
      "expect": {
        "months": 0,
        "millionAge": 45
      },
      "source": "hand calculation in content.mdx: $1,200,000 is already above the goal"
    }
  ],
  "sources": [
    "U.S. Securities and Exchange Commission, Investor.gov, Compound interest calculator and formula. https://www.investor.gov/financial-tools-calculators/calculators/compound-interest-calculator (retrieved 2026-10-03)",
    "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/ (retrieved 2026-10-03)"
  ],
  "related": [
    "savings",
    "compound-interest",
    "fire",
    "savings-goal"
  ],
  "changelog": []
}
