Price Change Calculator
Two questions shoppers and sellers keep meeting: "the price changed — by what percentage?" and "what did it cost before?" The first tool compares an old and a new price in both directions; the second runs a known increase or discount backwards to recover the original price. Below the form the notes work through why the two directions never match, why undoing a change means dividing rather than subtracting, and the everyday misreadings those two facts quietly produce.
Between two prices
Example: 80 → 100 is a 25% increase.
The price before a change
Example: 51 after 15% off (−15) was originally 60.
New to the mechanics? The companion guide Commission and discount arithmetic builds the price-change arithmetic up from the single multiplication at its core — alongside commissions, splits, and stacked discounts — on labelled fictional numbers, and sits in the full guides library beside the methodology page.
Percentages are one-way streets
A rise from 80 to 100 is 25%, but the return trip is -20% — both computed at build time by the engine behind the forms. The difference of 20 hasn't changed; the baseline has. This asymmetry is why undoing a move takes a different percentage than the move itself — the doubling from 50 to 100 is a 100% rise, yet only a 50% cut brings it back — and why comparing two price changes only works when they're measured from the same direction.
The mechanism is exact, not a rule of thumb. Going up, the engine divides the 20 difference by the old price of 80; coming down, it divides the identical 20 by the new price of 100. Same numerator, larger denominator, smaller percentage. The forward figure and the reverse figure are therefore never each other's negatives, which is why the tool prints both at once instead of asking you to flip a sign. The only time they agree is at zero: when nothing moved, there is nothing to divide and both directions read 0%.
The whole picture in one table
Hold a single old price of 50 steady and let the new price sweep across it. Every figure below is computed at build time by the same price-change engine behind the form — the forward change (old → new) and the reverse change (new → old) for each landing point:
| New price | Difference | Change (old → new) | Reverse (new → old) | Direction |
|---|---|---|---|---|
| 40 | -10 | -20% | 25% | decrease |
| 45 | -5 | -10% | 11.11% | decrease |
| 50 | 0 | 0% | 0% | no-change |
| 60 | 10 | 20% | -16.67% | increase |
| 75 | 25 | 50% | -33.33% | increase |
| 100 | 50 | 100% | -50% | increase |
Read the two middle columns across any row and the asymmetry is impossible to miss. A climb to 100 is a 100% change, yet the fall back to 50 is only 50% — a doubling undone by a halving. A climb to 75 reads +50% forward but the return is a 33.33% cut. Each equal step up in the new price produces a larger forward percentage but an ever-shallower reverse one, because the reverse direction keeps dividing by a bigger number. The row where the new price equals the old is the hinge: the difference is 0, both percentages vanish, and the engine labels the direction "no-change".
Recovering the price before
To undo a percentage change you divide by the growth factor: original = current ÷ (1 + change ÷ 100). The sale tag reading 51 after 15% off reverses to 60, and the discount was worth 9 — not 15% of the sale price. The same division handles increases: it answers "what was the bill before the 8% rise?", which is how you check whether the quoted percentage matches the money actually added. For finding a sale price from a known discount (the forward direction), the discount calculator is the tool, and a package that shrank instead of repricing is a job for the unit price calculator.
Division is the whole point, and subtracting the percentage back is the reliable way to get it wrong. Take a 240 bill raised by 8%: the forward tool lands it at 259.2. Reversing that with the stated 8% divides it back to exactly 240. But "take 8% off the new bill" instead multiplies 259.2 by (1 − 8 ÷ 100) and stops at 238.46 — short of the true original by 1.54, because the 8% was charged on the smaller 240, not the larger 259.2. The gap looks trivial on one bill and compounds into real money across a column of them, which is why the reverse tool always divides rather than subtracts.
Why two changes don't simply add
Stacking percentage changes multiplies the growth factors; it does not sum the percentages. A price of 100 raised 10% becomes 110, and a second 10% acts on that larger figure, ending at 121 — a total change of 21%, not 20%. The extra point is the 10% that the second rise charged on the first rise's 10. Undoing both at once means dividing the finish by the combined growth factor, not peeling off 10% twice: reversing 121 by the full 21% returns it cleanly to 100. The same compounding runs in the other direction, which is why two stacked discounts always save less than their headline sum, and why a sequence of small changes can never be audited by adding the percentages on the labels.
What the engine labels, and what it refuses
Alongside the two percentages, every comparison carries an explicit direction — one of increase, decrease, or no-change — fixed purely by the sign of the difference, so the label and the figures can never drift apart. Equal prices are reported as a no-change with a difference of 0 rather than massaged into a tiny percentage. The tool also declines the operations that have no honest answer: both prices must be greater than zero, and the reverse tool requires the applied change to exceed −100%, since at or below a full markdown no positive original price could have produced the current one. In those cases the engine returns a plain, readable message instead of an infinity or a negative price — the same discipline the methodology page describes for every undefined operation across the site.
The misreadings this page exists to catch
- Subtracting instead of dividing. Taking the quoted percentage back off the new price undershoots the original, as the 240 bill above shows; the reverse direction divides by the growth factor every time.
- Treating a rise and its reversal as equal. "Prices rose 25%, so a 25% cut restores them" is false: the example's 25% rise needs only a 20% cut to undo, because the cut works on the larger figure.
- Comparing two changes from different baselines. A forward percentage and a reverse percentage are not on the same scale; line changes up only when all are measured in the same direction from the same kind of starting point.
- Adding stacked percentages. Two 10% rises are 21%, not 20%; percentages stacked on a moving base compound rather than sum.
When you just need the math
Percentage change isn't only about prices. For the abstract versions — what percent X is of Y, changes between any two quantities, adding a percentage to a number — the same engine arithmetic handles the general cases; this page stays focused on price tags, bills, and the trick questions they generate.
Frequently asked questions
A price went from 80 to 100. Why is that +25% but the way back -20%?
Each direction measures against its own starting price. Going up, the 20 difference is compared with 80 (+25%); coming down, the same 20 is compared with 100 (-20%). Same money, different baselines — which is why "prices rose 25%, so they'd have to fall 25% to recover" is wrong.
An item costs 51 after 15% off. What did it cost before?
Divide by the remaining fraction: 51 ÷ (1 − 15 ÷ 100) = 60. Adding 15% back onto 51 gives 58.65 — short of the truth, because the discount was 15% of the original 60, not 15% of 51. The "price before the change" tool does this division for any percentage.
How do I undo a price increase?
Same principle, upward: divide the new price by (1 + increase ÷ 100). A bill of 259.2 after an 8% increase started at 259.2 ÷ (1 + 8 ÷ 100) = 240. Subtracting 8% of the new bill instead would land below the true original.
The price rose 10% twice. Is that 20% overall?
Slightly more — increases compound. 100 rises to 110, and the second 10% acts on that larger figure, ending at 121: a 21% total increase. The same effect in the other direction is why stacked discounts save less than their sum.
Is this the same as the percentage calculator's change mode?
The underlying arithmetic is, and for abstract before-and-after numbers that page is the general tool. This one is built for prices specifically: it reports both directions at once and adds the reversal mode for recovering pre-increase and pre-discount prices.
If a price doubles, why does undoing it take a smaller percentage cut than the rise that caused it?
Each direction is measured against its own baseline. Going up, the 50 rise is compared with the 50 start (+100%); coming back down, the identical 50 is compared with the larger 100, so it is only 50% of it. A bigger baseline turns the same money into a smaller percentage — which is exactly why a doubling and a halving are one move described two ways.
What does the calculator report when the old and new prices are identical?
It reports a 0% change in both directions and labels the direction "no-change". The label is decided by the sign of the difference — 0 here — so the word and the number can never contradict each other.
Can I enter a negative price, or undo a 100% markdown, in the reverse tool?
No. Both prices in the comparison must be greater than zero, and the reverse tool needs the applied change to be greater than −100%. At exactly −100% the price would have fallen to zero, and no positive original price can divide back out of that — original = current ÷ (1 + change ÷ 100) has nothing to divide by. Outside those limits the engine returns a plain message rather than an infinity or a negative price.
All calculations run locally; no prices are transmitted or stored. The change and reversal formulas are tested, typed functions — display rounding is documented on the methodology page.