{
  "slug": "compound-interest-calculator",
  "name": "gizza-ai/compound-interest-calculator",
  "version": "0.1.0",
  "title": "Compound Interest Calculator — gizza.ai",
  "description": "Compute savings future value with compound interest, optional deposits, APY, total interest and a year-by-year schedule.",
  "tags": [
    "compound interest",
    "future value",
    "savings calculator",
    "investment growth",
    "APY",
    "annuity",
    "regular contributions",
    "effective annual rate",
    "time to double",
    "finance"
  ],
  "category": "math",
  "urls": {
    "page": "https://gizza.ai/tools/compound-interest-calculator/",
    "markdown": "https://gizza.ai/tools/compound-interest-calculator/index.md",
    "descriptor": "https://gizza.ai/tools/compound-interest-calculator/tool.json",
    "deep_link_example": "https://gizza.ai/tools/compound-interest-calculator/?principal=1000&annual_rate=5&years=10&months=0&compounding=monthly&contribution=0&contribution_frequency=monthly&contribution_timing=end"
  },
  "cli": "gizza tool compound-interest-calculator 'principal=1000'",
  "tool": {
    "description": "Compute the future value of a lump sum plus optional regular contributions growing with compound interest. Pass principal (starting balance), annual_rate (nominal percent), years (+ optional months) for the term, compounding (annually/semiannually/quarterly/monthly/weekly/daily/continuously), and optionally contribution + contribution_frequency (annually/semiannually/quarterly/monthly/biweekly/weekly) + contribution_timing (end or start of period). Every parameter is optional with a sensible default. Returns future_value, principal, total_contributions, total_interest, effective_annual_rate (APY), years_to_double, a per-year schedule, and a plain-language summary. Contributions may be negative to model withdrawals.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "annual_rate": {
          "default": 5.0,
          "description": "Nominal annual interest rate as a percent, e.g. 5 for 5%. Default 5.",
          "maximum": 20,
          "minimum": 0,
          "type": "number"
        },
        "compounding": {
          "default": "monthly",
          "description": "How often interest compounds: annually, semiannually, quarterly, monthly, weekly, daily, or continuously. Default monthly.",
          "enum": [
            "annually",
            "semiannually",
            "quarterly",
            "monthly",
            "weekly",
            "daily",
            "continuously"
          ],
          "type": "string"
        },
        "contribution": {
          "default": 0.0,
          "description": "Regular contribution added each contribution period. Use a negative number for periodic withdrawals. Default 0 (lump sum only).",
          "type": "number"
        },
        "contribution_frequency": {
          "default": "monthly",
          "description": "How often the contribution is made: annually, semiannually, quarterly, monthly, biweekly, or weekly. Default monthly.",
          "enum": [
            "annually",
            "semiannually",
            "quarterly",
            "monthly",
            "biweekly",
            "weekly"
          ],
          "type": "string"
        },
        "contribution_timing": {
          "default": "end",
          "description": "Whether each contribution is made at the end (ordinary annuity) or start (annuity-due) of the period. Default end.",
          "enum": [
            "end",
            "start"
          ],
          "type": "string"
        },
        "months": {
          "default": 0.0,
          "description": "Extra months added on top of years. Default 0.",
          "minimum": 0,
          "type": "number"
        },
        "principal": {
          "default": 1000.0,
          "description": "Initial principal / starting balance in your currency. Default 1000.",
          "type": "number"
        },
        "years": {
          "default": 10.0,
          "description": "Whole or partial years in the term. Default 10 (max 1000).",
          "maximum": 1000,
          "minimum": 0,
          "type": "number"
        }
      },
      "type": "object"
    }
  }
}