How much curation did my post voter earn?

in #curation6 years ago (edited)

I wanted to know how much my post curators did earn by voting my last 100 posts (If you also want to know this, just leave a short comment and I will reply with the script results).

After fetching all my blog posts with get_blog, I'm going through all votes and use the beem function get_curation_rewards. As I did not wanted to fetch all historic STEEM price data, I calculate all curation rewards in SBD. As the vote is also known in SBD, a curation performance can be calculated: curation_SBD / vote_SBD * 100.

from beem import Steem
from beem.account import Account
from beem.comment import Comment


if __name__ == "__main__":
    stm = Steem()
    account = Account("holger80", steem_instance=stm)
    all_received_votes = {}
    all_received_replies = {}
    blog = []
    rows = []
    sum_curation = {"vote_sbd": 0, "vote_panelty": 0, "curation_sbd": 0}
    for b in account.get_blog(limit=100):
        if b["authorperm"] != '@/':
            blog.append(b)
            comment = Comment(b)
            comment.refresh()
            curation_rewards_SBD = comment.get_curation_rewards(pending_payout_SBD=True, pending_payout_value=None)
            for vote in comment["active_votes"]:
                vote_sbd = stm.rshares_to_sbd(int(vote["rshares"]))
                curation_SBD = curation_rewards_SBD["active_votes"][vote["voter"]]
                if vote_sbd > 0:
                    penalty = ((comment.get_curation_penalty(vote_time=vote["time"])) * vote_sbd)
                    performance = (float(curation_SBD) / vote_sbd * 100)
                else:
                    performance = 0
                    penalty = 0
                vote_time_min = (((vote["time"]) - comment["created"]).total_seconds() / 60)
                sum_curation["vote_sbd"] += vote_sbd
                sum_curation["vote_panelty"] += penalty
                sum_curation["curation_sbd"] += float(curation_SBD)
                row = {"voter": vote["voter"],
                       "authorperm": comment["authorperm"],
                       "vote_time_min":vote_time_min,
                       "vote_sbd": vote_sbd,
                       "vote_penalty": penalty,
                       "curation_sbd": float(curation_SBD),
                       "performance": performance}
                rows.append(row)
    
    sorted_curation_perf = sorted(rows, key=lambda x: x['performance'], reverse=True)
    sorted_curation_cur = sorted(rows, key=lambda x: x['curation_sbd'], reverse=True)
    
    print("Overall curation performance: %.2f %% earned from given votes with a total value of %.2f SBD" % (sum_curation["curation_sbd"] / sum_curation["vote_sbd"] * 100, sum_curation["vote_sbd"]))
    print("The voter earned %.2f SBD curation rewards in the last 100 posts." % (sum_curation["curation_sbd"]))
    print("%.2f SBD were removed from the 25%% curation share by voting within the first 30 min. (%.2f %%)" % (sum_curation["vote_panelty"], sum_curation["vote_panelty"] / sum_curation["vote_sbd"] * 100))
    curation_voter = {}
    vote_sbd = []
    curation_sbd = []
    performance = []
    for v in rows:
        if v["vote_sbd"] > 0:
            vote_sbd.append(v["vote_sbd"])
            curation_sbd.append(v["curation_sbd"])
            performance.append(v["curation_sbd"]/v["vote_sbd"] * 100)
        if v["voter"] not in curation_voter:
            curation_voter[v["voter"]] = {"vote_sbd": v["vote_sbd"],  "vote_penalty": v["vote_penalty"],  "curation_sbd": v["curation_sbd"]}
        else:
            curation_voter[v["voter"]]["vote_sbd"] += v["vote_sbd"]
            curation_voter[v["voter"]]["vote_penalty"] += v["vote_penalty"]
            curation_voter[v["voter"]]["curation_sbd"] += v["curation_sbd"]

    if account["name"] in curation_voter:
        print("Self vote percentage %.2f %% (%.2f SBD)" % (curation_voter[account["name"]]["vote_sbd"] / sum_curation["vote_sbd"], curation_voter[account["name"]]["vote_sbd"]))
    
    print("%d different voter" % len(curation_voter))
    print("Maximum achieved curation performance %.2f %%" % sorted_curation_perf[0]["performance"])
    print("Maximum achieved curation reward %.2f SBD" % sorted_curation_cur[0]["curation_sbd"])
    

