The methodology uses a rolling window calculation of total rewards based on the time periods (1 day, 7 days, 30 days, all-time) and the latest available day where validator rewards are calculated.

The calculation of total rewards accounts for CL+EL rewards divided by active stake and NOT counting rewards earned.

The total rewards are then divided by the total active_stake per identified entity in the given time period. This is determined primarily by counting the number of active_validators per entity and multiplying that by the stake requirement which is 32 ETH.

APR % = total rewards in ETH / active_stake / time_period * 365 days * 100

In order to control for noise introduced by differing activation times of validators in a group and the rewards they contribute to the aggregate group (e.g. an operator), the APR% calculation ONLY takes into consideration validator indices that have been active for the whole of the query window.

The maximum time-frame we are enabling at the moment (under ALL) is capped to 90 days in order to allow for better comparisons by not introducing disruptions such as the Genesis validators enjoying double digit APR% by merit of being early to the set.

If you would like to discuss the methodology implemented here, and propose suggestions and/or improvements, please head to our forum.

Currently, the calculation makes no distinction whether the validators of an entity/operator were activated via re-staked ETH rewards (i.e. execution layer rewards) or by external stakers. We will soon be updating our methodology to reflect compounding in pools that explicitly seek to do so.

Last updated