origin-js icon indicating copy to clipboard operation
origin-js copied to clipboard

Remove conditional around commissions payout

Open jordajm opened this issue 7 years ago • 6 comments

Checklist:

  • [x] Ensure all new and existing tests pass

Description:

I went through the commissions-related logic in origin-js and I think it's all there and it makes sense except for this one conditional that only allowed commissions to be paid to an affiliate if the buyer finalizes the transaction, but the commissions payment wouldn't happen if the seller finalizes the transaction.

The seller can only finalize the transaction if the dispute window has passed without a dispute being brought, so I think the affiliate should be paid in either case, whether the buyer or the seller finalizes the transaction.

Does that make sense to you @nick @tyleryasaka @micahalcorn @franckc @cuongdo ?

jordajm avatar Sep 08 '18 05:09 jordajm

I think this needs input from @matthewliu as it's removing a key incentive for marketplace dapps to get buyers to finalize early. If a marketplace dapp will only get paid their commission if the buyer is the one to finalize then they will try hard to make that happen with reminders and notifications. If they get paid their commission regardless, that incentive wont be there which could lead to less buyers finalizing and more sellers having to either initiate a dispute or wait for the finalization window to pass, which could cause resentment and less willingness to use the platform.

Note that if the transaction goes to dispute then the arbitrator decides whether the commission is paid or not

nick avatar Sep 08 '18 14:09 nick

@nick does an affiliate not deserve the earned commission if the seller is the one to finalize (in the case of an expired finalization window)? A transaction was still consummated and they brought the two parties together. Would you feel differently about this if we ended up going with shorter finalization windows? I think that @matthewliu and I would lean toward approving this PR. It's not particularly relevant for v1 if we're going with super long finalization windows, but it would be best to include the change now if we're going to want it in the future.

micahalcorn avatar Sep 12 '18 14:09 micahalcorn

@micahalcorn the way I think of it, the commission is not only to incentivize partner dapps to find buyers, but also to get buyers to finalize. The buyer being the one to finalize is important for sellers to have a good experience with the platform. If sellers have to wait for a finalization windows to pass, or raise a dispute every time they sell something, they might decide it's not worth the effort to use our platform.

In order to incentivize third party dapps to get buyers to finalize, there needs to be a financial incentive. Financial incentives are the only way to ensure a certain type of desired behavior (ie buyer finalizing) actually happens. By leaving this incentive in, we're essentially saying to partner dapps "you only get paid your commission if you find a buyer and get them to finalize". If they only needed to do the first part, we'd probably never get a buyer finalizing as what's in it for them, apart from lost gas?

How the partner dapp actually gets the buyer to finalize is up to them. I can foresee them offering part of their commission back to the buyer as something akin to reward points. Or perhaps giving buyers a bad reputation if they don't finalize (kind of like how Airbnb shows a response rate to incentivize hosts to reply to messages).

For v1 I think this is a non-issue as, due to the long finalization window, the only way for sellers to get paid if the buyer doesn't finalize is to start a dispute and in that case the arbitrator decides whether to pay the commission or not. So for v1 the arbitrator can always decide to pay the commission.

Longer term, though, I think it's important to keep this incentive as is.

nick avatar Sep 12 '18 15:09 nick

I had a conversation with @micahalcorn about this earlier and asked him to pass my viewpoints. Conceptually I think it’s weird that we would require a buyer to actually press a button before a sale is finalized. This will be the dominant form in v1 but over time we’ll want to remove that explicit action (at least in some scenarios). If we allow seller or DApp finalizations (and I think we absolutely will at some point) beyond arbiter finalizations, then we will need the PR.

I agree with you that we need to incentivize DApps to encourage buyers (but also sellers to be timely, honest, and reputable). I don’t think we should make the assumption at this point that the commission is the only lever we have though. We should also build a broad toolset (e.g notifications/reminders) that makes it trivially easy for DApps and users to use.

On Wed, Sep 12, 2018 at 11:02 PM Nick Poulden [email protected] wrote:

@micahalcorn https://github.com/micahalcorn the way I think of it, the commission is not only to incentivize partner dapps to find buyers, but also to get buyers to finalize. The buyer being the one to finalize is important for sellers to have a good experience with the platform. If sellers have to wait for a finalization windows to pass, or raise a dispute every time they sell something, they might decide it's not worth the effort to use our platform.

In order to incentivize third party dapps to get buyers to finalize, there needs to be a financial incentive. Financial incentives are the only way to ensure a certain type of desired behavior (ie buyer finalizing) actually happens. By leaving this incentive in, we're essentially saying to partner dapps "you only get paid your commission if you find a buyer and get them to finalize". If they only needed to do the first part, we'd probably never get a buyer finalizing as what's in it for them, apart from lost gas?

How the partner dapp actually gets the buyer to finalize is up to them. I can foresee them offering part of their commission back to the buyer as something akin to reward points. Or perhaps giving buyers a bad reputation if they don't finalize (kind of like how Airbnb shows a response rate to incentivize hosts to reply to messages).

For v1 I think this is a non-issue as, due to the long finalization window, the only way for sellers to get paid if the buyer doesn't finalize is to start a dispute and in that case the arbitrator decides whether to pay the commission or not. So for v1 the arbitrator can always decide to pay the commission.

Longer term, though, I think it's important to keep this incentive as is.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/OriginProtocol/origin-js/pull/427#issuecomment-420681683, or mute the thread https://github.com/notifications/unsubscribe-auth/AEuxN8UabPXipNEriznnKA3Gb--ZZTzyks5uaSHwgaJpZM4WfvD5 .

-- Cofounder of Origin http://www.originprotocol.com

Join our Telegram http://t.me/originprotocol

matthewliu avatar Sep 12 '18 15:09 matthewliu

I'm interested to understand what it is about a blockchain-based marketplace that makes it necessary for a buyer to do anything after they click the "buy" button when this is not necessary on traditional marketplace platforms like Amazon.

To me, this is a friction point that will need to be addressed either now or in the future because it makes it harder and more time consuming for a buyer to use an Origin platform than any centralized marketplace.

Sorry if I'm out of the loop on convos you all have been having, but I don't understand the reasoning behind these decisions:

  1. force buyers to manually finalize
  2. have a very long finalization window for v1

jordajm avatar Sep 12 '18 15:09 jordajm

@matthewliu agree that partner dapps should use notifications and reminders to get buyers to finalize. But if there's no financial incentive, why would they want to bother their users with annoying reminders? If buyers are their bread and butter, partner dapps will want to keep them happy at all costs. They won't care if the buyer finalizes or not... which will be an issue for sellers as they won't get paid in a timely manner.

Getting the buyer to finalize is a pain, I agree. However, due to the nature of the blockchain and the fact that there are no refunds or chargebacks, it's important for the buyer to indicate "I'm happy with the transaction, I agree to no refunds" (aka finalizing) as after that there's no going back. This is fundamentally different to existing marketplaces when you can usually get a refund if you're not happy.

@jordajm there's nothing forcing buyers to finalize in the current contract... it's just good for the seller if they do. We need happy buyers and happy sellers for a well functioning marketplace. The long finalization window was discussed in #365, but the gist was that we'd just leave unpaid sellers as a problem for the arbitrator in v1. If we want to make the window shorter we can do so without changing the contracts, however.

nick avatar Sep 12 '18 15:09 nick