Several months ago, I wrote a post explaining how the voting power system works on Steemit. At the time, my Game Theory of Steem series was still going strong, and I was curious about how voting power was being regenerated and used as I voted for posts. The embarrassingly-outdated Steem Whitepaper had a little blurb about it, but gave no implementation details and made it sound like having low voting power was a penalty for trying to vote too much (**hint: having low voting power is not a bad thing.**)

Anyway, I ended up having to dig into the Steem source code myself to reverse-engineer the voting power mechanics, and wrote my original post explaining how voting power worked. I got a few of the details wrong in the original post, and a few of the details have changed, so I'm dramatically revising the post and giving you this update now.

So you're new to Steem and you've heard people talking about "curation" this and "rewards" that - but what's all this about the mysterious **Voting Power?** Apparently you lose it if you vote too much, but then you get it back, and you can look it up on Steemstats and Steemd.com, but **how does it actually work?**

## The Basics

You can look up your voting power in a few different places; the prettiest of the places is Steemstats (just enter your account name in the box on the right), the nerdiest is Steemd.com. When you vote, a little voting power is used up, but then it regenerates over time. How exactly does it work? What's the optimal way to vote?

Think of your voting power as a big tank of water. Every time you vote, a valve at the bottom of the tank pops open and squirts out some power. The fuller the tank, the more power squirts out the valve. The amount of power that squirts out the valve is one of the things that determines the impact your vote has on a post's rewards. (The other is your Steem Power, which you can look up in your wallet and is a completely separate thing.)

If you vote and vote and vote without stopping, it's like leaving the valve open, and it won't take long before your tank is empty.

Fortunately for you, there is a steady drip of power coming back into your tank! This drip refills your tank at the same rate, always, no matter what. The rate is hard-coded into the Steem system at a constant 20 percentage points per day. So these two things are both true:

- If your voting power is at 0% right now, it will be at 20% in 24 hours (if you don't vote at all in that time).
- If it's at 75% right now, it will be at 95% in 24 hours (again, if you don't vote in that time).

What happens to the drip if your tank is full? The drip gets wasted! Think of it like the tank just overflows if it's full; all that voting power just dripping down the sides going to no purpose.

## The Summary

#### How voting power works:

- Your account has a number between 0 and 100 called "voting power."
- When you vote for a post, slightly more than a 200th of that voting power gets "spent" on your vote.
- Your voting power regenerates over time at a fixed rate of 20 points every 24 hours (to be precise, it would grow from 0 to 100 in exactly 5 days).

#### How to vote optimally:

- In general, you should never vote
*less*than about 40 times per day (the exact number is closer to 39.2 votes per day, due to a minor implementation error). If you do vote less, you're letting your voting power go to waste (because your "tank" is full some of that time, and the "drip" is spilling over the brim). **Surprising news: if you want to maximize your**, as long as you vote more than about 40 times per day. Your*total*influence, it doesn't matter how much you vote*total*influence is the same whether you vote 1000 times per day or 40.**However, The more you vote, the less**So you could vote 1000 times per day, but each of those votes wouldn't be worth very much. Your*each*of your votes is worth.*total*influence would be optimal, but your*influence per vote*would be very low.

## The Details

(with formulas, code references, and general jolliness!)

Down to brass tacks. Here is the complete formula for voting power (if you don't want to parse this formula yourself, I'll walk you through it in a minute):

where my variables are (times are given in days, powers are numbers between 0 and 100)

*D*is the number of days since your last vote*Dr*is 5, the number of days it takes to regenerate your power from 0 to 100*Vd*is the "equilibrium" number of votes per day, currently set to 40*p*is your voting power right after you*last*clicked "vote"*p+*is your voting power the moment*after*you click "vote" this time*w*is the "slider" weight of your vote, between 0 and 1 (where 1 stands for 100% voting-slider power)

Next, I'll just plug the numbers in to make the formula a little less opaque:

**Let me walk you through this.**

*20D*is the amount of power that has regenerated*since your last vote.*Note that this is constant, and doesn't depend on*p*. If it's been one day since you last voted, you've regenerated 20 percentage points of voting power in that time.*(p+20D)*is thus the amount of power you have*right before you vote.*- (1-w/200) comes from the fact that if you vote with full slider power (w=1), a 200th of your power gets used each time you vote. If you vote with 50% slider power (w=0.5), you only use up a 400th of your power.
- The last term, 199/20000, doesn't really affect much. Its purpose is to handle an edge case when people vote with very low power. It makes it so that every time you vote,
*just a little bit more*than a 200th of your voting power gets used.

**So how much is each vote worth?** The formula for how much power gets applied to each vote is this:

**If we didn't have that 199/20000**, the answer would be "exactly a 200th of your voting power gets applied to each vote."

This formula will be important when (if?) I finally write my next article explaining how curation rewards work.

## The Code

Here is a list of code references for each of the components of this:

- steem_evaluator.cpp #1027 regenerated power,
*(100D/Dr)* - steem_evaluator.cpp #1028 available power,
*(p+100D/Dr)* - steem_evaluator.cpp #1032 multiplied by slider weight
- steem_evaluator.cpp #1048 used power, the 200th, and the 199/20000
- steem_evaluator.cpp #1091 voting power update

onealfa (69)· last yearSir, @biophil, I like your analysis so much. The only thing now makes me nervous - are these formulas still valid now? After HF19? I can not read code, I'm not a coder. Maybe you can check it , and update the formulas, if needed.

