BIP 1 – Targeting Voting PowersteemCreated with Sketch.

in #qurator7 years ago (edited)

The current methodology

Hi everybody, Qustodian here.

I have recently made a change to the way voting power works and would like to give everyone some background and for the more mathematically inclined, the equation.

The equation for the current sliding scale is,

This equation drops the weight by 2.5% for every 1% drop in voting power (VP). This is in combination with a weight adjustment due to the VP dropping. This is difficult to explain clearly, so I give some visuals to help.

It should be clearer that the voting power decreases linearly from 100 to 70 with the vote value following a similar course. Over a 24 hour period Steemit accounts recovers 20% voting power or 0.83% per hour. A full vote drains 1.8%. As soon as the vote drops below a 50% weight it is possible to indefinitely provide a vote per hour with the above formula. Anything more and the VP drains, if less it recovers.

The situation

The current usage is at a level where the current voting equation is maintaining good voting levels at around 85%. In future as adoption of the service increases this is unlikely to continue.
The voting power target should be around 90% with 70% being the absolute minimum level and keeping it at between 80% and 90% with an average around 85% is acceptable.

What does the Qurator community believe is the best option to keep voting power high and provide a good service with acceptable vote values?

The options I have considered are,

  • Implement a cap on the maximum upvote, e.g. a global weight cap of 90% through the board
  • An exponential drop in weights
  • A step-wise function, e.g. above 80% VP use the above equation, below 80% use 100 / No. of Qurator members

These are just some suggestions and a combination of the above or completely new ideas are welcome.
Appreciate all your feedback! Looking forward to the community ideas!

Qustodian

EDIT:
I have read through the comments and the impression I have gotten is that a voting scheme where everybody receives equal weight is what the community would like to see. There were some comments about over-use abuse, however the 24 hour window looks to be curbing this issue at this time.

I had some discussions and this is the voting scheme proposed, which seems acceptable.

Do a 3 daily average of how many votes come in per day. (Think of a moving average) that deletes day 4 and works in the new day so you have 3 days worth of data.

Then take that number and divide it by 1100. That would be the voting %.

There will 3 changes to the bot in a few hours,

  • Vote weight-locking code, using the current formula until the above algorithm can be implemented to ensure fairness in the interim. The lock will reset every day at midnight using UTC+0:00 time.
  • Votes will reset after 22 hours every day. People tend to post around a specific time of day. I investigated the vote limit exceeded messages and generally they were not spam, but were where people were posting close to the time they did the previous day, just not exactly 24 hours. This should give some leeway without opening up the service to abuse and being more human friendly.
  • Adding a minimum SBD check of 0.01 SBD

Once all the new vote-weight formula code is working I would like to reset all users votes to ensure everyone gets the benefit of the new code equally. If there are issues with this proposal, please let me know in the comments below.

Sort:  

How about making the limit per person is once every 2 or 3 days?
The other limit is to have a specific number of upvotes per day.

This way people could alternate in using @qustodian service for voting their posts, but trade that with better upvotes on their posts

Eventually when SP increases, @qustodian can upvote more with higher payouts, or buy upvotes like @minnowbooster does.

Just thinking out loud ;)

The problem is managing the voting power equation. Current usage levels see you getting a 0.15 cent upvote on average per request. The bot is voting at around 40 - 50% voting weight, so every second day could give you an 80% vote, but it cannot vote at more than 100%, so a third day would not be too great. To be honest, this is the second time I see this proposal and I am considering it. The only problem is the effort and revamp I need to put into the backend databases to implement it. So while I am working on it, it will take a while as I am cleaning that code to be more flexible in future. This work will tie in with the rolling average VP algorithm.

So in summary, yes I think that saving an upvote is certainly warranted, especially if posts are more irregular and of higher quality. It will just take me some time.

You can stop the votes while working on making @qustodian better. I am sure everyone will understand that it is made for their best interest in mind :)

P.S: Thank you for the tip our lovely @qustodian :D

I work on a development branch which uses the @soloinfinity test account before cloning to production, which is this service. So I don't need to stop it, people just need to understand it takes time to test properly and implement these changes, so they wont see any suggestions made and approved tomorrow, but I am working on it.

The tip was my pleasure, but the motive was to promote your thread. You just happen to benefit :)

EDIT:
To see a more detailed explanation around the bots and specifically this one, go to https://steemit.com/qurites/@dashroom/the-not-so-subtle-direct-and-slightly-meta-question-how-do-you-feel-about-bots

