{
  "id": "percentage-change",
  "version": "a3576b0038c5",
  "status": "published",
  "name": "Percentage Change Calculator",
  "question": "What is the percent change?",
  "summary": "Finds the percentage change from an old value to a new one, or either value from the other and the change.",
  "category": "math",
  "subcategory": "arithmetic",
  "url": "https://www.acalculator.org/math/percentage-change-calculator",
  "markdown": "https://www.acalculator.org/math/percentage-change-calculator.md",
  "kind": "formulas",
  "method": "p = (B − A) ÷ |A| × 100, where A is the old value, B the new value, and p the percentage change.",
  "assumptions": [
    "The change is measured against the size of the old value, |A|, so a rise from −50 to 25 is +150%.",
    "There is no percentage change from 0: the old value must not be 0.",
    "Finding the old value from the new value and the change can give two answers, one positive and one negative: both are shown."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "from": {
        "title": "From (old value)",
        "description": "The starting value A, before the change. Not 0.",
        "type": "number"
      },
      "to": {
        "title": "To (new value)",
        "description": "The value B after the change.",
        "type": "number"
      },
      "change": {
        "title": "Percentage change",
        "description": "The change from A to B as a percent of |A|: positive for an increase, negative for a decrease.",
        "type": "number",
        "x-unit": "percent"
      }
    }
  },
  "solve": {
    "fillAny": 2,
    "variables": [
      "from",
      "to",
      "change"
    ],
    "inputsOnly": []
  },
  "outputs": {
    "from": {
      "label": "From (old value)",
      "description": "The starting value A, before the change. Not 0.",
      "format": "number"
    },
    "to": {
      "label": "To (new value)",
      "description": "The value B after the change.",
      "format": "number"
    },
    "change": {
      "label": "Percentage change",
      "description": "The change from A to B as a percent of |A|: positive for an increase, negative for a decrease.",
      "format": "percent"
    },
    "difference": {
      "label": "Difference",
      "description": "The new value minus the old value: B − A.",
      "format": "number"
    },
    "direction": {
      "label": "Increase or decrease",
      "description": "Whether the value went up, went down, or stayed the same.",
      "format": "text"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "from": 100,
      "to": 125
    },
    "outputs": {
      "change": 25,
      "difference": 25,
      "direction": "Increase"
    },
    "text": "From 100 to 125 is a change of 25%."
  },
  "examples": [
    {
      "given": {
        "from": 100,
        "to": 125
      },
      "expect": {
        "change": 25,
        "difference": 25,
        "direction": "Increase"
      },
      "source": "hand calculation in content.mdx: (125 − 100) ÷ 100 × 100 = 25%"
    },
    {
      "given": {
        "from": 80,
        "to": 60
      },
      "expect": {
        "change": -25,
        "difference": -20,
        "direction": "Decrease"
      },
      "source": "hand calculation in content.mdx: (60 − 80) ÷ 80 × 100 = −25%"
    },
    {
      "given": {
        "from": 50,
        "change": 50
      },
      "expect": {
        "to": 75
      },
      "source": "hand calculation in content.mdx: 50 + 50% of 50 = 75"
    },
    {
      "given": {
        "to": 75,
        "change": 50
      },
      "expect": {
        "from": 50
      },
      "source": "hand calculation in content.mdx: 75 ÷ 1.5 = 50"
    },
    {
      "given": {
        "from": -50,
        "to": 25
      },
      "expect": {
        "change": 150,
        "difference": 75,
        "direction": "Increase"
      },
      "source": "hand calculation in content.mdx: (25 − (−50)) ÷ |−50| × 100 = 75 ÷ 50 × 100 = 150%"
    },
    {
      "given": {
        "to": 10,
        "change": 200
      },
      "expect": {
        "from": 3.3333333333333335
      },
      "source": "hand calculation in content.mdx: 10 ÷ 3 = 3.333…, or 10 ÷ (1 − 2) = −10; Python 3: 10 / 3 = 3.3333333333333335"
    }
  ],
  "sources": [
    "OpenStax, Elementary Algebra 2e, section 3.2 Solve Percent Applications (percent increase and percent decrease): https://openstax.org/books/elementary-algebra-2e/pages/3-2-solve-percent-applications"
  ],
  "related": [
    "percentage",
    "percentage-increase",
    "percentage-difference"
  ],
  "changelog": [
    {
      "date": "2026-09-28",
      "note": "An old value of 0 names the rule."
    }
  ]
}
