Steemit Business Intelligence: (Busy) .org & .pay Votes - April 2018

in #utopian-io7 years ago

Busy.org GitHub Link: https://github.com/busyorg/busy

Details

The analysts liked using busy.org since finding out about it in the middle of October 2017. There is much to like about busy.org as a front-end app for the Steem blockchain. In Busy v2.4 Release post the developers announced some of the new features and functionalities added to the already feature-rich dApp. The analyst specifically find the notification, and drafting functionalities useful.

The analyst also enjoys the rewards from the two busy accounts busy.org and busy.pay. The thought behind doing this analysis came about when the analyst noticed a transition from getting upvotes from the busy.org account to now getting upvotes with significantly higher value from the busy.pay account.

Outline

In an attempt to answer when upvotes from using busy.org in posting comes from busy.org or busy.pay, the analyst plotted some information and data points outlined below:

  • May 1-7 Follower Vest & Upvote Weight from busy.org and busy.pay
  • Busy Robot Code Summary from GitHub
  • January to April Upvotes Count Between busy.org and busy.pay & Average Reputation of Authors
  • Reputation Min-Ave-Max of Authors Upvoted by busy.pay
  • January to April Upvotes Count Between busy.org and busy.pay & Average Account Age of Authors
  • Account Age Min-Ave-Max of Authors Upvoted by busy.pay
  • Top 50 Authors By Summed Upvote Weight from Both busy.org and busy.pay

Scope of Analysis

This analysis will look at four months trend of upvotes for users of busy.org. The analyst will seek to point out changes in voting behaviors between the accounts busy.org and busy.pay throughout January 2018 to April 2018.

The data to build most of the charts were generated at midnight of May 12, 2018 capturing data-points related to the study between January 1, 2018 and April 30, 2018. The scatterplots showing Voting Weight and Follower Vest however have had to be delimited further to May 1-7, 2018. This is due to the fact that follows are very dynamic, and the analyst wanted to stay as close to the Follower Vest at the time of generating the data, and the actual Follower Vest at the time when the upvotes were casted. As it is, there is already 11 days worth of difference at the maximum.

Tools

The analyst used arcange's Steem SQL Database to obtain the data related to authors, reputation, account age, upvotes, upvote weights, upvote counts, and follower vest. The analyst had to combine at least a couple of tables per query to capture most of the data-points. Outlined below are the queries used using Comments table, TxVotes table, Accounts table, and Followers table in combination.

/*Data for Upvotes & Accounts Information*/
SELECT
    YEAR(Comments.created) AS [YEAR],
    MONTH(Comments.created) AS [MONTH],
    DAY(Comments.created) AS [DAY],
    Comments.Author,
    Comments.author_reputation,
    Comments.created - Accounts.created AS [ACCOUNT_AGE],
    TxVotes.voter,
    TxVotes.weight
FROM
    Comments (NOLOCK)
INNER JOIN 
    TxVotes (NOLOCK) ON TxVotes.permlink = Comments.permlink AND
    TxVotes.author = Comments.author
INNER JOIN
    Accounts (NOLOCK) ON Accounts.name = Comments.author AND
    Accounts.name = TxVotes.author
WHERE
    TxVotes.voter in ('busy.org') AND
    YEAR(Comments.created) = 2018 AND
    MONTH(Comments.created) < 5

'busy.org' was replaced by 'busy.pay' to get the data related to 'busy.pay' upvotes

/*Data for Follower VEST */
SELECT
    Followers.following,
    Followers.follower,
    Accounts.vesting_shares
FROM
    Followers
INNER JOIN 
    Accounts (NOLOCK) ON Followers.follower = Accounts.name 
WHERE
    Followers.following in ('authors')
GROUP BY
    Followers.following,
    Followers.follower,
    Accounts.vesting_shares

The analyst couldn't figure out a way to directly capture Follower VEST through the use of an INNER JOIN, and had to list down all 2109 authors upvoted by busy.org between May 1-7, 2018 in three slices. The same was done for the 838 authors upvoted by busy.pay during the same timeframe.

The data-point collected were processed using Microsoft Excel, and the charts were created using Microsoft Power BI.

  • The characters VESTS in the vesting_shares column of the Accounts table was removed using the formula =VALUE(LEFT(vesting_shares,LEN(vesting_shares)-6))
  • The author_reputation in the Accounts table was converted to simple_reputation using the formula =IFERROR((ROUNDDOWN(MAX(LOG10(ABS(author_reputation))-9,0)IF(author_reputation>=0,1,-1)9+25,0)),25)

Results

image.png

You would notice that the analyst used a marker by changing the color of a specific dot (red) in both the above and the below chart. This is to highlight that where the upvotes from busy.org ends (1 Billion Follower Vest), the upvotes from busy.pay begins. In This Announcement from busy.org six months ago, the minimum requirement to get an upvote was just 1 Million Follower Vest. That has changed significantly since as what will be shown in the next section where the code will be summarized. This indicates the community's increasing adaption of busy.org.

image.png

Much like the busy.org chart, the dots in this scatter plot for busy.pay seems to be following a straight line with very minimal outlying dot. gregory.latinier for example with <800 Thousand Follower Vest was upvoted twice at 50% voting power. Greg is from the developer team of busy.org, and have made a few significant contribution to the development of the front-end recently.

Busy Robot Code (GitHub)

The code can be found in busyorg/busy-robot in GitHub. The analyst have no development background and understand very little of programming language, but will attempt to break the basics down.

