24

I have to make an internal web-app for my company (with asp.net C# and Telerik). I have a grid with financial reporting inside with a simple KPI displaying the budget already used in percentage :

Delta = 1 - (Budget - Actuals) / Budget

But Budget is often equal to zero. And sometimes Actuals is also equal to zero. But default, my library display the result of X/0 with Infinity and the result of 0/0 with NaN. Here is an example of my grid :

enter image description here

I don't know what to think with this values... I don't think a zero is more appropriate because X/0 != 0.

Do you know what is the most relevant for the user ? I can't really ask the users, and I need to deliver this grid fast but I'd like to make something with a good UX.

8
  • 3
    FYI, Excel and Google sheets solve this issue by using the string #div/0, where #<error> represents a computational error.
    – Tyzoid
    Commented Aug 13, 2014 at 13:42
  • 7
    I think here you should just leave it blank if you have no useful output. Sure the delta is infinite but that's dumb and useless. Commented Aug 13, 2014 at 15:12
  • 1
    Not relevant to your question, but your units for the % delta fields should not be K€. Commented Aug 13, 2014 at 18:28
  • 4
    Just put a dash in the box.
    – Keavon
    Commented Aug 14, 2014 at 8:08
  • 1
    I had a similar question that could help you ux.stackexchange.com/questions/60902/…
    – the_lotus
    Commented Aug 14, 2014 at 14:38

10 Answers 10

63

You could try to use a short description of the actual cause, e.g. no budget

1
  • 1
    I like the idea of saying no budget or leaving it blank, as the point of the interface is to display relevant information, not follow convention.
    – Nathron
    Commented Aug 20, 2014 at 4:04
29

A common solution for table cells that are not available or applicable in certain situations (such as your %Δ for a budget of 0) is to use the placeholder text n/a (or N/A).

3
  • 4
    N/A is avery good solution, because it states that calculation is simly not possible, without bothering the user with the mathematical details.
    – Sanchises
    Commented Aug 13, 2014 at 18:31
  • N/A is a good solution, which most users should understand, even without a mathematical background or experience with spreadsheets.
    – Brian S
    Commented Aug 14, 2014 at 19:52
  • Exactly. The problem with the data is not that the calculation 0/0 is not possible, but simply that there is no meaningful result available.
    – Mr Lister
    Commented Aug 17, 2014 at 7:13
14

You could use an exclamation mark icon that shows a tooltip on hover to explain exactly, what it means and what is missing / what value is bad:

mockup

download bmml source – Wireframes created with Balsamiq Mockups

11

You might consider having a word with the users and ask what they think they should see, though be careful, their initial reaction might be 'zero', which is DEFINITELY not right in any mathematical sense.

I personally would leave the output blank, or perhaps use the term 'undefined'. If they really want to see a symbol, then I think you could safely put the infinity symbol (∞) there (it's not really right from a mathematical perspective, but it prevents them from thinking they can use the results in other calculations).

3
  • 2
    I agree on the ∞ symbol. Just yesterday on Google finance they showed the delta for three-month bonds as ∞% as it jumped from 0.00 to 0.01.
    – Mishax
    Commented Aug 13, 2014 at 12:32
  • 3
    Infinity would look very weird to me, since this has no useful value and looks like it may be reused in following calculations (for example, the collumn sum would be infinity, instead of having some values ignored). To me, it looks like you provide no data validation and just dump the calculation result, whether logical or not.
    – Sanchises
    Commented Aug 13, 2014 at 18:34
  • @DennisJaheruddin - actually, on reflection I think blank may not be a good idea - I'd worry that users would take that to mean that the software isn't working, resulting in irritation, or support calls, rather than the user figuring out that they've got a mathematics issue. Commented Aug 27, 2014 at 13:45
6

Most spreadsheets (OpenOffice Calc, Microsoft Office Excel, and Google Spreadsheet) will handle these cases displaying a non-blocking error akin to "division by zero": enter image description here

I think this is the best behaviour, because it does fill the field with something meaningful to the user, but at the same time it doesn't "stand out" too much and compromise the overall experience. As it was pointed out in the comments, perhaps you should choose something more descriptive than #DIV/0, something like Div. by zero maybe.

5
  • 8
    It is meaningful to the person writing the calculations for the spreadsheet and checking for errors, but #DIV/0 is not meaningful (and incomprehensible) to a non-techie user just reading and trying to understand the spreadsheet data.
    – IQAndreas
    Commented Aug 13, 2014 at 18:08
  • @IQAndreas right, perhaps something more verbose should be picked ("Div. by zero" maybe?). Commented Aug 13, 2014 at 18:12
  • @GiulioMuscarello I think the problem is that an end user cannot easily understand the reason for the error. There is no information which tells him that it is actually the budget which is causing the unavailability of the value.
    – ComFreek
    Commented Aug 13, 2014 at 19:15
  • 3
    @GiulioMuscarello Why should the user care that it's a division by zero? Commented Aug 14, 2014 at 8:28
  • @ComFreek, ArlaudPierre: I agree, I think the best answer is msparer's. Thanks! Commented Aug 14, 2014 at 10:23
3

From a user perspective, I would prefer a blank cell, if it is clear that this cell is computed by dividing Budget by actual. Background: Adding a long text adds a lot of noise to the grid, especially when no budgets are frequent. You might add a tooltip like excels blue green info mark, which shows "could not be computed, because the budget is zero"), but even that might be overkill, if all users are trained in the computations.

2

Either:

  1. Give a cause - a couple of words stating why the calculation cannot be made.
  2. Use an error string - as other have mentioned, take examples from Google sheets and Excel.
  3. Check the result - when you do the calculation, if the result is NaN or Infinity, display N/A instead.
  4. Add a help link - a small '(why?)' or '(learn more)' next to the error that gives the user a quick explanation of why the result isn't there. Yoh could also include a solution here.

Generally, just make sure the user knows what's going on with the cell.

1

I would use some small-styled text saying "DIV0" or "INF" / "∞", in a gray shaded box background with some negative space around that. It should look like an icon to show it's not a typed or calculated value like the rest. But the message can still be read clearly so that the relevance of the problem is apparent without having to understand some generic error icon.

0

Why can't you demo it to some of your users, and ask them to say what they think?

They are two different situations though, and a N/A may be confusing. Infinity is right for x/0 so long as x is not 0. Look at the graph of 1/x. As it gets closer to 0, the group explodes to infinity. As a limiting value, 0/0 is indeterminate meaning it can be anything. x/x approaches 1 as x gets closer to 0. x*x/x approaches 0 as x gets closer to 0. As a visual clue, infinity means you need to look at the source of the denominator of your calculation to see why it is 0. NaN (not a number) means you need to check both numerator, and denominator.

0

Where budget is zero and actuals is zero then the difference (delta) should be zero! There is no difference between 0 and 0.

Where budget is zero and actuals is high then the difference (delta) I think it looks great by stating 'Infinity %'. It is truthful, concise, meaningful, elegant, non-symbolic, not cryptic. Good framework, have a biscuit!

Where budget is high and actuals is zero then I agree with @CoDEmanX - I like the descriptive tooltip.

However, you may find that the best thing to do is realise that people would prefer these fields to simply be left blank - in both the circumstance where the framework wants to insert 'infinity' and 'NaN'. It is hard for humans to digest the concept of infinity and NaN especially next to the other, more palatable, information you are showing. They would grok out an understanding of why it was blank fairly quickly I think.

Nice looking framework by the way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.