Anveio / mturk-engine

A browser app that helps workers earn money more efficiently on Amazon's Mechanical Turk work platform.
MIT License
79 stars 23 forks source link

Feature Request: Wage Tracking #30

Open neocryptek opened 6 years ago

neocryptek commented 6 years ago

Issue summary

It would be nice if MTurk Engine could use its database of HITs + pay and some timing information to calculate hourly wage.

Expected behavior

When clicking on a day in the Account tab's database, it should show average hourly wage for that day based on $ amount received, and time worked that day. I don't know if Amazon provides how long a HIT took in its API, else probably need some sort of helper script to watch for form submits on HIT pages to send time back to MTurk Engine database? Bonus points if it could be displayed per HIT, but per day would be a great start.

Actual behavior

Only $ information is shown, as I assume timing information is not tracked or exposed by Amazon's APIs?

Steps to Reproduce the Problem

  1. Click Account tab
  2. Click a day
  3. Notice $ for the day displayed, but no $/hr calculation

Specifications

Anveio commented 6 years ago

Thanks for this suggestion @neocryptek. Hourly income tracking per day presents a few insurmountable challenges for now, so I won't be able to implement it in the foreseeable future.

I was thinking of a way for users to "clock in" and "clock out" to produce an hourly income for a session of work but without Mturk providing timestamps for when a HIT is submitted this kind of system would quickly become very inaccurate. For example, say you did a few HITs during lunch on your phone, and then in the evening clocked in right before remembering to refresh your database for the day. Hourly income for that day would be wildly inflated.

I'm not too familiar with the APIs that make it possible for different windows/tabs to communicate with each other but that seems to me like the purview of a browser extension. I suppose it might be possible to turn Mturk Engine into a browser extension but that would eat a lot of development time for little new functionality.

aesha-CORUS commented 6 years ago

Clock in/out sounds good.. since I often queue up multiple HITs which would skew results. Maybe on the queue page, or HIT page itself. (for those of us who really want to track it). Just clocking in once per session wouldnt work for people like me.

neocryptek commented 6 years ago

Probably won't be perfect, but I see other scripts using page load + submit button tracking. This way even if you add a bunch to your queue, it only counts the one you're actively working on (assuming you don't open multiple tabs at once).

Basically on load of the HIT page they add a start entry to a shared database, then on submit they add another stop entry. Match the two up and compare their timestamps and the $ amount. Tabs wouldn't need to talk to each other as long as everyone can talk to the same database (and concurrency issues aren't too annoying).

https://greasyfork.org/en/scripts/3211-mturk-wage-reporter https://greasyfork.org/en/scripts/31108-mturk-hourly https://greasyfork.org/en/scripts/4782-hit-timer-hit-wage-hr/code