/*Lines 55 to 58*/
55      && jsonMetadata.app.includes('busy') // Must have 'busy/' as app
56      && jsonMetadata.tags
57      && !jsonMetadata.tags.includes('test') // Must not include tag 'test'
58      && jsonMetadata.tags.includes('busy') // Must include tag 'busy'

To get an upvote, the posts should have been posted in busy.org, have the tag 'busy', does not contain the tag 'test'.

/*Lines 11 to 20*/
11      // Delay between 2 votes is 12 hours
12      const delay = parseInt(process.env.STEEM_VOTE_DELAY || 43200);
13      // Amount required to get the minimum upvote (1%) is 20000000 VESTS ~ 2 Dolphins ~ 10 000 SP
14      const minVests = process.env.MIN_VESTS || 20000000;
15      // Amount required to get 100% upvote is 4000000000000 VESTS ~ 2 000 Whales ~ 2 000 000 000 SP
16      const maxVests = process.env.MAX_VESTS || 4000000000000;
17      // Don't upvote user beyond 10000000000000 VESTS
18      const limitVests = process.env.LIMIT_VESTS || 10000000000000;
19      // Don't upvote more than 25%
20      const maxUpvote = process.env.MAX_UPVOTE || 2500;

Maximum of one upvote every 12 hours, to get the minimum upvote the author must have 20 Million Follower Vest, to get the maximum upvote the author must have 4 Trillion Follower Vest.

There is a mechanism to increase the required Follower Vest to get an upvote if the account runs out of voting power. In this GitHub Link, the current settings is as follows.

STEEM_USERNAME=busy.org
STEEM_POSTING_WIF=12345...
STEEM_VOTE_DELAY=43200
MIN_VESTS=100000000
MAX_VESTS=500000000000
LIMIT_VESTS=1000000000000
MAX_UPVOTE=2000

This is consistent with our observation in the scatter plot chart for busy.org upvoted authors between May 1-7, 2018.

Busy.Org & Busy.Pay Votes & Authors' Reputation

image.png

I created this chart in relation to a Q&A from the announcement of the busy.org bot six month ago.

Question: What if I post bad quality content?
Answer: We don't have much policy on the upvoted content for now. We think if you really post bad content you will most likely end-up losing followers and influence in Steem and not get so much voting power in your post by the bot.

This chart clearly shows that the higher valued upvotes coming from the busy.pay account is generally given to Steemians with higher reputation score, consistent with the thinking behind the bot six month ago.

Busy.Pay Upvoted Authors Min-Ave-Max Reputation

image.png

I built this chart just to show that the thinking is not 100% correct, and it does not have to be. In April for example, there were four authors with less than 25 reputation score who were upvoted by busy. pay. 4 out of 838 or less than 0.5% is not bad at all. Like the answer from the busy.org team when asked the question about quality, these authors are likely to lose their followers soon.

Busy.Org & Busy.Pay Votes & Authors' Account Age

image.png

Because building ones following is a function of activity (resulting to higher reputation depending on the quality of engagement) and time, The analyst wanted to differentiate between the two accounts busy.org is using to upvote contents. Much like in the reputation chart, the higher upvote value account (busy.pay) is upvoting more tenured Steemians who use busy.org.

Busy.Pay Upvoted Authors Min-Ave-Max Account Age

image.png

Top 50 Authors Sorted By Upvote Weight

image.png

In this charts, the summed weight is just the count of upvotes multiplied by the average upvote weight received. In the busy.pay Top 50 for example, this means that kingscrown received the equivalent of 21.6 full upvotes from busy.pay account. At current value the equivalent of 21.6 full upvotes received by kingscrown is equal to >$1,500 taking an average voting power of 60% based on SteemNow.

There's few overlaps in the list of top Authors between busy.org and busy.pay upvotes. This would have been the authors who transitioned from getting upvotes from the .org account to the .pay account.

image.png

There's few overlaps in the list of top Authors between busy.org and busy.pay upvotes. This would have been the authors who transitioned from getting upvotes from the .org account to the .pay account. Here is a list of those authors for reference.

-------Author--------------Busy.Pay Rank--------------Busy.Org Rank-------
rigaronib
5
37
dolov
7
42
olga.maslievich
9
29
jrcornel
16
14
sokoloffa
19
34
gringalicious
24
10
hakeemshah96
38
4
meesterboom
40
18
sauravrungta
42
47

Conclusion

From the announcement of the bot six months ago, busy.org has lived up to both their tag lines "Rewarding your influence", and "Ensuring compensation for the creators of value". There's known places where to get information about when the busy.org account upvotes, and based on the data presented by the analyst in this study, busy.pay starts where busy.org stops based on authors' follower vest. This analysis also reinforces the correlation between reputation, age, and following as measures of influence in the platform.

Sort:  

Hi @steemitph, just on a side note: the busy.org and busy.pay bot changed in April from https://github.com/busyorg/busy-robot/ to https://github.com/busyorg/busy-bot.

Link to the Answers of the Questionnaire - Click here


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thanks for the pointer @crokkon, and for reviewing my work. Must be tough moderating without the frontend and your usual tools. Thanks for all that you do in this tough time.

Hey @crokkon, Here's a tip for your work and efforts!


Upvote this comment to support Utopian and increase your future rewards!

Hey @steemitph
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Contributing on Utopian
Learn how to contribute on our website or by watching this tutorial on Youtube.

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!