Web: Granular Pricing Engine: Update the funding pricing section with an hours estimation input

Created on 4 Sep 2018  ·  58Comments  ·  Source: gitcoinco/web

User Story

As a funder, I would like an updated variable pricing scheme on how to price my issue on Gitcoin based on a calculation of hourly rates and its derived success rate. In order for this to work, we need to add an input field for hours estimation to the pricing section of the funder page.

Why Is this Needed

Currently, funders can price the issue based on the total price, but that doesn't give any other information on whether or not that hourly rate is sufficient for their issue to get completed. Adding an input field for hours estimation allows for an hourly rate calculation, which translates to a predicted bounty success rate.

Current Behavior

Currently on the pricing section of the funder page, when the funder types in the total price paid out for the issue, a pop up below tells them what the bounty hunter would earn at a $40/$80/$120 rate, but that doesn't translate meaningfully to whether or not the funder should increase or decrease the price.

As an example to help you understand what this means, let's say I'm funding a beginner bounty on a feature improvement that would take several hours to complete. If I fund it with 1 ETH, it's about $300 bucks - the pop up rates tell me it's 7 hrs @ $40 (69% success rate), 4 hrs @ $80 (83% success rate),or 2 hrs @ $120 (95% success rate). If instead I fund it with 2 ETH, the success rates stay the same, but the hourly rates change(7 to 14, 4 to 7, 2 to 5, respectively). The problem is that changing the price changes the hourly rate estimations, not the success rates. The funder still has to do alot of mental math and read the Medium article to get to a recommendation on whether they should increase or decrease the pricing bracket.

screen shot 2018-08-28 at 09 51 52

screen shot 2018-08-28 at 12 23 07

Background & Analytics

Based on Gitcoin data, an analysis was done that yielded a relationship:

(0.002 x Hourly Rate) + 0.65 = Predicted Success Rate

This gives us the ability to estimate success percentages by the hourly rate, at the granularity of a dollar (for every $ increase, we have a 0.2% percentage point increase in success rate).

Suggested Solution

We want to add an "estimated hours" input field to the funder page (example below):

screen shot 2018-08-28 at 09 51 52 3

Definition of Done

  1. Add an "estimated hours" input field to the pricing section of the funder form.

  2. Design an intuitive layout of the elements and how they appear to ensure that the relationship between the USD input and hours estimated input is clear (for example, make it obvious that 1 ETH = $289 USD divided by 6 estimated hours = an hourly rate of $48/hour, which correlates to a 75% success rate).

Elements to consider:

  • Denominations input:

screen shot 2018-09-04 at 12 03 19

  • Amount input:

screen shot 2018-09-04 at 12 03 30

  • USD input and where it appears when the denominations input and the amount input are valid:

screen shot 2018-09-04 at 12 03 34

  • Hours estimation input

  • Pricing guideline input and where it appears when the denominations input, amount input, USD input, and hours estimation input are valid:

screen shot 2018-09-04 at 12 03 41

Gitcoin Funder Form enhancement low

Most helpful comment

Hi! @frankchen07 It will take me less than 3 hours and I would be able to do it this weekend. So next Monday this should be done and PR.

All 58 comments

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


__This issue now has a funding of 0.17 ETH (44.1 USD @ $259.43/ETH) attached to it.__

💰 A crowdfund contribution worth 75.00000 DAI (75.0 USD @ $1.0/DAI) has been attached to this funded issue from @vs77bb.💰

Want to chip in also? Add your own contribution here.

I consider this tasks for the work:

  • Design layout. Mockup mobile and desktop. Due date: 10th of September.
  • If the design is approved, implement it and PR. Due date: 17th of September

If needed I could make it in fewer days.

@pmaojo yeah ! go ahead and submit out a PR
This issue does not need an approval from the funder as it's a permissionless bounty!
Looking foward to the PR :D

@pmaojo - thanks for picking this up! We're looking forward to your initial designs!

