bisq-network / bisq

A decentralized bitcoin exchange network
https://bisq.network
GNU Affero General Public License v3.0
4.69k stars 1.27k forks source link

Improve UI/UX for account aging column in 'Offers' section of GUI #4735

Closed pazza83 closed 3 years ago

pazza83 commented 3 years ago

Background

This post was made as a result of me advocating for account signing on a couple of conversations which does not seem to be popular for reasons of privacy, introducing additional times to access harder limits, and making it harder to establish a new payment methods.

Comments for reference:

https://github.com/bisq-network/proposals/issues/264#issuecomment-719141219 https://github.com/bisq-network/proposals/issues/243#issuecomment-719319033

Therefore instead of advocating for account signing I am making a proposal to introduce some of the UI/UX benefits of payment methods that require account signing to payment methods that do not require account signing.

Improve UI/UX for account aging in offers screen

Currently traders using payment methods that do not require signing are unable to see account age in the 'time since signing' column in the Offers Section.

Traders can see account ages by clicking the 'πŸ›ˆ' next to each trade for more information. However traders cannot see this information when looking at the offers section as a whole.

The text and iconography shown in the 'time since signing' section could also benefit from some tweaks. Personally I find the repeated use of the 'πŸ›ˆ' icon not helpful. I think the iconography would benefit from portraying the actual information it wants to communicated rather than showing a link to additional information.

Why is not being able to see account age a problem?

Not being able to see account age at a glance makes has the following problems:

Traders are unable to quickly use age of account in their risk analysis when buying / selling New users can be confused between risk analysis of payment methods that require signing vs those that do not New users will not be able to clearly see that the account they are trading with is brand new.

When determining who to trade with on a Fiat/BTC transfer I think a significant number of users will take into account account age. Therefore it would improve the usability if this was shown.

Why is text and iconography in the offer section a problem?

Iconography can help aid users to make quick decisions by helping users associate symbols with specific information. Iconography used to point out places where more information is available does not lead to quick decisions and makes it harder for users to differentiate between information.

Version

1.4.2

Steps to reproduce

In Bisq client go to 'Market' > Sell BTC In Bisq client go to 'Market' > Buy BTC

Expected behaviour

Traders using payment methods that do not require signing should be able to see the account age in the 'time since signing' column in the Offers Section.

Text and iconography in the offer section to help provide specific information to traders to quickly aid decision making

Actual behaviour of the 'time since signing' column

FP 1

For the screenshot above I choose to put a '0' day account age at the top of the column. In the current design users would be unable to see that the top offer for buying BTC was from an account that was created on the same day. This is currently a hinder to risk analysis.

Proposed behaviour of the 'time since signing' column

FP 2

For the screenshot above I choose to put a '0' day account age at the top of the column. In this proposed design users would be able to see that the top offer for buying BTC was from an account that was created on the same day day. This would improve risk analysis.

Actual behaviour vs Proposed behaviour for the text and iconography in the offer section, including mouse overs / pop ups.

Idea

Current situation:

Currently the text/ iconography tell traders when signed accounts have their limits lifted. Currently the text/ iconography do not tell traders when accounts that do not require signing have their limits lifted. Currently the 'πŸ›ˆ' is used multiple times to mean more info. Currently N/A is used to represent instances where payment methods are not required to be signed

Proposed situation:

NB: The ticks above where just chosen as I was looking for something simple in the Windings font. I am sure there could be a better icons to use to achieve the objective.

Negative impact of proposals?

Beneficial impact of proposals?

Payment methods affected by proposals?

ripcurlx commented 3 years ago

The only issue is see in this change is that we are mixing account age and time since signing in the same column.

If you select e.g. Faster payments as payment method the signed since column will be removed. In that case it wouldn't be a problem to replace it with an account age column using the information you mentioned above.

If no payment method is selected for a market and we have payment method with and without singing, we probably have to think about a different label for this column if we want to display different information in the same column. Maybe something like account info @m52go any ideas on that?

I'll check if I find good icons to indicate the three different states.

pazza83 commented 3 years ago

Yes, I agree mixing the account age and time since signing does create an issue around the labeling of the column.

I like your suggestion for it to be labeled account info

If all the information (age, time since signing, ability to sign etc) could be displayed in this one column that would improve user experience.

ghost commented 3 years ago

I am implementing this request and have some comments & suggestions for review @pazza83 :

We no longer need to display "No/Some/All limits lifted" since there is only ever one limit for aged accounts per https://github.com/bisq-network/proposals/issues/264#issuecomment-721223432 0.25 BTC per trade.

e.g. For payment methods not required to be signed 0-29 day old accounts to be given x 1 πŸ—Ή. Text to show This account type does not require signing and was created x days ago For payment methods not required to be signed 30-59 day old accounts to be given x 2 πŸ—Ή Text to show This account type does not require signing and was created x days ago For payment methods not required to be signed 60+ day old accounts to be given x 3 πŸ—Ή Text to show This account type does not require signing and was created x days ago

