create account

STEEM internals #10: Payment reward system demystified. by cryptomental

View this thread on: hive.blogpeakd.comecency.com
· @cryptomental · (edited)
$31.42
STEEM internals #10: Payment reward system demystified.
Welcome to my **10th** post in the series. I mark reaching two digits as a milestone and a proof to myself that I was able to go further than I initially hoped for. The post will decompose STEEM **payment reward** system.

In this post you will learn **how the reward payment is calculated, how much do you receive and how much will the curator receive**. You will also learn **why and how** the payment window works and how it is divided. You will also learn why the **maximum curation** reward is penalised. We will also decompose a reward payment on an example: the TOP #1 reward post from last week. You will see **why** it received more than 5k STEEM and what was the sequence of upvotes **that made it to reach the top**. I will not describe things myself and link to other important posts for reference.

<center>
![STEEM](http://i.imgsafe.org/17df48acf7.gif)
</center>

## Payment reward ingredients

Payment reward ingredients are : Account's holdings of **Vesting Shares (Vests)**, converted into **STEEM Power**, current **Voting Power** which gives **Reward Shares** value, votes' **timing** and **Vote weight**. All those things combined make a single **VOTE** reward and multiple votes that collectively sum up to a **total reward** for a post that is later split into **three parts**. **Two** parts go to the author and the **third** part of the reward goes to people that **curated** the post. Post curation is an activity of making a post popular by getting it noticed by other people and encourage them to add their upvotes that **further increase** total pending payout, making the post trending and even **viral** in extreme cases.

STEEM Vote state is kept inside of an object that has internal representation as:

```
struct vote_state {
      string         voter;
      uint64_t       weight = 0;
      int64_t        rshares = 0;
      int16_t        percent = 0;
      share_type     reputation = 0;
      time_point_sec time;
   };
```

## Payment reward windows

The payment and how it is split depends on three payment reward windows:

* First 30 minutes after a new post is submitted is called **STEEMIT REVERSE AUCTION WINDOW**. This is a time when the early votes receive a penalty. Please see below for the details.
* **30 minutes to 24 hours** is the remaining time for the first payout window, the penalty for early voting is equal to **0**.
* 30 days for the second payout window. **Upvotes after 30 days do not bring any reward** to the author anymore.

Note: Also votes in the last minute of the 24 hour window do not increase the reward in the first payout.

### Curation

Curation algorithm was changed already, in the beginning 50% of the rewards went to curators, now it is 25% of the total payout to the curators.

### Early vote penalty

During the first 30 minutes after post is published early votes get a penalty. Currently this penalty is calculated as a linear equation:

```
/// discount weight by time
uint128_t w(max_vote_weight);
uint64_t delta_t = std::min( 
      uint64_t((cv.last_update - comment.created).to_seconds()), 
      uint64_t(STEEMIT_REVERSE_AUCTION_WINDOW_SECONDS) );
      
w *= delta_t;
w /= STEEMIT_REVERSE_AUCTION_WINDOW_SECONDS;
cv.weight = w.to_uint64();
```

[Here is the post](https://steemit.com/steem/@abit/new-curation-reward-algorithm-huge-penalty-to-early-voters) that elaborates a bit more on it and gives a few examples.

### Post reward vs Reward Pool

This paragraph will be the most interesting for you who want to learn how their reward is calculated. If you paid attention to my previous posts in the series you noticed how Reward Shares were calculated and converted.

How Much Share of Vesting Shares Your Account Has (how rich in STEEM POWER you are) * current Voting Power == Reward Shares

The crucial thing to understand is that the **rewards** are taken from a pool of shares. What does it mean? 

The total rewards payout amount on STEEMIT.COM does not increase when the total number of upvotes increases. **The reward pool is always the same**. People with the most STEEM POWER decide **how** this pool is divided by bringing their votes. The more total votes weight the bigger piece of pie the author receives.

Where do the reward shares come from? They are mined by **witnesses**. A set of 21 witnesses provides a round of blocks that are added to the blockchain every 21 * 3 seconds for a block = 63 seconds. 19 of those witnesses are the ones selected by community, one witness is a miner and 21st witness is a backup witness. 

The total pool of produced Vests is divided and part of it lands to reward shares pool. I was looking for a way to describe this and and think that a picture is worth 1000 words let's imagine that reward shares come from witness nodes like drops of water (vests) into the reward pool.


![drops](http://i.imgsafe.org/1a6686239c.gif)


If you would like to know how much goes to reward pool, compared to total STEEM supply imagine that daily reward pool increases with 2 bottles of fresh water (Vests) and the total supply is a whole bath of water.


| Reward shares added | Total vests added |
| ------------------- | ------------ |
| ![reward pool](http://i.imgsafe.org/1a94078892.jpg) | ![supply](http://i.imgsafe.org/1a948ae167.jpg) |


### Math

In order to explain the math behind the reward calculation and how a single vote affects the total payout I will give you the best possible resource available. A link to post of the man behind it:

[CLICK HERE TO READ THE MOST IMPORTANT POST ON STEEMIT.COM THAT EXPLAINS MATH BEHIND REWARD CALCULATION AND THE REASON WHY THIS ALGORITHM IT WAS CHOSEN.](https://steemit.com/steem/@theoretical/the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0)

### Promotion

The new kid on the block is **post promotion**. Sending a certain amount of STEEM Dollars to @null account makes the post to be promoted, and it gets higher on the promoted page. 

See [my previous post](https://steemit.com/steem/@cryptomental/steem-internals-5-what-exactly-happens-after-you-press-promote-button) for the explanation on how this works.

### Last week's TOP #1 post decomposed

If you were ever wondering how much of the TOP #1 post reward comes from whales and how much from less wealthy accounts I wanted to prepare a breakdown and a pie chart of this weeks post as reported my @masteryoda's [Weekly payouts leaderboards](https://steemit.com/stats/@masteryoda/weekly-payouts-leaderboards-september-week-3).

**but instead** surprise, surpise accoring to 'Teach a Man To Fish, and You Feed Him for a Lifetime' I will show you how dive into it using steemtools:

* Get a post.
```
>>> p = Post("@charlieshrem/mackerelcoin-and-my-socioeconomic
             -observations-from-prison-part-1-by-charlie-shrem")
```
* Get all votes of the post.
```
>>> votes = p.get_votes()
```
* Print the votes, take a red or blue pill and you are in the Matrix ;-)
```
>>> pprint.pprint(p.get_votes())
[{'percent': 5000,
  'reputation': '261787136527',
  'rshares': '252134242564',
  'time': '2016-09-16T00:32:45',
  'time_elapsed': 17610,
  'voter': 'barrie',
  'weight': 0},
 {'percent': 10000,
  'reputation': '32623790898042',
  'rshares': '30683272195782',
  'time': '2016-09-15T20:01:24',
  'time_elapsed': 1329,
  'voter': 'smooth',
  'weight': '190540463439063918'},
 {'percent': 10000,
  'reputation': '82872772599',
  'rshares': '231815399848',
  'time': '2016-09-15T19:43:03',
  'time_elapsed': 228,
  'voter': 'anonymous',
  'weight': '11673677559637431'},
 {'percent': 10000,
  'reputation': '13454183968174',
  'rshares': '14447540316039',
  'time': '2016-09-15T20:27:51',
  'time_elapsed': 2916,
  'voter': 'summon',
  'weight': '68649310583817370'},
 {'percent': 10000,
  'reputation': '66194716837623',
  'rshares': '39229021022738',
  'time': '2016-09-15T20:00:45',
  'time_elapsed': 1290,
  'voter': 'blocktrades',
  'weight': '646627151913988433'},

...
```

## Tools

I mentioned steemtools. There are already a few tools that may be helpful for you to calculate your rewards and decompose them. Please find below a few examples:

* STEEM Vote weight calculator by @burnin
* STEEMTOOLS by @furion
* piston and python-steemlib by @xeroc

I do not expect many upvotes for the post considering my previous payouts. Please upvote it though if you liked it. ;-)

---

*DISCLAIMER: THE INFORMATION IS DELIVERED FREE OF CHARGE AND 'AS IS' WITHOUT WARRANTY OF ANY KIND. I HOPE IT IS ACCURATE AND FREE OF ERRORS AND YOU FIND IT USEFUL.*
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 115 others
properties (23)
authorcryptomental
permlinksteem-internals-10-payment-reward-system-demystified
categorysteem
json_metadata{"tags":["steem","steeminternals"],"users":["null","masteryoda","burnin","furion","xeroc"],"image":["http://i.imgsafe.org/17df48acf7.gif","http://i.imgsafe.org/1a6686239c.gif","http://i.imgsafe.org/1a94078892.jpg","http://i.imgsafe.org/1a948ae167.jpg"],"links":["https://steemit.com/steem/@abit/new-curation-reward-algorithm-huge-penalty-to-early-voters","https://steemit.com/steem/@theoretical/the-steem-reward-system-part-6-curation-rewards-calculus-with-s-greater-than-0","https://steemit.com/steem/@cryptomental/steem-internals-5-what-exactly-happens-after-you-press-promote-button","https://steemit.com/stats/@masteryoda/weekly-payouts-leaderboards-september-week-3"]}
created2016-09-22 12:03:36
last_update2016-09-22 12:04:21
depth0
children15
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value25.741 HBD
curator_payout_value5.677 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length8,517
author_reputation6,756,831,217,523
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,326,585
net_rshares25,061,245,318,697
author_curate_reward""
vote details (179)
@alex2016 ·
Cool article! Welcome to me blog @alex2016
properties (22)
authoralex2016
permlinkre-cryptomental-steem-internals-10-payment-reward-system-demystified-20160926t135248725z
categorysteem
json_metadata{"tags":["steem"],"users":["alex2016"]}
created2016-09-26 13:52:48
last_update2016-09-26 13:52:48
depth1
children0
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length42
author_reputation14,164,066,108,826
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,365,590
net_rshares0
@arcange ·
Great post with lot of useful information. Thanks!!

DISCLAIMER: MY UPVOTE IS DELIVERED FREE OF CHARGE AND 'AS IS' WITHOUT WARRANTY OF ANY AUTHOR REWARD.
👍  
properties (23)
authorarcange
permlinkre-cryptomental-steem-internals-10-payment-reward-system-demystified-20160922t154607220z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-22 15:46:06
last_update2016-09-22 15:46:06
depth1
children1
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length153
author_reputation1,146,633,668,945,473
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,328,531
net_rshares62,231,177
author_curate_reward""
vote details (1)
@cryptomental ·
I like your disclaimer as well !
properties (22)
authorcryptomental
permlinkre-arcange-re-cryptomental-steem-internals-10-payment-reward-system-demystified-20160923t051958912z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-23 05:19:57
last_update2016-09-23 05:19:57
depth2
children0
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length32
author_reputation6,756,831,217,523
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,334,893
net_rshares0
@dek · (edited)
Wow, I mean wow - finally a good and coherent explanation of the rewards system! Voted and subscribed!

I need to hear your thoughts on a [question](https://steemit.com/steemit/@dek/hah-no-curation-reward-for-the-first-30-minutes) I asked earlier - you're obviously way more knowledgeable than I am. Thank you!
properties (22)
authordek
permlinkre-cryptomental-steem-internals-10-payment-reward-system-demystified-20160922t123609718z
categorysteem
json_metadata{"tags":["steem"],"links":["https://steemit.com/steemit/@dek/hah-no-curation-reward-for-the-first-30-minutes"]}
created2016-09-22 12:36:12
last_update2016-09-22 12:36:54
depth1
children5
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length310
author_reputation14,523,505,395,648
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,326,785
net_rshares0
@cryptomental ·
Thanks a lot for the feedback! This is my first post with so many upvotes. I feel like I jumped from the outer space :D Let's hope my jump will not end up like this

![](http://i.imgsafe.org/3d22ef19f3.gif)

I am now going to the swimming pool to cool down :-)
👍  ,
properties (23)
authorcryptomental
permlinkre-dek-re-cryptomental-steem-internals-10-payment-reward-system-demystified-20160922t125615247z
categorysteem
json_metadata{"tags":["steem"],"image":["http://i.imgsafe.org/3d22ef19f3.gif"]}
created2016-09-22 12:56:15
last_update2016-09-22 12:56:15
depth2
children4
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length260
author_reputation6,756,831,217,523
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,326,912
net_rshares62,231,177
author_curate_reward""
vote details (2)
@dek ·
Nice .gif! :) Hopefully your posts will get much more attention from here on!

Do share your opinion on the question I linked in my previous comment - I'd like to hear your thoughts.
properties (22)
authordek
permlinkre-cryptomental-re-dek-re-cryptomental-steem-internals-10-payment-reward-system-demystified-20160922t131253880z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-22 13:12:57
last_update2016-09-22 13:12:57
depth3
children3
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length182
author_reputation14,523,505,395,648
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,327,052
net_rshares0
@shadowspub ·
hello @cryptomental, I stopped back to let you know you were one of my favourite reads today. [You can see what I wrote about you here](https://steemit.com/curation/@shadowspub/sept-23-steemit-ramble-notes-on-my-favourite-reads)
properties (22)
authorshadowspub
permlinkre-cryptomental-steem-internals-10-payment-reward-system-demystified-20160924t020942160z
categorysteem
json_metadata{"tags":["steem"],"users":["cryptomental"],"links":["https://steemit.com/curation/@shadowspub/sept-23-steemit-ramble-notes-on-my-favourite-reads"]}
created2016-09-24 02:09:45
last_update2016-09-24 02:09:45
depth1
children1
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length228
author_reputation629,616,007,726,694
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,343,578
net_rshares0
@cryptomental ·
Thanks! I appreciate you added me to you favourite reads of the day!
properties (22)
authorcryptomental
permlinkre-shadowspub-re-cryptomental-steem-internals-10-payment-reward-system-demystified-20160924t153745985z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-24 15:37:45
last_update2016-09-24 15:37:45
depth2
children0
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length68
author_reputation6,756,831,217,523
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,347,490
net_rshares0
@stranger27 ·
Oh, man! You did really useful post! Isearched for this info couple of days without any result. Thank you!
👍  ,
properties (23)
authorstranger27
permlinkre-cryptomental-steem-internals-10-payment-reward-system-demystified-20160922t151031542z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-22 15:10:36
last_update2016-09-22 15:10:36
depth1
children1
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length106
author_reputation49,275,349,388,874
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,328,118
net_rshares5,426,313,325
author_curate_reward""
vote details (2)
@cryptomental ·
I am glad I could help!
properties (22)
authorcryptomental
permlinkre-stranger27-re-cryptomental-steem-internals-10-payment-reward-system-demystified-20160923t052959027z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-23 05:29:57
last_update2016-09-23 05:29:57
depth2
children0
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length23
author_reputation6,756,831,217,523
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,334,956
net_rshares0
@teatree ·
People don't maximise their voting power. They tend to do a lot of votes in a short period of time, and then nothing for the other 23 hours. Whereas spreading their votes out throughout the day allows their account to recover power, and thus provide the max amount of reward shares.
👍  , , ,
properties (23)
authorteatree
permlinkre-cryptomental-steem-internals-10-payment-reward-system-demystified-20160922t133254231z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-22 13:32:54
last_update2016-09-22 13:32:54
depth1
children1
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length282
author_reputation18,719,169,581,521
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,327,194
net_rshares124,827,223,219
author_curate_reward""
vote details (4)
@cryptomental ·
This is correct. Due to a daily schedule not everyone is able to periodically check new content and curate it. It is also not possible during the night. This is why wealthy account owners either
1) Write a curation bot or pay someone to write it for them.
2) Hire human curators in different time zones for a fee.
This is very rare for less wealthy accounts though and I suspect that will remain as is.
properties (22)
authorcryptomental
permlinkre-teatree-re-cryptomental-steem-internals-10-payment-reward-system-demystified-20160923t052922341z
categorysteem
json_metadata{"tags":["steem"]}
created2016-09-23 05:29:21
last_update2016-09-23 05:29:21
depth2
children0
last_payout2016-10-23 17:06:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length402
author_reputation6,756,831,217,523
root_title"STEEM internals #10: Payment reward system demystified."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,334,950
net_rshares0