This post is inspired by this post by @flagawhale where (s)he tries to define the rather fuzzy metric for Whale baddness.
While the metrics @flagawhale chooses seem reasonable, they do seem to be rather selective when it comes to what constitutes badness. In the end, being an asshole, as in one of the examples shouldn't really count to real badness, as in the end badness should be about working against the intrinsic value of the platform, both for its users and it's stakeholders.
A value that depends greatly on the concept of curation working as intended. If we want a badness metric for whales, no, if we want a generic badness metric, it should IMO be about curation.
The best metric, I feel, would be based on the percentage of true curation. False curation would basically be any voting not involving someone actually objectively evaluating the post or comment before upvoting.
Examples of false curation would include:
- Self-upvotes
- Auto upvoting of friends without looking at the content
- Strategic upvotes made without looking at the content.
- Revenge flags.
It really shouldn't matter how the vote is cast and, effectively by who. It should be the ultimate owner of the SP that counts. The SP could be used:
- By the SP owner him/her self.
- By the buyer of the upvote if the owner runs a bid bot.
- By the renter of the SP doing the upvote if the SP is delegated.
- By the buyer of the upvote if the SP is delegated to a bidbot owner who uses it to sell upvotes.
The raw ratio might require some tuning. Curation being genuine is more important for posts than it is for comments, so some weighing factor might be in order there. I'dd suggest using π, well, because π ;-)
This would be a start, but it really shouldn't be that linear, quadratic would be a bit over the top, so we settle for a middle ground
So if T is the number of voting rshares used for true curations of posts, t the number of voting rshares used for true curation of comments, F false curation of posts and f false curation of comments, the bad-whale metric B would be defined by:
Or written inn Python:
import math
def calculate_badness(F,f,T,t):
return math.pow(
(math.pi * F + f)/(math.pi * (F + T) + f + t) ,
math.sqrt(2))
Let's go through a few examples to look how they pan out. Note these Whales are all 100% fictional. Any similarities to actual Whale account are completely spurious and unintended.
Whale One: self upvoting comments.
Whale one, lets call her Allice doesn't run any bots and doesn't delegate her SP to anyone either. She doesn't have much time on her hands to spent reading and curating posts, but she loves fiction, so twice a day the upvotes actual posts she likes at 100%. Not to let her voting power go to waste, she creates a silly post of herself, then creates eight comments on her own post and upvotes them. To not overcomplicate things, we'll use percentages rather then rshares, but the math is the same, lets see how it pans out:
- F = 0
- f = 80
- T = 20
- t = 0
- B = 0.44
That is, 44 out of a hundred as badness score.
Whale 2: Running a post-only bid bot.
Whale two, lets call him Bob uses a different strategy. Bob has 75% of his SP delegated to his own bidbot. The bidbot only works on posts, not on comments. and it only does full strength upvotes, ten every day. Now lets say on average 90% of bought upvotes are upvotes for the buyer's own post. With the remaining SP, Bob does do actual curation. Bob on average upvotes six posts at 100% and 16 comments at 25%.
- F = 67.5 (75% * 90%)
- f = 0
- T = 22.5 (25% * 60 % + 75% * 10%)
- t = 10 (25% * 40%)
- B = 0.63
63 out of a hundred in badness score.
Whale three: delegating to comment upvote bidbot.
Whale three, let call her Carol, is a lazy garl out for a profit. She does not want to do any curration, so she delegates 100% of her SP to a bidbot owner who sells low budget upvotes on both posts and comments. Half of the upvotes sold are for posts, the other half for comments. Of the comments, 60% are self-upvotes by proxy. For the post upvotes this number is 80%
- F = 40 (50% * 80%)
- f = 30 (50% * 60%)
- T =10 (50% * 20%)
- t = 20 (50% * 40%)
- B = 0.67
Or 67 out of a hundred in badness score.
Whale four: Selling curation
Whale four, lets call him Dave tries to be a good whale. Instead of running a bid-bot that gives out votes, Dave runs a bidbot that gives out Dave's time curating. Dave knows he has time to look at fifty posts a day and sells his time using a bidbot, spreading the available voting strength according to quality. Dave does one post of himself that he self-upvotes at 50%, telling everyone who he did and did not upvote and why. If people comment on his post, Dave will upvote some of these comments, upto about 10% of his daily voting capacity.
- F = 5
- f = 0
- T = 85
- t = 10
- B = 0.016
Or 1.6 out of a hundred in badness score.
I trust this metric could be useful both for Whale badness, as for the badness of any other type of account.
I can't say I fully understand how the math in your equation pans out, but I do support and agree with the sentiment that thoughtful, human (as differentiated from bot) upvotes should have more relative value.
Added a python version of the metric calculation and four examples to show just how it would pan out. Hope it makes more sense now.