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
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 how powerful your vote is. (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.
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 about 1 point every 100 minutes (to be precise, it would grow from 0 to 100 in exactly one week).
How to vote optimally:
- In general, you should never vote less than about 27 times per day. 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 total influence, it doesn't matter how much you vote, as long as you vote more than about 27 times per day. Your total influence is the same whether you vote 1000 times per day or 27. This is because of the constant drip of voting power filling your tank.
- However, The more you vote, the less each of your votes is worth. So you could vote 1000 times per day, but each of those votes wouldn't be worth very much. Your 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 seconds, powers are numbers between 0 and 100)
- T is the time since your last vote
- Tw is the number of seconds in a week (604800)
- 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 weight of your vote, between 0 and 1 (for users with more than 100 Million Vests, or about 30,000 SP)
If you're just a regular Joe like me (with less than 30,000 SP) and you don't get to set your vote weight, the formula simplifies to this because w=1:
Let me walk you through this.
- 100T/Tw is the amount of power that has regenerated since your last vote. Note that this is constant, and doesn't depend on p.
- (p+100T/Tw) is thus the amount of power you have right before you vote.
- (199/200) comes from the fact that a 200th of your power gets used each time you vote; thus, right after you vote, you have 199/200 of your original power left.
- The last term, 1/100, serves no useful purpose that I can find. It makes it so that every time you vote, just a little bit more than a 200th of your voting power gets used, which makes things go from simple and intuitive to complex and weird. For no reason. Bug your favorite dev to get rid of the 1/100. In fact, I may just go put in a pull request myself to get this fixed.
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 silly 1/100, the answer would be "exactly a 200th of your voting power gets applied to each vote."
The Code
Here is a list of code references for each of the components of this:
- steem_evaluator.cpp #876 regenerated power, (T/Tw)
- steem_evaluator.cpp #877 available power, (p+T/Tw)
- steem_evaluator.cpp #881 multiplied by weight
- steem_evaluator.cpp #882 used power, the 200th, and the 1/100
- steem_evaluator.cpp #919 voting power update
The Story
A month ago I posted this question about voting power, and got exactly 0 replies. So since I really wanted to know, and nobody would tell me, I ran on over to github, grabbed the Steem source code, and over the course of a pair of international flights for my trip to the Netherlands, I figured it out. I freaking figured it out. (You should be pretty impressed with me, because I don't actually speak C++. So I was wading through mostly-uncommented code in a language I don't even know...)
About Me
I'm Philip N. Brown, a PhD student in electrical engineering at UCSB. I'm the author of the popular Game Theory of Steem series, and currently I'm Editor-In-Chief of the Lost Content Digest. Follow me if you enjoy my work!
[Edit note: My original formulas had an error that I have since corrected. The 100T/Tw used to be T/Tw; the problem was a units mismatch. I have p in units of percentage points, but T/Tw is a fraction between 0 and 1. To make sure we're adding like units, I needed to multiply the T/Tw by 100.]
Excellent. I understand more because of your cartoon!! Great to meet you @biophil. Following you and upvoted this post.
My head hurts...
But I'm not a regular Joe. I'm Another Joe. :)
Very nice post. I don't usually vote for steem-centric content any more but this is a topic that hasn't been covered very well and this is a very nice clearly explanation. I will be pointing to this post in the future when I get questions about how the voting power works.
Yes, I've been looking for something like this! I'll be linking to it in the Steemit FAQ I'm putting together.
https://steemit.com/steemit/@shenanigator/official-steemit-faq-rough-draft-your-edits-are-needed
Thanks so much! From what I've found, it's one of the least-documented features of the whole system. I will probably put out at least one more of these on the specifics of the curation reward formula, which I think is equally mysterious.
Please let me know when the curation post is ready as well.
Will do! That one's just in the back of my mind at this point, so it probably won't be out until next week at the earliest.
Thank you this really helped me understand voting power. Upvoted!
The numbers aren't quite right any more; the minimum number of votes is actually around 40, not 27. Otherwise it's essentially correct. Thanks!
Thanks for your detailed explanation! Can you please clear up two questions?
That's what my research turned up as well: 20 votes in 24h maximizes the use of your voting power. I'll have to search for my reference for that.
Maybe that's true if you do all 20 at once. If you space them out evenly throughout the day, the correct number is 27.
Do you think this changed recently? Are you certain you've taken into account all the variables? Because I got the 20 per day figure from multiple reputable sources.
I don't know if it's changed recently. The number is 27.8 times per day, if you vote every 3100 seconds (a little more than 51 minutes). You can calculate this by plugging 100 into p and p+ in my 2nd equation and solving for T. Due to an error in my formula (which I'll correct when I get a chance), you'll have to divide your answer by 100.
But here's the thing: the 27 number is only if you want each of your votes to be at 100% every single time. It just doesn't hurt you very much to be voting at 90% or even 80%.
The fact that you lose voting power for voting is not a penalty, it's just a simple mechanism that limits each account's total influence. If I had to give a simple message to you, it's that you just shouldn't worry too mich about optimizing your voting power, because the only bad choice is to vote too little.
THANK you for presenting this in words before diving in the number-y part. I'd been wondering how it worked, and if there were an optimal number of votes... or even a number at which somehow I'd actually do a disservice by voting. I appreciate you shining a lantern into the black box.
You bet! I try to always go words before numbers. You reach more people that way. :)
I tagged you and this article in my newest post. https://steemit.com/steemit/@whatsup/exploring-steemtools-com-congratulations-you-ve-won-steembingo-com-jackpot-671-tools-1
Very good biophil. Excellent really!
Pretty surprised to see you are in science/engineering, have always thought of you in some bla-bla field from your BTS days.
Anyway thumbs up!!!!
Thanks! Haha, I've got to ask what about me made you think that? and what's bla-bla?
[hint] well if you know my bts moniker, you will know I consider most anything bullish overwhelming enthusiasm ...
best regards
tk
Well, I skipped reading through your comments on the code (I'm more artsy than geeky), congrats on busting through it anyway. I'm sure other readers will be happy to dig into the details. The general comments were helpful and your tank analogy is very clear. I've been wondering how much voting was too much, and now I see that I've been voting too little. Heading off in search of more things to upvote now...
Strange that you, @biophil, or anyone else for that matter, realizes that the -1/100 term guarantees that the vote power curve actually hits the x axis, making it cero at some point if a person votes too many times too fast, and so limiting the actual number of times you can vote (some 66 times in a row if you don't wait any time), and when voting power is cero, then the system will not allow you to vote any more, until you get your voting power back through waiting time. If the term weren't there the voting power would be ever closer to cero, but never actually cero. A serial voter could then vote an infinite number of times to the tone of once every three seconds (another system limit, you can't vote more than once every three seconds) even though his vote power would be ever tinier.
I'm guessing that's what the devs had in mind, but they weren't thinking about it correctly. I encourage you to work out the math with and without the 1/100 and see if your total vote influence is higher in either case. You'll find that in both cases, your total influence is the same, and doesn't depend on how much you vote at all. (as long as you keep your voting power strictly below 100.)
The whole point of this is that your vote doesn't need to hit zero for your voting power to be limited. It is limited by the rate that voting power "drips back into the tank," not by the fact that your power hits zero.
Don't worry, I didn't get it the first time around either. But just remember: it doesn't matter how much you vote, how fast it decays, or anything. It only matters that the drip into the tank is constant.
Got lost once we got to the equations, so rubbish at maths! But the more reading from these kinds of posts the information slowly sinks in. Its difficult to find time to vote at least 27 times a day but we keep trying!
Impressed, and followed!
Thanks for that detailed explanation. Followed.
Too many figure for a beginner (((
Thanks for the math. You can always check your voting power at steemstats.com.
https://steemit.com/introduceyourself/@steempowerwhale/i-am-steempowerwhale-and-i-am-here-to-upvote-your-lifetime-dreams
Thanks for the in depth information.
Thank you @biophil, I understand now.
I have just read your old introduction post. I can't reply there anymore, so I will just post it here ;-)
"
'I'm particularly interested in characterizing and influencing user behavior in socio-technical systems'
I bet that you have heard about The Venus Project and work of J. Fresco? :-)
Btw, big wooooow for running ultra marathons. I'm preparing to run Spartan Race Super next week, for the first time but it is mere 15-18 km, so I am not even half marathon runner :-) "
I hadn't heard of The Venus Project. Sounds interesting!
The ultra was way beyond my abilities, and I barely finished it. But at least I finished it. :) I've been thinking I should write about it on here at some point. Good luck with the Spartan! That's one of those obstacle course races, right? I've always wanted to do one of those.
If you haven't heard about it then the best introduction would be reading the book "The Best That Money Can't Buy" (The Venus Project sells it on their website). Otherwise you can scratch a bit of the surface of the project by watching their recent documentary on YT "The Choice is Ours". Their documentaries are always free to watch. They don't sell them.
You should write about it. I can't imagine someone running a marathon. It must take years to get to that form and mental perseverance. Forget about ultra marathons :-)
I hardly run 15 km atm :-)
Yes Spartan Race is an obstacle course. Mud run like :-)
You'd be surprised! I only actively trained for the ultra for about 6 months. Yeah, I'll definitely write about it. :)
I was looking for something like this. Thanks for the clear and precise explanation and formula on voting power. I have two questions for you or for whoever can provide answers.
(1) Is there a formula for best time to vote after a post is posted?
(2) Is there a formula for estimating curation reward?
I will probably write a similar post about those questions, but I do not have the answers for you in a convenient form at the moment. Those answers are much more complicated than this stuff on voting power.
When I first started, I got so excited and was just upvoting everything lol. It's posts like these that helped me learn how to use this site. Thank you @biophil
I'm totally new to steemit. I just heard about it today actually! This post really helped me to understand why its important to just not vote on everything since my vote now holds value. Not quite understanding the formulas though but it's understandable without that though! Thanks for the information to help us newbies out ! Lol
nice post man. im looking for this and im impressed on how you solve or got it. i enjoy reading this.
@biophil
Thank you for the detailed explanation
Maybe you could make a post on curation rewards. I keep hearing things about voting early but not before thirty minutes have elapsed. I just don't vote a lot anymore.
Yeah, I've had a lot of requests for that. Curation rewards are very complicated, and there's no single formula for how they work. They're basically going to be a little different for each post, so I'm going to have to think long and hard about how to present them well. But I will at some point! If you're following me you should see it pop up in your feed sometime in the next few weeks.
The basic story on voting power is that you can't do yourself any harm by voting, so if you don't dislike it too much, you might as well do it.
Thank you for your contribution and efforts. I now see the light!
Great breakdown, now I know more then I did 10 minutes ago, thanks :)
Of to another Q&A