Skip to main content

Example values are filled in. Replace them with your own.

Percentage change

+15%

Increase

Working

  1. 9200 − 8000 = 1200
  2. 1200 ÷ 8000 × 100 = 15%
Absolute change
1200
Base used (the absolute starting value)
8000
Change needed to get back to the start
-13.04%

Percentage change divides by the absolute value of the starting value, so a move from −50 to −25 is +50%, an increase.

This is a relative change, a share of the starting value. If both values are rates, the gap between them is measured in percentage points, a different measure. See the percentage points calculator.

A share price falls from $80 to $68, or a website's visits jump from 5,000 to 20,000. How big was the move, and in which direction? A raw difference of $12 or 15,000 visits cannot be compared across different starting points. Percent change can.

Enter the initial value and the final value into this percent change calculator and it returns the percentage change, labelled as an increase or a decrease, with every step of the working shown. It also handles negative starting values and says which convention it used, so you can check the answer against your own.

How percentage change works

Quick answer: subtract the initial value from the final value, divide by the initial value and multiply by 100. A positive result is an increase and a negative result is a decrease. From 80 to 68 that is (68 − 80) ÷ 80 × 100 = −15%.

What is percentage change?

Percentage change measures how much a value moved, as a share of where it started. Unlike the percentage increase calculator and the percentage decrease calculator, which each handle one direction, this percentage change calculator covers both and carries the direction in its sign.

Percentage change formula

percentage change = (final value - initial value) / abs(initial value) * 100

This is the percent change formula in full, and the formula for calculating percentage change is the same for any unit, whether money, mass, people or visits, because the units cancel in the division. The absolute value bars matter only when the initial value is negative.

How to calculate percentage change

  1. Subtract the initial value from the final value to get the change.
  2. Divide the change by the initial value, not the final value.
  3. Multiply by 100 and keep the sign: plus for an increase, minus for a decrease.

Here is how to calculate percentage change between two numbers: the one that happened first is always the initial value. When calculating percent change, swapping them changes the answer: 80 to 100 is +25%, but 100 to 80 is −20%.

Finding the new value from a percent change

If you know the percent change and want the final value, run the formula backwards: final value = initial value × (1 + percent change ÷ 100). A price of $250 with a −12% change becomes 250 × 0.88 = $220, and a 40% rise on 60 gives 60 × 1.40 = 84. Running the change percentage calculation in reverse is the same as adding or subtracting a percent. The percentage increase calculator covers rises in more detail.

Percentage change between negative numbers

When the initial value is negative, the calculator divides by its absolute value, so the sign of the result matches the direction of the move. Going from −50 to −25 is +50%, because the value rose by 25. Going from −20 to −30 is −50%, because it fell by 10. This is a convention. A plain (new − old) ÷ old formula, as typed in Excel, returns −50% for the first move, the opposite sign to the direction of the change. The calculator uses the absolute start and says so beside the result, so you can match it to your own. If the value crosses zero, such as −10 to 20, the formula gives +300%, but the absolute change of 30 is usually the more honest figure.

Calculating changes in percentages

When the values are themselves percentages, the formula is unchanged but the wording matters. A rate moving from 40% to 50% is a 10 percentage point change and a 25% relative change: (50 − 40) ÷ 40 = 0.25. Say which one you mean. The percentage points guide covers the difference.

Why a change is not symmetric

A 50% rise followed by a 50% fall does not return you to the start: 100 becomes 150, then 75. To recover from a 50% fall you need a 100% rise. This is because each change uses a different base.

When percent change misleads

A small base produces dramatic percentages. Going from 1 to 3 is a 200% increase, while going from 1,000 to 1,030 is 3%, even though the first gain is 2 units and the second is 30. To judge a move like that fairly, report it alongside the absolute change and name the base. Over many periods, do not average the yearly percentages; chain them as shown below.

Chaining changes: how to multiply percentages

To combine successive changes, convert each to a factor (1 plus the change as a decimal) and multiply. A 20% rise then a 10% fall is 1.20 × 0.90 = 1.08, which is a net 8% rise, not 10%. Multiplying percentages this way also gives compound growth: three rises of 10% make 1.10³ = 1.331, or 33.1%.

Percentage change vs percentage difference

