views:

40

answers:

2

I've got a WinForms client-server app that displays various offers in a list. Every user (client) has a "rating". An offer consists of various data including a minimum and maximum rating. If a user's rating does not fall in that interval, he should not be able to take the offer.

Of course I could just perform some server filtering and send a list of offers prefiltered for each user to the client application. But that would surely, and rightfully, lead to confused requests "Why isn't this offer showing up? I know it exists, it shows up on [other user]'s screen."

How should I handle this? My favorite solution so far is to grey out the offer and add a tooltip "You can't take this offer because your rating is too high/low" while displaying greyed-out offers at the bottom of the list to leave the actually valid offers easily visible on top of the list.

+2  A: 

That sounds like a good way to do it.

As a slight improvement, if it makes sense for your application, you might consider including the actual numbers in the tooltip, e.g.:

This offer requires a rating between 5 and 8. Your rating is 4.

Thomas
+1  A: 

A disabled option tells the user:

  • The action is possible.

  • Just not right now.

  • But the user can make it possible.

Unless there is some simple action the user can do to change his or her rating (e.g., by selecting some other controls in the same window), do not use disabling and do not show the offers. Disabling may confuse some users who will then hunt around the window for something to do to enable those offers. It’s a great idea to use a tooltip to explain disabled objects, but that’s not a standard and not all users will think to hover the mouse over a disabled option (Why should they? It’s disabled).

Including offers users can’t have, even when disabled, clutters your display, forces more scrolling, and distracts the users from the offers you actually want them to consider. Furthermore, showing unavailable offers can come across as taunting (“ha, ha, your rating isn’t high enough”) and may diminished the perceived value of the available offers by comparison, resulting in lower user satisfaction.

It seems unlikely to me that users are going to go around comparing the offers on their windows, but maybe you have user research saying they do. In any case, you should label the list of offers to make the criteria clear (e.g., “Offers available at your rating” may be sufficient).

If you want to encourage users to increase their ratings, then maybe include something advertising the benefits of an improved rating. For example you could have a link "-Improve your rating- by four points and get -five additional offers-." The first -link- tells users how to improve their rating, while the second lists the offers as a motivator. The latter link should only be there if the offers will still be available if the user actually succeeds in getting four more points.

Michael Zuschlag
First of all, very nice link and also a very nice explanation. In my case, increasing the rating is a good thing but usually results in less offers. Also, often users create an offer (they can do that) specifically for another user and may set the rating bounds wrongly by accident. In that case, the target user will be confused because he can't find the offer that he was told got created. How would you deal with this situation?
mafutrct
Hmm. Can you prevent the error at the origin? Maybe if the offer-creating user selects Make Offer to Specific User(s), then the offer is designated to appear available to the target users irrespective of the users’ rating, thus making the error impossible. If you don’t have a feature that allows creating users to specify target users, maybe you need to make one, since that’s one way users are using the product.
Michael Zuschlag
That's a good advice. That you very much for your answer and the insight!
mafutrct