Reward Shares: Understanding How Your Votes Affect a Post

in #steemit8 years ago

Reward Shares: Understanding How Your Votes Affect a Post

Yesterday I introduced the new tool Steem Vote Weight Calculator, that estimates how much impact your vote would have in a post before you cast it. In order to do that, I had to dive in the source code of steem's blockchain and figure it out.

Today I'll attempt to explain the calculation so everyone can understand this process better.


Reward Shares

When you vote, the first value that is calculated is called Reward Shares. As the name implies, it affects how many shares of the curation rewards you are "buying in" with that vote. This value is independent of the post you are voting in, and it's affected by two things: your Voting Power, and your Vesting Shares.

Voting Power

Voting Power is a percentage representing how much power you currently have to vote. Each vote decreases this value (exactly by how much in a bit), and it would regenerate from zero to full over the course of five days. In practice, you recover 20% voting power in one day or 0.833% in an hour. You can check your current power on steemstats. It's used in the calculation as a number in the 0 to 10000 range, so if you have 93.73% VP, the number used is 9373.

Tip: If you sleep 8hrs, go to sleep with 93.33% VP and you'll wake up with it fully replenished!

Vesting Shares

The second element of the Reward Shares calculation is vesting shares. @hisnameisolllie recently posted a good explanation of them here. As a simplification, I like to think of VESTS as the representation of your current STEEM Power in the blockchain. The place I found where you can see the exact amount of your vesting shares, unrounded, is steemd.xyz. As with the voting power, VESTS are used as a fixed-digit number, so for example, if the value listed above is 219259.945798, you'd use 219259945798 in the calculation.

Voting Weight: The Voting Slider

It's possible to hold back on your voting power expenditure when giving votes. If you have around 100M VESTS, you'll see a slider that lets you pick this value. Similarly to Voting Power, it is a number in the 0-10000 range representing the percentage as a fixed-digit number.

Calculating the Reward Shares

Now we have all the information to calculate the Reward Shares for our vote, like this:

Used Power = ((((Voting Power * Voting Percent) / 10000)) / 200) + 1

Vote Reward Shares = (Used Power * Vesting Shares) / 10000

First, it determines how much of your VP you are spending on this vote. I'm not sure how the scaling factor 200 was chosen, but ultimately it's a linear correlation between them.


Relationship between the power spent and your voting power

So if you vote with 93.33% Voting Power, with 100% weight, when having 219k VESTS, this is what you happens:


I'm spending 47.665 voting power on this vote


In exchange for 1.045.102.532 Reward Shares, or around 1.04 billion

So no matter which post you vote, you'll get 1.04b shares at that moment.

I simulated the decay of the Voting Power as you cast votes. Assuming no Voting Power regeneration taking place in the meantime, you'd be able to cast 785 votes before you ran out of Voting Power and had to wait five days for it to refill. Most of them would be worth very little, though.


How your VP decays as you cast votes

Tip: You would spend about 20% of your voting power at about 44 votes, so that seems the ideal times to vote daily.

Vote Weight

The Vote Weight is determined essentially by how much your vote's Reward Shares proportionally move the post's total amount of reward shares. That's why early votes have more value than late ones: the post still doesn't have many Reward Shares assigned to it.

The impact of weight is calculated by the following expression:

Weight = (Max UInt64 * Reward Shares) / ( 2 * Content Constant + Reward Shares)

Max UInt64 is a very large value (2^64-1) providing an upper bound for the calculation. Content Constant is a scaling constant set 2000000000000` and has a comment next to it that says "looking good for posters*". What that means, I'm still not sure.

This value is calculated twice: once for the total reward shares of the post including this vote, and once for the total before you voted. The Vote Weight is the difference between those values, or how much impact your vote had raising it:

Vote Weight = W[N] - W[N - 1]

So if we cast our vote as calculated above on a post with 3379802885863 (approximately 3.37 trillion) reward shares already on the pool from the previous votes, this is what happens:

Wow, these are large numbers! The result is 1415753325365752, or approximately 1.4 quadrillion, which is the weight of this vote.

Now we can figure out what is the percentage of this weight against the total, which is:

Our weight represents 0.017% of the total, and that's going to drop as new votes come in.

And that's it! Well, almost...

Early vote penalty

If the post is newer than 30 minutes old, there's a factor that reduces the calculated weight linearly according to the number of seconds left to reach 30 minutes (1800 seconds), like this:

Adjusted Weight = (Vote Weight * Min(Age In Seconds, 1800)) / (1800)

For example, if this post was 10 minutes old, this would happen:

So our weight dropped from 1.4 quadrillion to 471 trillion. This effect is popularly described as sharing rewards with the original author since you are adding the full reward shares to the post, but claiming rewards based on a reduced weight.

And that's it!

Simple, huh? Well, the numbers are large but the logic is not that complex after all. And the calculator is always there to help.

But that is glossing over flagged posts, changed votes, and reward value calculations, that I'm leaving for the next time, along with some more analysis of how each value affect the whole.

If you are interested on learning more on how Steemit works, follow @burnin for more information.

Sort:  

I know this post is a year old, but I still find it very useful and interesting. Just wondering if it's still up to date though?

Great overview. I came here from your more recent posts on voting power; I've been doing some similar stuff because I want to optimize a voting bot and need to know all this stuff. I'm bookmarking this!

Great work! I have been trying to figure this out. Now I know there is no way I could without your programs. Thanks!

I wish this wasn't Swahili to me. Bookmarked for future reference. Thanks for your post @burnin
@booky

Is the 200 from Used Power formula hardcoded in steem's code?

Must train myself to wait the 30 minutes...

Thank you so much for explaining this! I was planning on looking over the code/math myself later today to understand, but looks like you've done all the work for me :) Fantastic post.

I've always wanted to know the details on curation rewards in relation to vests and time so this is perfect. Great post.

Your post is very informative. I didn't knew many of those calculations. In may latest post I am proposing something that could help us fight plagiators and could help steemit cleaning. I am proposing "Negative payouts" for flagged content. Please read my post and tell me what do you think about this idea.

Very helpful post. Thank you!

I am going to have to read this a few times.

Learned some new things here. Thanks!

Thank You @burnin. Just like @brs I will be rereading your excellent article, big numbers and percentages are not something I have been exposed to. This is going to my "read Over" folder for sure. Which is getting bigger each day.

thanks for looking under the hood and translating all this valuable info for all of us. It make sense what you explaining after all those formulas. (well, the one I didn't understand well is why there is a punishment for early voting - less than 30 min old posts). Thanks for explaining reward shares, voting weight and all of that.

Hi! Great work!
But i dont understand why 219k VESTS = 219 259 945 798
TY!

@bitinformant tell me what this means...

1 year late to me.
Are that tools still running now?

@burnin
Wish you guys a good and excellent steemfest2 😋 in advance...