Search

How are Stake Pool Rewards calculated? Where do they Come From?

Updated: Dec 8, 2020

When the people ask "How are Stake Pool Rewards calculated?", the usual answer is to throw up the daunting equation:

Source: https://docs.cardano.org/en/latest/explore-cardano/understanding-pledging-and-rewards.html


What does the Rewards Equation mean?


Every stake pool takes a piece of the Rewards Pot (R), proportional to their Active Stake Size (σ) and pledge amount (s).


The higher the Staked and Pledged ADA, the higher the amount a Stake Pool gets from the Rewards Pot. This is obvious. If I stake 1,000 ADA vs. 1,000,000 ADA, I expect more rewards from staking the larger amount. Also, the higher the Rewards Pot (R), the higher the rewards for a stake pool will be. This is also obvious.


That only leaves these questions:

  1. How is the Rewards Pot (R) determined?

  2. How is annualized return (% ROA) calculated?

  3. How does Rewards Pot decay affect % ROA?

  4. How does Pledged ADA affect the % ROA?

  5. How do fees affect the % ROA?


How is the Rewards Pot (R) Calculated?


Figure 1 below illustrates how the Rewards Pot (R) for staking is calculated at every epoch.

Figure 1: Calculate Stake Pool Rewards on Cardano


The Rewards Pot comes from three sources:

  1. Transaction Fees

  2. ADA Reserves

  3. Deposits (not illustrated because it is not implemented yet)

Transaction (Tx) Fees

Every ADA transaction on Cardano blockchain has a Tx fee. All these fees in an epoch get added to the Rewards Pot (R).


ADA Reserves

Cardano started with 31B ADA in circulation, with 14B ADA left to use for monetary expansion. These Reserves are drawn from at an expansion rate of p (currently 0.3%) in order to help fund the Rewards Pot. The expansion rate is also affected by η, which is the apparent performance of all stake pools. The network expects to make 21,600 blocks per epoch (432,000 slots per epoch with 5% slots assigned to make blocks). Less blocks made would mean less rewards drawn from the Reserves, less rewards for all stake pools.


Deposits

UTxO entries in the future will have "non-refundable" deposits for the purpose of funding storage costs if a transaction needs to live on a node and consume storage.


Treasury & Stake Pool Rewards

A portion of the Rewards Pot is taken to fund the Treasury at a rate τ (currently 20%). The rest is distributed to Stake Pools where each pool calculates how much they gets using the Rewards Equation ( f(s,σ) ) at the beginning. Each Stake Pool's rewards are also affected by its apparent performance (p), similar to the ADA Reserve. The expected number of blocks made by a stake pool was outlined in a previous blog post. If a pool makes more blocks than expected, its performance (p) will be greater than 1, increasing the amount of rewards it gets for that epoch.


Unclaimed Rewards

Any remaining ADA in the Stake Pool Rewards Pot is returned to the Reserves. Rewards can be unclaimed under two conditions:

  1. The Stake Pool did not have its declared pledge available in its wallet(s)

  2. The Stake Pool is saturated

If a Stake Pool does not meet its pledge, all rewards will be unclaimed for that epoch. If a Stake Pool is saturated, its Rewards are capped, so the notion of "more stake, more rewards" is no longer true. Instead, you just have more stake, but have to distribute the same amount of rewards to more stakeholders, giving less rewards to everyone as a whole.


k parameter and Saturation

k parameter determines the saturation of a Stake Pool. It is currently set to 150, but will change to 500 on December 6, 2020, and 1000 on March 2021.


To calculate saturation:

z0 (Used for Rewards Calculation) = 1 / k
Saturation in ADA = Total ADA Supply / k

How is Annualized Return (% ROA) Calculated?


Stake pool websites like pooltool.io calculate the Annualized Return per Epoch as:

Annualized Return (% ROA) = ((Rewards to Delegators in ADA / Active Stake in ADA) * 73 Epochs in a Year) * 100

How does Rewards Pot Decay Affect % ROA?