Use percentage change when one value came first and the other is the result. Use percentage difference when two values are peers with no natural start, such as the prices of the same item in two shops. The percentage difference calculator divides by the average of the two values, so the order does not matter.

Population growth and other real-world uses

A population growth rate is the percent change in headcount over a period. A town growing from 48,000 to 50,400 people has grown by 2,400 ÷ 48,000 = 5%. Year-over-year, annual and monthly growth are the same calculation on figures a period apart. Economics (GDP, CPI), biology (mass change in osmosis experiments) and business (sales, profit) all use this percentage change formula.

Percentage change examples

Quick reference for small whole-number moves:

Percentage change examples
FromToChangePercent change
520+15+300%
2010−10−50%
23+1+50%
54−1−20%

Example 1: share price from $80 to $68

Given

share price from $80 to $68
  1. Step 1

    The change is 68 − 80 = −12.
  2. Step 2

    Divide by the initial price: −12 ÷ 80 = −0.15.

Answer

That is a 15% decrease, shown as −15%.

Example 2: website visits from 5,000 to 20,000

Given

website visits from 5,000 to 20,000
  1. Step 1

    The change is +15,000, and 15,000 ÷ 5,000 = 3.

Answer

Visits rose 300%, which means the new figure is four times the old one. A rise can exceed 100%, but a fall cannot go below −100% when the values are positive.

Example 3: percentage change in mass, 12.5 g to 11.2 g

Given

mass from 12.5 g to 11.2 g
  1. Step 1

    The sample lost 1.3 g.
  2. Step 2

    Divide by the starting mass: −1.3 ÷ 12.5 = −0.104.

Answer

The mass fell 10.4%.

Example 4: year-over-year revenue, $1.8 million to $2.25 million

Given

year-over-year revenue, $1.8 million to $2.25 million
  1. Step 1

    The change is +$0.45 million, and 0.45 ÷ 1.8 = 0.25.

Answer

Revenue grew 25% year over year.

Example 5: negative values, −50 to −25

Given

negative values, −50 to −25
  1. Step 1

    The change is +25 and the absolute initial value is 50, so 25 ÷ 50 = 0.5.

Answer

The value rose 50%, matching the direction of the move.

Example 6: why the order matters, 20 and 30

Given

20 and 30
  1. Step 1

    From 20 to 30 is +10 ÷ 20 = +50%.
  2. Step 2

    From 30 to 20 is −10 ÷ 30 = −33.3%.

Answer

The gap of 10 is the same, but the initial value is not. If neither number is the start, use the percentage difference calculator instead, which gives 40% for 20 and 30 either way.

Percentage change code

Both versions reproduce the examples above (+300%, −50%, +50%, −20%, −15%, −10.4%, +25%), use the absolute initial value for negative starts and refuse a starting value of 0.

JavaScript

JavaScript
function finite(name, v) {  if (typeof v !== "number" || !Number.isFinite(v)) throw new TypeError(`${name} must be a finite number`);}​export function percentChange(initial, final) {  finite("initial", initial);  finite("final", final);  if (initial === 0) throw new RangeError("initial must not be 0: the change from zero is undefined");  const percent = ((final - initial) / Math.abs(initial)) * 100;  const direction = percent > 0 ? "increase" : percent < 0 ? "decrease" : "no change";  return { percent, direction };}​export function chainChanges(...percents) {  percents.forEach((p, i) => finite(`percents[${i}]`, p));  return (percents.reduce((factor, p) => factor * (1 + p / 100), 1) - 1) * 100;}

Python

Python
from decimal import Decimalimport math​​def _num(name, v):    if isinstance(v, bool) or not isinstance(v, (int, float, Decimal)) or not math.isfinite(float(v)):        raise ValueError(f"{name} must be a finite number")    return Decimal(str(v))​​def percent_change(initial, final):    initial, final = _num("initial", initial), _num("final", final)    if initial == 0:        raise ValueError("initial must not be 0: the change from zero is undefined")    percent = (final - initial) / abs(initial) * 100    direction = "increase" if percent > 0 else "decrease" if percent < 0 else "no change"    return percent, direction​​def chain_changes(*percents):    factor = Decimal(1)    for i, p in enumerate(percents):        factor *= 1 + _num(f"percents[{i}]", p) / 100    return (factor - 1) * 100