@pmaojo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] warning (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

Yes. I am working on the issue and will upload here the design on the date I fixed, before end of
tomorrow 10th of september. 👍 @gitcoinbot

Hi. @frankchen07 @thelostone-mc @PixelantDesign

mobile
desktop

What do you think of this layout? is it ok?

CC @PixelantDesign on the above for her thoughts on design ^

Looking good @pmaojo.

We probably don't need the header that says Budget since we aren't planning a budget here.
Could you show these in context of the rest of the funder form?

captura-de-pantalla-2018-09-11-23 58 12
@PixelantDesign

"Enter values to know the probability of success", is this the best way to say that in English?

"Enter the above values to estimate success probability"

Thanks for asking @pmaojo!

I look forward a response to start coding

@pmaojo What response are you looking for us to begin coding? I think it looks good, with the slight update in text above.

Please do make sure to re-use components / styling to match what's already in the funder form!

ok!

Sounds good @pmaojo can you let us know when this is ready for review? cc @mbeacom @thelostone-mc @SaptakS @frankchen07

Hi! I will finish it today.

I think that using Vue on this form would provide better UX with real-time update while user changes or types values

hi! @mbeacom @thelostone-mc @SaptakS @frankchen07 @vs77bb
I had a problem today with a project and could not close this today. I will tomorrow, it's almost finished. https://github.com/gitcoinco/web/pull/2224/commits

back from holiday - thanks for picking this up @pmaojo!

The initial mockups look good. I would add the comment that we don't necessarily need the quote "estimating success probability" - the metric should pop up once all the fields are filled, and the fields must be mandatory for the user to continue. It's similar to how the funder form operates right now (metrics don't pop until they fill in the information, and once they do, the metrics or the links they can can click on appear (check it out on the funder form)

Also, not sure if it's a typo, but there's a comma instead of a period for 0.001 in the mock up.

I don't know much about Vue, it seems like it's just a declarative method of generating data onto a DOM, which sounds like it could be advantageous for real-time updates, but a little bit out of my wheelhouse to comment on. Would love to learn what @PixelantDesign thinks of this?

back from holiday - thanks for picking this up @pmaojo!

Hello!
The initial mockups look good. I would add the comment that we don't necessarily need the quote "estimating success probability" - the metric should pop up once all the fields are filled, and the fields must be mandatory for the user to continue. It's similar to how the funder form operates right now (metrics don't pop until they fill in the information, and once they do, the metrics or the links they can can click on appear (check it out on the funder form

ok!
Also, not sure if it's a typo, but there's a comma instead of a period for 0.001 in the mock up.

Right. I really won't change texts or number formatting. In Spanish, decimals are expressed with comma

I don't know much about Vue, it seems like it's just a declarative method of generating data onto a DOM, which sounds like it could be advantageous for real-time updates, but a little bit out of my wheelhouse to comment on. Would love to learn what @PixelantDesign thinks of this?

Yes, its cool to make bindings, while you type, and it could be used in the form. It could be used just in the new funding form and each part of the form can be migrated progressively to independent components if the first experience was good.

Right. I really won't change texts or number formatting. In Spanish, decimals are expressed with comma

Ah yes, you are correct.

@PixelantDesign - what do you think of Vue and how does it currently incorporate with the frameworks we're using now ?

@pmaojo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] warning (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@frankchen07 As of right now, we have been discussing potentially moving forward with React, but don't plan on making the transition in the near future.

@pmaojo You should be able to achieve similar results by following the current form flow throughout the codebase without introducing Vue. Feel free to ping me or @SaptakS if you have any questions.

I just didn't get time to finish this but I want to. I have to do it in spare time and it's been impossible. You can run my fork to watch the state of this work. https://github.com/pmaojo/web

@mbeacom yes, what I'm doing is editing the existing function, no problem on that. The same result (binding instead on blur or focus out) would have to be implemented, and that is out of the definition of done on this issue.

Thanks for the heads up @pmaojo! Do you have an estimate on how many hours you might be able to work on this per week? That will help us estimate a reasonable check-in schedule.

Hi! @frankchen07 It will take me less than 3 hours and I would be able to do it this weekend. So next Monday this should be done and PR.

looking good! I agree with @mbeacom on the framework approach.

Finally, while my mockup represented a disabled field, I wanted to edit the less code possible and its working all the same with the new math operations. https://github.com/gitcoinco/web/pull/2224

@frankchen07 @vs77bb ➡️ #2224

I am trying to submit work but transactions seem to never start. I configured more gas than recommended but still not working, nothing on etherscan.

@pmaojo - what gas price did you use?

@frankchen07 - Last time 70

@pmaojo You'll have to make sure your first transaction gets through... that might be holding up all other tx's you're trying to make. Can you increase the gas price on the oldest transaction you have?

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


__Work for 0.17 ETH (30.21 USD @ $177.73/ETH) has been submitted by__:

  1. @pmaojo
  2. @pmaojo
  3. @pmaojo
  4. @pmaojo
  5. @pmaojo
  6. @nanspro

@frankchen07 please take a look at the submitted work:

  • PR by @nanspro
  • PR by @pmaojo
  • PR by @pmaojo
  • PR by @pmaojo
  • PR by @pmaojo
  • PR by @pmaojo

@vs77bb I found that Metamask extension Chrome is not working for me, but Firefox does.

^ @pmaojo - hm that's interesting about the Metamask extension.

Can you provide a video of the new front-end changes, and your interactions with them? You can use Quicktime to capture your desktop. If you're unable to do this, then screenshots are okay, but ideally a video would be helpful :)

This will help us see:

  1. The new layout.
  2. What happens when we first enter in a USD amount, and what happens if we change that (the correct token denomination appears and changes with modification of the USD amount).
  3. What happens when we first enter a token amount, and what happens if we change that (the correct USD denomination appears and changes with modification of the token amount).
  4. What happens when we enter the estimated hours with all other fields being complete (hourly rate calculation pop-up).
  5. What happens when we enter the estimated hours with the other fields not being complete (no hourly rate calculation pop-up).
  6. What happens when we enter invalid entries in any form.

@frankchen07 of course. I'll record that video

Hi @pmaojo any update on the video? Keen to see this move forward 🙂

@frankchen07 @vs77bb I found an issue while recording the video , It looks as if there is a service to take the ethereum price that is not working when I run the docker image. I will fix it this weekend

Sounds good @pmaojo 👍

Hi. I still have this pending. I'm having some problems with an important project that keeps me too busy

@pmaojo - thanks for the updated communication. Appreciate it.

No problem - you'll get to it when you get to it. I'll do a reminder ping in a couple of days if you haven't looped around to it. If you have an estimate on when you'll have some time, do let us know!

I will not able to continue so I leave this bounty to others that can respond more efficiently. I was hired for a full-time job and won't have time.

I hope my work on this is worth to anyone that wants to go for it.

hey @pmaojo - thanks for jumping on the issue, and submitting work. I've tipped you for the work that you've already submitted, and hopefully someone can jump on, take the branch, and make a video / any other enhancements to get this issue closed out. Feel free to comment on any relevant details you think might help someone pick it up!

Current work in progress: https://github.com/gitcoinco/web/pull/2224

@nanspro Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@frankchen07 @owocki could you please review ?
Also the link for video showing tests running locally

@nanspro - thanks for the video and the hard work! It looks really nice. I love the "infinity" touch when we're changing the hours and don't have input. I have a couple of comments.

My rudimentary code review skills says the code looks okay, but definitely will let @owocki or another Gitcoin engineer do a double check.

I have a couple comments:

  1. Is it possible to change the "infinity" word to an infinity sign?

  2. For the title of "estimated hours" - I feel this might be too vague to a funder who is filling in the form. I would change the title to "Estimated Hours of Work", which is slightly more self-explanatory.

  3. This ticket is related to the backend setup as well (https://github.com/gitcoinco/web/issues/2117), and we want to make sure that the estimated hours of work field is mandatory so that we have this data to reference in the backend - that the funder can't leave the field blank and end up with a value of "$ infinity / hour". So, TLDR, I want to make sure that the field must be populated, and isn't left blank.

screenshot from 2018-11-19 22-02-27

@frankchen07 Done!!

Awesome thanks! Let me ping a Gitcoin engineer to check out the code.

Also, what does the up and down button do in the estimated hours of work?

screen shot 2018-11-19 at 08 52 45

Hours are natural numbers so this is a step icon to increase/decrease the hours by 1.

⚡️ A *Above And Beyond* Kudos has been sent to @nanspro for this issue from @frankchen07. ⚡️ The sender had the following public comments: > Great work on getting new price estimations out! Love it! Nice work @nanspro! Your Kudos has automatically been sent in the ETH address we have on file.

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


__The funding of 0.17 ETH (25.42 USD @ $149.53/ETH) (plus a crowdfund of 75.0 DAI worth 75.0 USD) attached to this issue has been approved & issued to @nanspro.__

Thanks to @vs77bb for their crowdfunded contributions to this bounty.

@frankchen07 @vs77bb i only received 0.17 ETH and i think this issue has crowdfund contribution worth 75 DAI!!

@nanspro - sorry about that. Let me ping @vs77bb directly on Slack and make sure that gets to you. Hold tight, hopefully he gets back to us before Thanksgiving hits.

Alternatively, if you'd like me to tip you out $75 in ETH (if for some reason you need the funds now), ping me here and I'll do that too.

Got it in DAI!!
Thanks @vs77bb :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

christianbundy picture christianbundy  ·  3Comments

IgorPerikov picture IgorPerikov  ·  3Comments

NukeManDan picture NukeManDan  ·  3Comments

kziemianek picture kziemianek  ·  3Comments

kziemianek picture kziemianek  ·  3Comments