It’s only been a few Epochs since Stake Pools started making blocks, but already the rewards are flowing! Some pools have risen to the top and attracted a lot of stake, while others are struggling to attract enough delegators to make blocks.


We wanted to take some time today to look at ROA  (Return of ADA) across pools, particularly how it’s effected by the size of the pool, and what we as pool operators can do to ensure that our delegators are receiving the maximum returns. Our hope is that delegators can consume this information to gain a deeper understanding of  how their rewards will be affected by which pool they choose to stake with. We will also go over a change we will be making to our business model to help overcome the ‘small pool tax’ which they incur when delegating with a pool which is smaller than 10M ADA – see below for more details.

Note that the visualizations below are best viewed in desktop for maximum interactivity.

Executive Summary

At the current level of ‘d’, the variability in ROA across pools due to luck is very large, particularly in the smaller size range. Because of this, we looked at the theoretical ROA based on pool size and visualized the ‘small pool tax’ which is a result of the fixed fee making a larger percentage of the fees charged to delegators staking with smaller pools.

Using this, we created a variable fee schedule for our delegators in order to target a minimum acceptable ROA for our pool. This way we hope to be fair to our delegators by providing them a good ROA, while also providing us as pool operators a roadmap to achieving enough margin to pay for expenses, and be compensated for our time in a predictable and transparent manner.

Please note that this analysis is based on the information we have as of the date of writing this article. Things are changing very quickly and with every new piece of data, and every new release/change to Cardano, we’ll be reassessing our position and adjusting accordingly. As always, we’ll be sharing what we find as we go.

The fee schedule is as follows:

  • At pool size < 13M – 1%
  • When pool size reaches 13M – 2%
  • When pool size reaches 19M – 3%
  • When pool size reaches 23M – 3.5%

Refer to the analysis below to see how we reached this schedule.


The main data source for this was which provides pool data in a json format for analysis. The data in this analysis has been updated as of 2020-09-09. We also constructed a theoretical dataset in order to model some scenarios and come up with thresholds.

For this analysis, we need to determine what is the maximum expected ROA for a pool performing well with a high level of stake. For this looked to two areas:

First, the staking calculator  on – this tells us if we delegate to a saturated pool charging 0% Fee – we should see an annual ROA of 5.31%

Second, we looked at what the data tells us – specifically we looked at the actual 6 epoch average ROA from – take a look at the viz below which is showing ROA vs Active Stake. The colors indicate the fees for the pool, red indicating high fees. Feel free to hover over a circle for details on the pool.


As you can see, on the lower end of the active stake, the variation is extremely high – which is to be expected given that with lower stake pools, there is a lower number of expected blocks. This means that a lucky streak could result in an extremely high ROA. What is more surprising is that there is still a reasonable variability in the higher ranges of stake. Given that the ‘d’ parameter is still fairly high, this translates to a large value per block created. This means that a variation in a single block produced by a small pool can create an extremely high swing in ROA. Takeaway: luck is a big factor right now.

In order to get a cleaner view, we created a normalized metric which removes the variability caused by the stake pool fee, and also removed pools which produced less than 8 blocks. See below for the normalized view:

What we can also see, is that if we attempt to plot a line to represent the average normalized ROA without fees, it looks to be higher than the theoretical maximum from the calculator of 5.31%, and is closer to 5.6%. We will use this as the theoretical maximum number in our calculations below.

Calculating Theoretical ROA

When determining the ROA of a pool, 3 factors come into play:

  1. The Fixed Fee of the pool (currently set to a minimum or 340 ADA)
  2. the Variable Pool Fees, which tend to range from 1%-5%
  3. The size of the pool itself

Below, we plot theoretical ROA vs Pool Size. The individual lines represent different variable fee structures for the pool. What you can see from the plot below, is that the fixed fee has a much larger impact on pools with smaller stake, meaning the theoretical ROA for smaller pools will tend to be lower.

From this, we determined, what should our target minimum ROA be for our delegators. We looked at the limit of the 5% curve, which would approximate theoretical rewards which delegators to a large popular pool  such as  ‘BLOOM’ would get. BLOOM is a popular pool run by @bigpey.

This sets our minimum desired ROA to be in the neighborhood of 5.3%.

Using this minimum as a parameter, we can zoom in to see what this looks like in the range of smaller stake pools for different fee structures:

What we can see from this, is there are some inflection points where this minimum desired ROA can be reached at different Fee structures. 

Our goal from this analysis was to determine, what is the required variable fee that we would need to set, in order to achieve the minimum desired ROA for our delegators. 

To do this, we treated the ROA as a constant, and calculated the variable fee required to reach it. We plotted this variable fee vs pool size. The graph below illustrates this.

The red line is the true variable theoretical ROA line, (which starts at a negative number), the blue line is uses a minimum and maximum fee as limits.

Finally, graphed the ROA if we were to step the fee at our inflection points to always maintain our minimum ROA.

The actual theoretical ROA for our delegators would look like the following as the size of the pool grows. 


Based on this, we believe we should consider a fee schedule which encourages delegation by attempting to minimize the impact of what I’ll call the ‘Small Pool Penalty’ by lowering our fee until certain thresholds are met, thereby giving our delegators maximum return.

By raising our fee as we reach certain milestones, our delegators are still making a high return and not being penalized for choosing to stake to smaller pool, however our pool is still getting compensated for our efforts once we reach our milestones. 

This schedule would look like the following:

  • At pool size < 13M – 1%
  • When pool size reaches 13M – 2%
  • When pool size reaches 19M – 3%
  • When pool size reaches 23M – 3.5% – which is our current desired fee structure to cover our costs and provide enough profit to be viable

At Cardano Canucks, we approach running our stake pool as a business, and don’t believe in the race to the bottom which would result in everyone lowering their fees to zero. We love what we do, but if you want a strong stable ecosystem, you need to have competent operators running the network, that are compensated for the many hours they put in.

Let us know what you think. Should we implement a tiered fee structure which slowly goes up as we hit certain milestones? 

Feel free to reach out to us on our social channels, or join our Telegram Group for a realtime chat. 

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>