Just in case you haven't decided:
I think capping the votes to once every 2-3 days would be consistent with the main idea to only push quality content. If you really post quality content it takes time. I for example only get one big quality post out every week and maybe one or two smaller not so sophisticated posts inbetween. Also people who post everyday still get the same support as the votes get equally bigger as the time between them get longer.

tl;rd: I'm also for stretching the time between the votes making them bigger.

I have thought long about this and I am going to create a weightbank where at the start of everyday everyone is allocated an equal amount of voteweight according to the current VP targeting algorithm at that point which is converted to an SBD vote. This will go into a 'votebank' which will buildup. It would mean I would need to broadcast what the weight was or build a site where everyone can view their current balance, but it seems fair.

There seems to be an assumption that less frequent writing implies better content, but this is not always the case. For some it could be their occupation.
So in this way you can smaller more frequent votes or one larger one. The idea is to reduce pressure to post more frequently to use the bot.
This can be revisited in future, but as for now it will be a implement and see approach

That's a great solution! I really like it, since it also helps me :D

I hope you will make a new post explaining the details when it's implemented.

Fantastic job!

How difficult would it be for the bot to respond with a countdown remaining when people try to use it too frequently? I am online sporadically throughout the day, depending on work demands, and it's tricky for me to remember at what time I used the service the previous day. Sometimes I go longer ~30-36 hrs between uses, and then today I mistakenly tried to use it after probably 18-20 hrs.

It won't be hard, but I am working on making a site that will include all these stats. So you can login and see. I will consider adding it into comments temporarily until then

A site with all the stats would be great! I will watch for the announcement.

as this has rooted through qurator that strives to have quality content. what if certain amount of vote power was withheld from the equal dole out.... and that say 5 submited posts a day would be selected to recieve a 50% upvote. (% would be determined by the equation that would allow to keep VP above 80%.) it could be guest curated...or even random. it just sometimes nice to feel selected and lucky, we often like this feeling of winning something. not to mention winners could be shown in a post after winners are known.... allowing more engagement. i dunno... im just spit balling... but think some idea like this generates excitement and gives an excuse for people to look into submitted posts. after all it is not just about the money upvote... quality content also seeks avenues for more visibility. cheers though....qustodian is a great idea.

I think this is a good idea. It would currently be unfair to use delegated SP for this, but if the bot grows I will calculate how much of the SP is "natural", currently 12 and spread the love around to boost Qurator featured posts (as a counter suggestion). Keep this idea in the backburner and remind me again on Discord or on another post. I need to setup an ideas system, a bit backlogged at the moment with the votebank stuff and some other requests.

I will make a post about this some time, I think it deserves a mention.

There are two forms of capping. Don't forget you can also increase the time between upvote allowances. For those of us putting higher quality into fewer posts this is especially attractive, though I'm not sure how others will feel about it. My two cents.

I am sure you can also use a charge counter. I.e. everyone gets 40% weight upvote a day, which increases to 80% at day 2 and 100% at day 3 or so.

I was thinking about this last night. I think the fairest situation is to have a cap on the maximum up vote.

This way all your users can gain access to an equal share, thus removing the first come first served and luck element.

This also may lead to an increased number of individuals leasing power to QS as they can directly see benefits as you could be raising the maximum upvote allowance.

I know I am desperate to lease power (but don't yet have enough!).

I would agree this being a very fair option for everyone, that way qustodian power is still kept to a good VP thus benefitting the same amount but maybe to less people

I agree that a cap is fair to everyone, but how big must the cap be? Some kind of measure where the cap updates every day based on the usage yesterday or every 12 hours or so?
Also you can lease even small amounts to Qustodian and get a return. I think if the payouts change back to daily it would help support smaller leases as it gives time for a fund to build up?
There can be dynamic payout of leases to ensure that everybody gets some money, but with a cap on the maximum number of days till payout?

While my suggest made here was not really related to the algorithm - I do feel that it is relevant to this topic.

After all - a fair number of people will be less inclined to use the service if their self-up-voting capability were to be capped or otherwise mitigated.

I have taken a look at your suggestion and comment on the original post

Now it's a bit clearer, it's important to have fun

Hi @qustodian, please check your health, you seem to be malfunctioning. You are giving full refunds, but still upvoting.

It's fixed. You got me in the middle of the update run. Sorry

Ok thanks!

where to sign up to use this service? Thanks.

Check @qurator for more information on how to sign :)

Congratulations @qustodian! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got a First Reply

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Coin Marketplace

STEEM 0.19
TRX 0.16
JST 0.033
BTC 64041.25
ETH 2762.17
USDT 1.00
SBD 2.66