I am looking quite some time for a exact description of re-building voting power algorithm vs time, and no luck.

What I understand is this:

If I exhaust my voting power ( by intensive voting, 100 sequential upvotes in short time) down to only 13.26%, it will take a stunning 266 hours (11+ days) to rebuild again back to 100% (provided no more votes done in these 266 h). Am I right?

Or, how exactly it should be calculated?

biophil (66)· last yearOne thing changed with HF19, and that's the 200 in my formulas. That number should now be 50.

The regeneration rate hasn't changed, and it's linear: you regenerate 20 percentage points per day (24 hours). So it takes 24 hours to go from 10% to 30%, 48 hours to go from 60% to 100%, and so on.

It used to be you'd spend 0.5% of your voting power per vote, but that's now 2%. So if your VP is at 100 and you cast a full power vote, your VP will drop to 98. If your VP is at 50 and you cast a full power vote, it will drop to 49. Make sense?

I should update this and repost it to explain post-HF19 voting power.

ats-david (74)· 2 years agoI'm coming for you, @biophil. I will take your #1 curation spot on Steemwhales.com. Human voting will prevail!

majes (69)· 2 years agobarrydutton (74)· 2 years agoLOL, beauty man

biophil (66)· 2 years agoBring it! I've been withering a little without any competition for so long...

So, seriously? You're 100% manual? That's impressive.

ats-david (74)· 2 years agoYes - all manual. And I've been on your heels for a few days now. I'll put some extra effort into it.

All I need is one day at the top and my life will be fulfilled!

teamsteem (74)· 2 years agoWuut? All manual. Wow! That's impressive. I'm not that far off from you guys. I'm just not 100% voting only for curation rewards or I would be a lot closer I think. Most of my votes are done automatically. I'm not "bot" like you @ats-david.

biophil (66)· 2 years agoLooks like it's time for an upgrade to the bot algorithm...

barrydutton (74)· 2 years agoI love it -- the #SteemitElders dropping the gloves lol

pgarcgo (70)· 2 years agoI like the fight: man vs machine! I`m also working on something. Let meet at the stats.. Still far beyond though! GG!

barrydutton (74)· 2 years agoLOL

meesterboom (74)· 2 years agoThis is excellent, I always overvote but knowing that I can gain back a max of 20% a day is really useful. I might have took vote rest this weekend!!

herverisson (69)· 2 years agoI always wondered about how it worked, thanks for walking us through it! :) What about a counter telling us how many votes we have done every 24hours?? Would that be an option likely and helpful on Steemit?

biophil (66)· 2 years agoThat sounds like a great feature. In lieu of that, you can always monitor your voting power on steemstats.com - if you keep your voting power between 80 and 90, you'll likely be voting enough. :)

nxtblg (62)· 2 years agoThanks a lot!

barrydutton (74)· 2 years agoWell, I VOTED for this and RS it too --- so I believe my 1/200th or so of a vote was well inVESTed haha!

Great explanation for us Newbs. TY very much -- I saved this in my file of important stuff to know!

doitvoluntarily (76)· 2 years agoscreenname (66)· 2 years agoThis post has been ranked within the top 25 most undervalued posts in the first half of Dec 16. We estimate that this post is undervalued by $10.32 as compared to a scenario in which every voter had an equal say.

See the full rankings and details in The Daily Tribune: Dec 16 - Part I. You can also read about some of our methodology, data analysis and technical details in our initial post.

If you are the author and would prefer not to receive these comments, simply reply "Stop" to this comment.

lemouth (70)· 2 years agoThanks a lot for this detailed post! I would not say that it is definitive as the rules may change with time :)

biophil (66)· 2 years agoWell at least it's definitive-er than anything anybody else has posted. :)

skypal (62)· 2 years agoThis is very interesting. I'm reading your paper, "Studies on Robust Social Influence Mechanisms." Fascinating, and very relevant to the Steemit platform obviously.

biophil (66)· 2 years agoYeah, that paper is a great place to start.

Ever since I joined Steem I've been thinking about the incentives here. At first I was pretty worried that the incentives were going to push people to pile their votes on to only the most popular content, but since I've been running a voting bot, I'm becoming more and more convinced that the incentives actually push people

awayfrom piling onto popular stuff. Did you ever run into my "game theory of steem" series? Here's the article where I talk about this potential issue: https://steemit.com/money/@biophil/is-steem-paying-for-groupthink-the-game-theory-of-steem-part-3skypal (62)· 2 years agoThat sounds promising. Yes, I saw the article but haven't read it yet.

biophil (66)· 2 years agoI'm not sure how useful the article is; I wrote it before I understood anything about the curation incentives.

bluehorseshoe (60)· 2 years agoNice breakdown, makes sense, thank you!

rudyrun (43)· last yearAs I get more steem power I get more voting power

Where can I see the progress is there a statistic where I can find out about the progress of my 100% vote at full capacity

stuntworksinc (56)· last yearI know this isn't a recent post, but it's not "old" either. Thanks a lot for the explanation, I will be using it to factor how I do things here. I understand the premise you have presented vis a vis how much one uses vs how much regenerates, but a question @biophil ....

Is there any difference in voting on posts with say smaller rewards....less votes....at specific times.....resteemed posts...etc?

Thanks in advance from a newb.