chainChanges(20, -10) returns 8 once rounded for display, the net rise from the chaining example, and chainChanges(50, -50) returns −25, the 100 to 75 case. Round only for display.

Privacy and input safety

Values are calculated in your browser. The numbers you enter are not sent to a server or stored.

  • Fields accept numbers only. Text, empty fields, NaN and Infinity are rejected with a message, and nothing you type is ever evaluated as code.
  • A starting value of 0 returns a clear message instead of a division error, because a percent change from zero is undefined. The absolute change is still shown.
  • A comma followed by exactly three digits is read as a thousands separator, so 1,200 is 1200. Any other comma is a decimal point, so 12,50 is 12.50, and a number starting with 0, such as 0,500, is read as a decimal. Mixed formats such as 1.234,5 and ambiguous entries such as 1,2,3 are refused instead of guessed. Spaces, including no-break spaces, between digit groups are ignored.

Common percentage change mistakes

Common percentage change mistakes
MistakeWhat goes wrongWhat the calculator does
Dividing by the final value80 to 100 gives 20% instead of 25%Always divides by the initial value
Dropping the signA fall from 80 to 68 reported as "15%", read as a riseLabels the result as an increase or decrease, with sign
Adding successive changes+20% then −10% read as +10%; the true net is +8%Multiplies the factors
Undoing a change with the same percentA −50% fall needs a +100% rise to recover, not +50%Shows the base used, so the reverse can be checked
Mixing sign conventions on a negative start−50 to −25 reads +50% by the absolute-start rule and −50% by the signed-start ruleDivides by the absolute value and states the convention
Starting from zeroDivision by zero, or a meaningless infinite percentageRefuses with a message and shows the absolute change
Reading points as percent40% to 50% called a 10% rise; it is 10 points, or 25% relativeLabels the result as relative change
Using change when neither value is the startThe answer depends on which number you type firstOffers the percentage difference mode
Rounding at each stepThe result drifts by a point or more over a chainRounds only the displayed result

Percentage change compared with related measures

Percentage change compared with related measures
MeasureFormulaBaseShows directionOrder matters
Percentage change(final − initial) ÷ abs(initial) × 100Initial valueYes, by signYes
Percentage increaseThe same formula, for rises onlyInitial valueAlways upYes
Percentage decrease(initial − final) ÷ initial × 100Initial valueAlways downYes
Percentage differenceabs(a − b) ÷ ((a + b) ÷ 2) × 100Average of the twoNoNo
Percent errorabs(measured − true) ÷ abs(true) × 100True valueNoYes
Percentage pointsnew rate − old rateNot applicableYes, by signYes

Percentage change is the umbrella measure. Increase and decrease are its two halves, difference is the version with no starting point, and percent error is the version where the starting point is a known true value. Pick by asking which number, if any, is the reference.

Frequently asked questions

How do I calculate percentage change?

Subtract the initial value from the final value, divide by the initial value and multiply by 100. From 80 to 68 that is −12 ÷ 80 × 100 = −15%.

How do I calculate percentage change between two numbers?

The formula is the same with the earlier number as the initial value. From 5 to 20 the change is +15, and 15 ÷ 5 = 3, so it is a 300% increase. From 20 to 10 the change is −10, and −10 ÷ 20 = −0.5, so it is a 50% decrease.

How do I calculate change in percentage?

If the two quantities are plain values, use the percentage change formula above. If both are already percentages, the raw gap is in percentage points: 40% to 46% is +6 points, which is a 15% relative change because 6 ÷ 40 = 0.15.

How do I multiply percentages?

Convert each to a decimal and multiply. 20% × 50% is 0.20 × 0.50 = 0.10, or 10%. For successive changes, multiply the growth factors instead: a 10% rise followed by another 10% rise is 1.10 × 1.10 = 1.21, a 21% total change.

How do you calculate percentage change in price?

Treat the old price as the initial value. A price falling from $50 to $44 is −$6, and −6 ÷ 50 = −12%.

How do I calculate year over year percentage change?

Subtract last year's figure from this year's, divide by last year's and multiply by 100. Revenue moving from 120,000 to 138,000 is +18,000, and 18,000 ÷ 120,000 = 15%.

How do you calculate percentage change in mass?

Use the same formula with the starting mass as the base. A sample falling from 250 g to 235 g changes by −15 g, and −15 ÷ 250 = −6%.