The diagram above is outdated and incomplete.
The first difference is that it’s 0.3% that is taken from the reserve instead of 0.22%.
The second difference is that before the treasury part is taken from it, this amount is corrected for the number of blocks produced. If less than 21600 blocks are produced, this amount multiplied by blocks minted / 21600, and the rest stays in the reserve. If 21600 or more blocks are minted, it stays the same. This part must be done before the virtual pot node in the diagram. So less than 21600 blocks minted also means less ADA going to the treasury.
After the treasury part is set aside, there’s more ADA flowing back to the reserve due to:
- Pledge less than 100% saturation
- Oversaturation of a pool
- Not all ADA staked
This last part is because of two kinds of relative stake used in the rewards formula:
- The optimal pool rewards part uses pool stake relative to total stake (i.e. circulating supply).
- The apparent performance part used pool stake relative to active stake (i.e. stake delegated to non retired pools).
Because of this, is you simplify for zero pledge, the relative pool stake cancels out and the ratio active stake / total stake remains.
This difference between the two pool stakes isn’t explained on the rewards formula page in the docs, but I did some digging around after experiencing that my pool rewards didn’t match my calculations of what it should be. And then I found the following document and I saw the light: https://hydra.iohk.io/build/6752481/download/1/delegation_design_spec.pdf
Notice this doesn’t matter for ROA though. If only half of the now staked ADA is staked, and the pool’s stake stays the same, it’s percentage of the active stake doubles, twice the number of blocks will be minted on average and the total rewards the pool gets for the epoch stay the same. If the pool also suffers from the lost delegation, it’ll mint the same number of blocks as before but will only get about half of the rewards; but it also has to divide it amongst half the amount of stake, so the ROA also stays the same! I’m ignoring the influence of fixed fee here for simplicity.