Since a percentage of the Reserves are taken at every epoch, it will gradually get smaller after every epoch. This means that the Rewards Pot will also decay after every epoch. Assuming all Stake Pools performances are making all their expected blocks, and that Tx Fees are negligible the below Graph 1 illustrates how quickly % ROA degrades over several epochs. Remember that there are 73 epochs in a year. At peak performance and with negligible Tx fees, the % ROA from reserves will be halved in almost 3 years.

Graph 1: % ROA over Number of Epochs from ADA Reserves

https://www.desmos.com/calculator/nyiaq8wosu


Transaction Fees are not affected by this decay as it is added directly to the Rewards Pot. This means that % ROA is linearly affected by Tx Fees. When the Cardano network is used more, there shall be more rewards distributed to stake pools.


How does Pledged ADA affect the % ROA?


In the Rewards Equation, there was the a0 parameter, which represents how much a Stake Pool's pledge shall effect its % ROA. Currently, a0 is set to 0.3. Graph 2 below illustrates how Pledge affects % ROA.


Graph 2: Pledged Stake in ADA and its effects on % ROA

https://www.desmos.com/calculator/j09j44a8gg


I encourage you to play around with the graph and its parameters in Desmos. Essentially, the steepness of the pledge line is affected by:

  1. a0 parameter

  2. k parameter

  3. Total ADA Staked into the Pool

  4. Total ADA Supply

  5. Total Rewards Pot

The higher value for each, the steeper a0 is, the more of an impact pledge has on % ROA. At today's value for a0, Stake Pools need an absurd amount of pledge in order to make a difference in % ROA.


For example:

a0 = 0.3
k = 500
ADA Staked = 64 000 000
Total ADA Supply = 32 000 000 000
Rewards Pot in ADA = 31 000 000
ROA (0 ADA Pledged) = 5.44%
ROA (10M ADA Pledged) = 5.70%

At the time of writing, there are only three pools with 10M ADA pledged, and the difference is only 0.26%. The majority of pools are far below this.


There are several Community Improvement Proposals regarding pledge to make its affect different. An example is Shawn McMurdo's Curved Pledge. You can read more about it here.


How do fees affect the % ROA?


Graph 3 below illustrates how the current fee structure of a 340 ADA flat fee and margin (%) fee affect % ROA over Stake Pool Size.

Graph 3: % ROA for Stake Pool with 0% Margin vs. 5% Margin Over Pool Size

https://www.desmos.com/calculator/1q6gaawoo5


I also encourage you to play with the parameters of this graph to understand how Fees, the Reserve, and ADA supply affect % ROA.


In short, margin fees with a difference of 5% or less do not make a huge difference in % ROA.


For example:

a0 = 0.3
k = 500
ADA Staked = 40 000 000
ADA Pledged = 0
Total ADA Supply = 32 000 000 000
Rewards Pot in ADA = 31 000 000
ROA (0% Margin) = 5.38%
ROA (2% Margin) = 5.27%
ROA (5% Margin) = 5.11%

The difference between 0% and 2% margin is 0.11%, and the difference between 0% and 5% is 0.27%. If you have 100,000 ADA staked, there's a 270 ADA difference between 0% and 5% margin fee.


The mandatory 340 ADA flat fee heavily penalizes small Stake Pool sizes by taking a larger piece of the rewards, but this does not mean small Stake Pools are not worth staking to. Two main reasons why small Stake Pools are still relevant:

  1. Larger variance in performance (p)

  2. Supporting the security of Cardano's network through decentralization

Small stake pool will inherently benefit from having good luck. The difference of 1 or 2 blocks would mean a larger over-performance, taking more from the Rewards Pot. Whereas, an extra 1 or 2 blocks on a large pool makes not as big of a difference on performance. But, the reverse is also true. Bad luck will give poorer or no returns for small pools. Over time, it should even out to the % ROA in the graph above, but for the short term, it is possible to obtain a larger % ROA by getting lucky on small pools.


References

[1] Design Specification for Delegation and Incentives in Cardano. IOHK, July 23rd, 2020. https://hydra.iohk.io/build/3744897/download/1/delegation_design_spec.pdf

396 views0 comments

©2020 BEAVR Cardano Stake Pool