# Displaying percentage difference from zero

I need to display the difference in percentage from the old value with the new one. I got the formula and it's working except I don't know what I should display if one if the value is zero and the other isn't.

If the initial value is 1 and the new value is 10 the difference is 900%
If the initial value is 0 and the new value is 10 the difference is ???

I also have limited real estate to write.
I was thinking of writting INF% but that doesn't feel user frendly.

• The difference is +∞% – user11153 Jul 9 '14 at 8:28
• I think that going from 1 to 10 is 1000% change, not 900%. IIRC you should be multiplying, not adding the percentage. – jnovacho Jul 9 '14 at 10:00
• @jnovacho `(10-1)/(1) = 9 = 900%`, using the OP's formula. You subtract the values in the numerator (percent difference). The value in the denominator is a bit sticky; see my answer for more details. – apnorton Jul 9 '14 at 13:09

If you don't want to leave off the percentage, then what you show depends on your data.

If your data constantly fluctuates between 0 and 1 or similar small numbers, showing the increase as 1,000% is misleading. In the same way, values that are often in the millions with a sudden 0 value only showing a 100% decrease may not be helpful.

Mathematically, no percentage is correct, so you can say whatever you want. But choose something that will be of value to the user and help them interpret what's going on. If 0 is a frequent and acceptable state, I'd recommend not drawing too much attention to it with large percentages. On the other hand, if 0 is bad, wrong, or otherwise represents an unexpected spike in the data, showing an abnormally large percentage can help draw attention to it.

It might be a good idea to provide the percentage as additional information if applicable, and display the absolute changes instead, e.g.

+9 (900%)

but then leave it out if not applicable

+10

This way a user recognises that there was a change and also gets an impression on how much has changed relative to the previous number.

• looks good to me - though normally, new value and percentage increment seems better: `10 (+900%)` and coming from 0, simply `10` – peterchen Jul 8 '14 at 14:49
• I second @peterchen's comment. I would however use a green-up/red-down triangle to show the percentage difference, rather than the sign. Much like on financial tickers. – Griffin Jul 8 '14 at 17:24

Percent difference, in many scientific fields, is computed based on the following formula:

``````              (Amount final) - (Amount initial)
%diff =  ------------------------------------------- x 100%
AverageOf(Amount final, Amount initial)
``````

(If `Amount final` is equal to `Amount initial`, then the percent difference should be given as `0`. This needs to be handled with an `if/else` block, not with just the formula above.)

Assuming all of your quantities are positive, this removes the problem that your have.

"Why do we use this formula?" you may ask. The answer to this varies based on the field in question. One of the best explanations I've heard is that "percent difference" is ambiguous if we simply divide by either the final or the initial amount, instead of the average. The "averaging" method provides the same result if you go from `0` to `10` or from `10` to `0`. In many cases, this is better than an asymmetric result.

tl;dr: The definition of percent difference may not be as clear-cut as you think. The formula used in certain scientific fields (I've seen it in physics and economics) completely avoids the problem of "percent from 0," assuming all measured quantities are positive.

• That's a reasonable for percent difference - it's symmetric, perfect for values that are exchangable. Unfortunately, it does not match the user expectaions for an increase, with a "before" and "after" value. – peterchen Jul 9 '14 at 7:24
• @peterchen could you explain a little more? The OP asked specifically for a "percent difference," so that's what I gave him. I think it is even more user intuitive, that a change from `9` to `10` would give the same percent difference as from `10` to `9`. That may just be personal opinion, though. – apnorton Jul 9 '14 at 13:07
• sorry, my bad - @msparer's reply (with the +X%) got me side tracked. I'm not certain though that OP and their users are aware of that difference; for general use the "correct" difference could be confusing. – peterchen Jul 10 '14 at 7:31