image

image

Note that with the 3 checkboxes, the row is a little fatter. more examples


For payment methods that do have signing but are still not yet signed, we can display the account age.

image


Clock icon (waiting for limits to be lifted)

image


Altcoins (no aging or signing)

image

image

pazza83 commented 3 years ago

Hi @jmacxx thanks for doing this and adding all the designs / info.

I think it looks great and improves the UX/UI and achieves all the benefits I was hoping for πŸ’―

My suggestion would be to see what it looks like with the iconography aligned left in the column followed by account info. Not sure if this would look better aesthetically? It might not? Either way the user experience is the same.

Also for the waiting for limits to be lifted maybe the text could be:

This account was verified and signed by a peer, waiting x days for limits to be lifted

This would make it consistent with the others. As this would cause the code to have to subtract x from 30 an alterative could be:

This account was verified and signed by a peer, x days ago. Waiting until 30 days for limits to be lifted

ripcurlx commented 3 years ago

image

image

Note that with the 3 checkboxes, the row is a little fatter. more examples

@jmacxx Thanks for picking this up! I'm not so sure about the checkbox stack. I think it would be good to find an icon or icon combinations that don't increase the height of the row.

I was thinking about something like this: Bildschirmfoto 2020-11-12 um 09 23 47

Or ticks in combination with a clock icon.

But I think there is nothing like that in the icon library we are using right now, so it would need to be added as an image icon with versions for light and dark mode.

ripcurlx commented 3 years ago

@jmacxx If you need access to icon libraries like https://fontawesome.com/. I do have a personal pro account and we are allowed to integrate any icon of them as long as we are not including the font itself.

ghost commented 3 years ago

I'm having second thoughts on the checkbox stack as well:

image

Its original purpose was to indicate the level of "limits lifted" for aged accounts like F2F or money order. But since the very recent removal of limits for aged accounts, it does not make sense any more.

I think having three stacked checkboxes now would actually confuse users in this case. Because there's no longer any meaning or difference indicated by the 1 .. 2 .. 3 checkboxes.

Do you agree @ripcurlx @pazza83 ?

ripcurlx commented 3 years ago

Yes, from the next release on account age is only an indication not a limitation anymore. So maybe just showing the account age should be sufficient.

pazza83 commented 3 years ago

@jmacxx

Yes, good point, I agree.

Would unsigned accounts show as 0 days until they were signed? Then on the day after they were signed they would start counting upwards from 1?

ghost commented 3 years ago

@pazza83 No worries, its just the aged accounts with the stacked checkboxes that were an issue. Accounts that feature signing will behave as described in your spec. I'll get updated screenshots to you ASAP.

ghost commented 3 years ago

@pazza83 screenshots:

  1. Waiting for limits to be lifted: image
  2. Not signed yet: image
  3. Aging account type: image
m52go commented 3 years ago

I wonder if including the term "verified" is a good idea...might give false sense of security since there isn't really any "verification" per se. Might be better to leave that term out and just saying the account was signed, i.e., for first screenshot: "This account was signed by a peer, waiting 27 days for limits to be lifted."

pazza83 commented 3 years ago

Hi @jmacxx thanks that make it easy to see.

I agree with @m52go I think the current test says verified but this can be removed and replaced with signed.

Seeing how it will be I still think it could be improved by using another icon for the account aging . I still think the 'πŸ›ˆ' is used to many times. Maybe a single tick πŸ—Ή can be used for accounts that to no require signing.

Not only this but the 'tick badge' implies less risk to the user. However really the account type requires signing because there is a small risk of chargeback. For an uniformed user like myself! I would assume the 'tick badge' to imply the account type was more less risk than the 'πŸ›ˆ' https://github.com/bisq-network/proposals/issues/264#issuecomment-719168483

I think it is better for the text to contain the reason the account type does not require signing, otherwise this leaves it open for the user, to potential ask 'why does this account not require signing?' All the discussion I have seen so far says an account does not require signing when it is unable to perform a chargeback so we should let users know this.

I would propose for accounts that do not require signing

Text to show 'This account was created x days ago. The risk of chargeback is extremely low'

eg

195 days πŸ—Ή 'This account was created 195 days ago. The risk of chargeback is extremely low' 0 days πŸ—Ή 'This account was created 0 days ago. The risk of chargeback is extremely low'

I would propose for accounts require signing

Text to show:

'This account was created x days ago and hasn't been signed yet. The risk of chargeback is low' 'This account was created x days ago, waiting x days for limits to be lifted. The risk of chargeback is very low.' 'This account was created x days ago and and was signed by a peer x days ago. The risk of chargeback is extremely low'

eg

195 days 'πŸ›ˆ' 'This account was created 195 days ago and hasn't been signed yet. The risk of chargeback is low' 195 days πŸ•œοΈŽ 'This account was created 195 days ago, waiting 27 days for limits to be lifted. The risk of chargeback is very low.' 195 days 'tick badge' 'This account was created 195 days ago was signed by a peer 193 days ago. The risk of chargeback is extremely low'

