← All Tools
Percentage Change Calculator🔒 100% local
Growth/decay percentages. Privacy-first, no server uploads, no tracking.
Related Tools
Takes one line of the form 'old, new' and prints a report: percent change with a direction word, the absolute change with its sign, the ratio as a multiplier, a reverse check and the formula with your numbers substituted. Both values go through parseFloat, and an old value of zero produces a paragraph about division by zero instead of a percentage.
How to use it
- Type the two values separated by a comma, old first - the box starts with '100, 150'.
- Press Process.
- Read Change, Absolute and Ratio, then Copy Output to take the whole block.
Worked example
100, 150becomesOld value: 100
New value: 150
Change: 50.00% (increase)
Absolute: +50
Ratio: 1.5000× (new = 1.50× old)
Reverse check: going from 150 back to 100 would be a -33.33% change
New is 150.00% of old
Formula: (new − old) ÷ |old| × 100 = (150 − 100) ÷ 100 × 100 = 50.00%250, 200becomesOld value: 250
New value: 200
Change: -20.00% (decrease)
Absolute: -50
Ratio: 0.8000× (new = 0.80× old)
Reverse check: going from 200 back to 250 would be a 25.00% change
New is 80.00% of old
Formula: (new − old) ÷ |old| × 100 = (200 − 250) ÷ 250 × 100 = -20.00%The sign stays on the Change line as -20.00% and the direction word reads 'decrease', while the Absolute line shows -50 and the ratio drops below 1.
0, 80becomesOld value: 0, New value: 80
Percentage change from 0 is undefined (division by zero).
Absolute change: 80
Relative to the new value: the value went from nothing to 80.Zero as the old value cannot be expressed as a percent change, so the tool reports the absolute change and says why instead of inventing a number.
When to use it
- Reporting a month-over-month or year-over-year move where you also want the multiplier a reader can apply to next quarter.
- Explaining a price change and showing the working, including the reverse direction someone will inevitably ask about.
- Sanity-checking a dashboard percentage when the sign or the magnitude looks wrong.
What it does not do
- The parser splits on every comma and uses only the first two values, so '100, 150, 999' returns exactly the same report as '100, 150'.
- An old value of zero has no percent change; the tool returns a short paragraph with the absolute change and stops rather than picking a convention such as treating it as infinite.
- Equal values give 0.00% with the direction 'no change', and the ratio line still reads 1.0000x - nothing switches to a special case.
- The reverse check divides by the new value, so reversing a 50% rise is a -33.33% change, not -50%. Both figures are right and people mix them up constantly.
- Parse-able but odd input is accepted: '1e3, 2e3' works because parseFloat reads exponent notation, and surrounding whitespace is trimmed, but a missing comma is an error rather than a guess.