Results

Overall curation performance: 50.47 % earned from given votes with a total value of 2492.89 SBD.
The voter earned 1258.12 SBD curation rewards in the last 100 posts.
59.81 SBD were removed from the 25% curation share by voting within the first 30 min. (2.40 %).
Self vote percentage (SBD value) 0.01 % (13.64 SBD).

5236 different voter.
Maximum achieved curation performance 8808.12 %.
Maximum achieved curation reward 50.55 SBD.

Conclusion

The curation performance of my voter is quite high at 50%. As I stopped self-voting some time ago, I did not reduce the 25% curation share for my voters. My self-voting share across the last 100 posts is only 0.01%. It will not change much for me and my voters when HF20 is live. The 2.4% which is now removed from the curation rewards and added to my author rewards will then be moved back to the reward pool instead.

The highest curation performance is achieved by small and early votes and the highest curation amount was achieved by utopian-io.


I will run the script for everyone who asks in a comment and will print the result in a comment as reply.

Sort:  

I would like to know my result :)

You first need to write a post :).

This post has been just added as new item to timeline of beem on Steem Projects.

If you want to be notified about new updates from this project, register on Steem Projects and add beem to your favorite projects.

I like to know my result. =)

Results for the last 100 posts for rivalzzz:

Overall curation performance: curators earned 33.61 % from given votes with a total value of 1441.82 SBD.
The voter earned 484.53 SBD curation rewards in the last 100 posts.

62.88 SBD were removed from the 25% curation share by voting within the first 30 min. (4.36 %).
Self vote percentage 0.00 % (2.90 SBD).

5734 different voter.

Maximum achieved curation performance 2312.38 %
Maximum achieved curation reward 48.68 SBD

That sounds interesting - would be keen to know my stats @holger80 if you have time!

Results for the last 100 posts for cryptocurator:

Overall curation performance: curators earned 38.70 % from given votes with a total value of 2752.08 SBD.
The voter earned 1064.96 SBD curation rewards in the last 100 posts.

207.55 SBD were removed from the 25% curation share by voting within the first 30 min. (7.54 %).
Self vote percentage 0.00 % (2.70 SBD).

7445 different voter.

Maximum achieved curation performance 5603.23 %
Maximum achieved curation reward 44.73 SBD

Can I also know mine? Although I've stopped using bidbots 3months ago and no longer self-vote too just a month ago (not that I have much SP) so it might only be small :)

Results for the last 100 posts for jlordc:

Overall curation performance: curators earned 37.70 % from given votes with a total value of 807.85 SBD.
The voter earned 304.54 SBD curation rewards in the last 100 posts.

59.66 SBD were removed from the 25% curation share by voting within the first 30 min. (7.39 %).
Self vote percentage 0.00 % (2.97 SBD).

2845 different voter

Maximum achieved curation performance 2330.92 %
Maximum achieved curation reward 31.59 SBD

Very very Interesting... and what about my stats? Thanks

Results for newtechblog:

Overall curation performance: curators earned 30.45 % from given votes with a total value of 688.42 SBD.
The voter earned 209.61 SBD curation rewards in the last 100 posts.

6.08 SBD were removed from the 25% curation share by voting within the first 30 min. (0.88 %).
Self vote percentage 0.00 % (0.03 SBD).

2579 different voter

Maximum achieved curation performance 939.82 %
Maximum achieved curation reward 33.92 SBD

Thank you very much my friend.

Hi @holger80!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 5.638 which ranks you at #445 across all Steem accounts.
Your rank has improved 4 places in the last three days (old rank 449).

In our last Algorithmic Curation Round, consisting of 316 contributions, your post is ranked at #102.

Evaluation of your UA score:
  • You've built up a nice network.
  • The readers like your work!
  • Try to improve on your user engagement! The more interesting interaction in the comments of your post, the better!

Feel free to join our @steem-ua Discord server