{
  "id": "exponential-growth",
  "version": "517663321fc4",
  "status": "published",
  "name": "Exponential Growth Calculator",
  "question": "What is my exponential growth?",
  "summary": "Finds the final value of exponential growth or decay from the initial value, the rate per period, and the time, or any one of them from the other three, with the doubling time or half-life.",
  "category": "math",
  "subcategory": "algebra",
  "url": "https://www.acalculator.org/math/exponential-growth-calculator",
  "markdown": "https://www.acalculator.org/math/exponential-growth-calculator.md",
  "kind": "function",
  "method": "Once per period: x(t) = x₀ × (1 + r)^t. Continuous: x(t) = x₀ × e^(r × t). Doubling time = ln 2 ÷ ln(1 + r) (continuous: ln 2 ÷ r); half-life = ln 2 ÷ −ln(1 + r) (continuous: ln 2 ÷ −r).",
  "assumptions": [
    "r is the percent change per period (5% is 0.05); a negative r is decay. r is more than −100% and at most 1,000%.",
    "Time is counted in periods and may be a fraction of a period; the rate and the time use the same period.",
    "The initial and final values are from 10^-300 to 10^300; the time is from 0 to 1,000 periods."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "m": {
        "title": "Growth",
        "description": "Compounded once per period, x₀(1 + r)^t, or continuously, x₀e^(rt).",
        "type": "string",
        "enum": [
          "discrete",
          "continuous"
        ]
      },
      "find": {
        "title": "Find",
        "description": "Which value to work out from the other three.",
        "type": "string",
        "enum": [
          "x",
          "x0",
          "r",
          "t"
        ]
      },
      "x0": {
        "title": "Initial value (x₀)",
        "description": "The amount at time 0, from 10^-300 to 10^300.",
        "type": "number",
        "minimum": 1e-300,
        "maximum": 1e+300
      },
      "r": {
        "title": "Growth rate per period (r)",
        "description": "The percent the amount grows each period; negative for decay. More than −100%, at most 1,000%.",
        "type": "number",
        "x-unit": "percent",
        "exclusiveMinimum": -100,
        "maximum": 1000
      },
      "t": {
        "title": "Time (periods)",
        "description": "How many periods pass, such as years or hours, from 0 to 1,000.",
        "type": "number",
        "minimum": 0,
        "maximum": 1000
      },
      "x": {
        "title": "Final value (x(t))",
        "description": "The amount after t periods, from 10^-300 to 10^300.",
        "type": "number",
        "minimum": 1e-300,
        "maximum": 1e+300
      }
    }
  },
  "outputs": {
    "x": {
      "label": "Final value (x(t))",
      "description": "The amount after t periods.",
      "format": "number"
    },
    "x0": {
      "label": "Initial value (x₀)",
      "description": "The amount at time 0.",
      "format": "number"
    },
    "r": {
      "label": "Growth rate per period (r)",
      "description": "The percent change per period.",
      "format": "percent"
    },
    "t": {
      "label": "Time (periods)",
      "description": "How many periods it takes.",
      "format": "number"
    },
    "doubling": {
      "label": "Doubling time (periods)",
      "description": "How many periods it takes the amount to double, when the rate is above 0%.",
      "format": "number"
    },
    "halfLife": {
      "label": "Half-life (periods)",
      "description": "How many periods it takes the amount to halve, when the rate is below 0%.",
      "format": "number"
    },
    "factor": {
      "label": "Growth factor per period",
      "description": "What the amount is multiplied by each period: 1 + r, or e^r for continuous growth.",
      "format": "number"
    },
    "change": {
      "label": "Total change",
      "description": "The final value compared with the initial value, as a percent.",
      "format": "percent"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "m": "discrete",
      "find": "x",
      "x0": 100,
      "r": 5,
      "t": 10,
      "x": 200
    },
    "outputs": {
      "x": 162.88946267774412,
      "doubling": 14.206699082890472,
      "factor": 1.05,
      "change": 62.88946267774415
    },
    "text": "100 growing at 5% per period (Once per period) for 10 periods becomes 162.889463."
  },
  "examples": [
    {
      "given": {
        "m": "discrete",
        "find": "x",
        "x0": 100,
        "r": 5,
        "t": 10
      },
      "expect": {
        "x": 162.8894626777442,
        "doubling": 14.206699082890463,
        "factor": 1.05,
        "change": 62.88946267774418
      },
      "source": "hand calculation in content.mdx: 100 × 1.05^10; Python 3: 100 * 1.05 ** 10 = 162.8894626777442, math.log(2) / math.log(1.05) = 14.206699082890463; formula from OpenStax College Algebra 2e, section 6.1: https://openstax.org/books/college-algebra-2e/pages/6-1-exponential-functions"
    },
    {
      "given": {
        "m": "continuous",
        "find": "x",
        "x0": 100,
        "r": 5,
        "t": 10
      },
      "expect": {
        "x": 164.87212707001282,
        "doubling": 13.862943611198906
      },
      "source": "hand calculation in content.mdx: 100 × e^0.5; Python 3: 100 * math.exp(0.5) = 164.87212707001282, math.log(2) / 0.05 = 13.862943611198906"
    },
    {
      "given": {
        "m": "discrete",
        "find": "r",
        "x0": 1000,
        "x": 250,
        "t": 2
      },
      "expect": {
        "r": -50,
        "halfLife": 1
      },
      "source": "hand calculation in content.mdx: 250 ÷ 1000 = 0.25 = 0.5², so r = −50% and the amount halves each period"
    },
    {
      "given": {
        "m": "discrete",
        "find": "t",
        "x0": 500,
        "r": 3,
        "x": 1000
      },
      "expect": {
        "t": 23.449772250437736
      },
      "source": "hand calculation in content.mdx: t = ln 2 ÷ ln 1.03; Python 3: math.log(2) / math.log(1.03) = 23.449772250437736"
    },
    {
      "given": {
        "m": "discrete",
        "find": "x0",
        "r": 10,
        "t": 3,
        "x": 1331
      },
      "expect": {
        "x0": 1000
      },
      "source": "hand calculation in content.mdx: 1331 ÷ 1.1³ = 1331 ÷ 1.331 = 1000",
      "tolerance": 1e-12
    },
    {
      "given": {
        "m": "discrete",
        "find": "x",
        "x0": 1e+300,
        "r": -99,
        "t": 162
      },
      "expect": {
        "x": 1e-24
      },
      "source": "hand calculation in content.mdx: 10^300 × 0.01^162 = 10^300 × 10^-324 = 10^-24 (WP-60-53 finding 10)",
      "tolerance": 1e-12
    }
  ],
  "sources": [
    "OpenStax, College Algebra 2e, section 6.1 Exponential Functions (exponential growth and continuous growth): https://openstax.org/books/college-algebra-2e/pages/6-1-exponential-functions",
    "OpenStax, College Algebra 2e, section 6.7 Exponential and Logarithmic Models (half-life and doubling time): https://openstax.org/books/college-algebra-2e/pages/6-7-exponential-and-logarithmic-models"
  ],
  "related": [
    "growth-rate",
    "compound-interest",
    "cagr",
    "log",
    "sequence"
  ],
  "changelog": []
}