ghost commented 3 years ago

I understand it, but am not a big fan of the wording. The phrase this account type is unable to perform a chargeback sounds like it is conveying a problem. I like the original wording this account type does not require signing, but @m52go, do you have any suggestion here?

pazza83 commented 3 years ago

@jmacxx sorry I was editing my comment. Let me know your thoughts.

If account aging / signing is about managing a buyers risk then this is what should be communicated.

Knowing when limits will be lifted is really only of benefit to the seller not the buyer.

ghost commented 3 years ago

:+1: The new edited version looks much better but still needs refinement. The absolute statement there is no risk of chargeback contradicts elsewhere where we state "all bank transfers carry a certain amount of chargeback risk". That's what is shown to the user when creating an account that features aging, like Faster Payments.

pazza83 commented 3 years ago

Maybe for accounts that do no required signing it could be:

195 days πŸ—Ή 'This account was created 195 days ago. The risk of chargeback is extremely low'

That way both signed accounts (signed over 30 days) and accounts that do not require signing will show the same level of chargeback risk 'extremely low'

Edited above comment again to reflect this.

ghost commented 3 years ago

:+1: lets see what @m52go thinks.

m52go commented 3 years ago

I understand the desire to clarify chargeback risk, but I'm not sure we should do that.

Classifying risk as "low" and "very low" and "extremely low" seems ambiguous and perhaps even puts some liability on Bisq in the event a chargeback does occur ("well you said it was 'very low' but it still happened so...??").

This is the complexity I see in drawing conclusions about risk from signing status:

As a result, I suggest leaving out the chargeback assessments and just mentioning signing status.

Perceived safety may not be as clear in this way but I'm not sure if there is a way to accurately convey it without misrepresenting. People just need to understand what signing is, what it signifies, and why it's only applied to certain payment methods in certain markets.

pazza83 commented 3 years ago

Thanks @m52go that was all useful to know.

I understand the desire to clarify chargeback risk, but I'm not sure we should do that.

Thanks, I agree it does seem to put a negative impression of a potential trade.

  • Trading with a signed account simply makes it much more likely that you'll have a smooth experience. It might also make it much more unlikely that you will have a bad experience, but that is a different claim, and (in my opinion) not a wise one to make.

I agree trading with a signed account makes it much more likely that you'll have a smooth experience versus trading with an account that requires signing that is not yet signed.

However trading with a signed account will likely be just as a smooth experience versus trading with an account that does not require signing.

  • With that said, account signing is only applied to the most risky payment account types in the most active Bisq markets...so risky account types in less active markets don't require signing even though they're still risky.

Yes this is a good point. I had not considered that.

  • To twist things even further, there are also risky payment account types in active Bisq markets that don't require signing in order to bootstrap their liquidity (e.g. Australian PayID).

Thanks, I was not aware this was the case.

As a result, I suggest leaving out the chargeback assessments and just mentioning signing status.

Agreed.

Perceived safety may not be as clear in this way but I'm not sure if there is a way to accurately convey it without misrepresenting. People just need to understand what signing is, what it signifies, and why it's only applied to certain payment methods in certain markets.

Thanks I agree. I also this the perceived safety should not imply signed accounts are less risky than accounts that do not require signing. I think this can be fixed with the πŸ—Ή mark.

How about:

For accounts that do not require signing

Text to show 'This account was created x days ago, and does not require to be signed.'

eg

195 days πŸ—Ή 'This account was created 195 days ago, and does not require to be signed.' 0 days πŸ—Ή 'This account was created 0 days ago, and does not require to be signed.'

For accounts that require signing

Text to show:

'This account was created x days ago, and has not been signed yet.' 'This account was created x days ago, and is waiting x days for limits to be lifted.' 'This account was created x days ago, and was signed by a peer x days ago.'

eg

195 days 'πŸ›ˆ' 'This account was created 195 days ago, and has not been signed yet.' 195 days πŸ•œοΈŽ 'This account was created 195 days ago, and is waiting 27 days for limits to be lifted.' 195 days 'tick badge' 'This account was created 195 days ago, and was signed by a peer 193 days ago.'

ghost commented 3 years ago

This is what I am submitting as a code PR. I believe it meets the gist of your requirements: the iconography, the extra information in the popover wording, and the column rename.

For accounts that do not require signing

eg

195 days πŸ—Ή 'This account type does not require signing and was created 195 days ago' 0 days πŸ—Ή 'This account type does not require signing and was created 0 days ago'

For accounts that require signing

eg

195 days 'πŸ›ˆ' 'This account has not been signed yet and was created 195 days ago' 195 days πŸ•œοΈŽ 'This account was verified and signed by a peer, waiting 27 days for limits to be lifted' 195 days 'tick badge' 'This account was verified and signed by a peer and limits were lifted'

image

image

image

image

m52go commented 3 years ago

Thanks guys, I think this is better.

pazza83 commented 3 years ago

Many thanks that is great πŸ‘