The Problem
Recently i've noticed a lot of questions / confusion / misunderstandings around curation rewards. That's to be expected since the curation reward calculation is quite complex. Rather than me trying to explain how it works I'll refer everyone to this post by @miniature-tiger that does it much better than I ever could:
An Illustrated Guide to Curation
But even if you understand exactly how curation rewards work, it's still really difficult to have any idea what your reward might be if you vote on a particular post since it's not math that's easily done in one's head.
Enter the Curation Reward Estimation Tool!
Simply enter your Steem username (or anyone's username really) and enter the URL of a post or comment and hit the button and voila!
If you've already voted on the post then you can see an estimate of what your curation rewards will be and if you haven't already voted you can see an estimate of what they would be if you vote right now.
Additionally you can use the "Expected Total Payout" slider to estimate what your curation rewards will be based on different final payout values for the post. For example if you vote early on a post that you expect will end up with $50 in rewards, you can estimate what your curation reward payout will be in that scenario.
Please note that this is an ESTIMATED amount. The actual curation reward paid out after the post hits 7 days old may vary based on a number of different factors.
The Details
For those of you who are interested, the calculations work as follows:
let [before] = the value of votes before the specified account voted
let [vote] = the value of the specified account's vote
let [total] = the total payout value of the post (as specified using the slider bar)
let [reverse_auction_%] = the portion of your curation rewards that will go to the author if you voted before the post was 30 minutes old
Each of the above amounts is multiplied by 25% since that is the amount of rewards that go to curation. Then the curation value can be calculated by:
(√([before] + [vote]) - √([before])) * √([total]) * (1 - [reverse_auction_%])
The first parentheses group calculates the "weight" of your vote which is used to determine the amount of the total available curation rewards you will receive. Due to how the square root function works your "weight" will decrease very quickly as [before] increases.
Then once the weight is calculated it gets multiplied by the square root of the total curation rewards for the post and reduced by the [reverse_auction_%] if the vote came in before the post was 30 minutes old, and we're done!
The only situation that this doesn't take into account (that I am aware of) is if a user votes on a post, then removes their vote and then votes again - in this case that user is not entitled to any curation rewards so their weight gets adjusted to 0 and their rewards are distributed to everyone else. I plan to take this into account in a future update, but it's a relatively rare scenario and will only lead to more rewards than expected, so I figured it can wait.
I have added this tool to the Steem Bot Tracker site and GitHub repo here: https://github.com/mattyice/bottracker
Links to the commits:
https://github.com/MattyIce/bottracker/commit/980960c03a8b8a6e446d7974b1c5a32b4dbe0c21
https://github.com/MattyIce/bottracker/commit/e6ba52494a232981214eb7f87c1877298bbae030
https://github.com/MattyIce/bottracker/commit/a870fe7b9fc6cb66ba38a318a90f20c2a68ca5d0
I hope you find this tool helpful. It has definitely helped me find a lot of great curation opportunities that I wouldn't have realized otherwise. Let me know your thoughts in the comments!
Posted on Utopian.io - Rewarding Open Source Contributors