Staking Reward Calculator

Hi All,

I’d like to share with you the calculator that I created for working out expected staking rewards of stake pools and how these are affected if pool and network parameters are changed. This work branched out from a topic with @brouwerQ where we delved into the reward formula

What does the calculator do?:

  • shows the expected annual return of a stake pool for the operator and the delegators
  • shows the distribution of these returns using a Monte Carlo simulation, this is particularly important for smaller pools where the range of rewards can be much higher or lower than expected due to luck
  • comparison between pools
  • tweak the monetary policy parameters, pool parameters and reward parameters and see how the expected rewards change

What questions does it help to answer for Pool Operators?

  • Is it worth running a new stake pool if pledge x and get y from delegators?
  • what is the expected return of a pool and how much lower/higher can it be due to luck alone?
  • from a reward point of view is it better to have your ada as a pledge or a stake?
  • how does my pool compare to another pool x?
  • how many blocks can I expect to mint in a year?
  • how much ada can I expect to receive per minted block?
  • I have not minted any blocks in the last x epochs, is it normal for my pool?
  • if the reward parameters x is changed how will it affect by pool?
  • can you show me how the Cardano monetary policy and reward formula work?

What questions does it help to answer for Delegators?

  • what is the expected return of a pool that I am delegating to and how much lower/higher can it be due to luck alone?
  • I am thinking of moving my stake to another pool, will I get a better return? Will this return be more stable?
  • the pool to which I have delegated has not minted any blocks, how many blocks is it expected to mint?
  • I want to compare the expected returns from across 5 different pools, how do I do it?
  • do pools with a small stake generate a higher return compared to pools with a large stake?

Disclaimer: this is a prototype for educational purposes only, I am not advocating that you delegate to any particular pool and be sure to do your own research

Link to the calculator:

If you know the pool id that you want to analyze then you can add it at the of the URL like this:

You might need to refresh the page once for it to sync with the blockchain


Would be great to hear what you think


Nice calculator with good visualization. Thanks @dstratio for working on it! :+1:

This is fantastic work - thanks a million. Would it be possible to have the poolId as url parameter, so that we can have pool specific bookmarks?

Thanks for the feedback! I haven’t managed to get the SMASH server working and pushing pool details to PostgresSQL yet, so I don’t have access to the pool meta data besides the pool id… equally as a result don’t have the pool web addresses.

If anyone can work out how to add SMASH service to the same docker-compose file in this repo then I would very happy to add all the other pool info to the calculator and would also add the ability to search by pool ticker

I meant having this field prefilled with a poolId from an url parameter



Ok that is a good feature to have!
I have added so now you do something like this:

1 Like

Can you make ‘Total Staked ADA’ editable pls?

Nice job @dstratio. Just wondering if you would open the code. I’m good at coding but not in mathematics. It would be great for me to see the code to understand how the calculations are made.

Thank you anyway.

I would use ~ API Documentation for this purpose. Is very straightforward, and you don’t have to deal with all the stack of Cardano. Which is very overwhelming at this moment.