Skip to main content

Yield Calculation on Explorer

The Livepeer protocol is built around workers who perform video transcoding. An orchestrator is the name for the protocol participant who performs the transcoding on the network - see our visual introduction. If another user is looking to participate in the Livepeer network, they can contribute by staking (bonding) LPT with an orchestrator and earning passive rewards for improving the economic security of the network.

The explorer includes a calculation of return on investment for LPT stake to an orchestrator. This document explains how that calculation is performed and how it can be inaccurate/manipulated by orchestrators.

Calculation

Orchestrator Parameters

When an orchestrator registers their Ethereum address on the network, they are required to choose their parameters for how they share revenue with stakers.

These percentages are defined as fee share, sfeess_{fees}, and reward share, srewardss_{rewards}. These can be changed at any time.

Orchestrator Metrics

An orchestrator also has performance metrics which are used. They must request inflationary rewards each round on behalf of their delegators. The ratio of successful reward calls, rrewardsr_{rewards}, is defined as:

rrewards=rewardCalls/nr_{rewards} = rewardCalls / n

Where nn is the number of rounds (up to 90 rounds depending on the time the orchestrator has been active) and rewardCallsrewardCalls is the count of successful reward calls.

An orchestrator also has lorchl_{orch} which is the active stake they currently have on the network.

Lastly, orchestrators earn fees for work performed, and the average is taken over the course of 90 days as vdailyv_{daily}, which is denominated in ETH.

Protocol Parameters

There are also protocol-level parameters which factor into how inflationary rewards are distributed and change over time.

The inflation rate increases/decreases when the target participation rate is not met. For simplicity, we assume in the yield calculation that the current inflation rate, rinfr_{inf}, will stay constant.

The current token supply is defined as ltotall_{total} and the current active stake (LPT which has been delegated) is lactivel_{active}.

Equation

Transcoding Fees

The transcoding fees are simpler and calculated using:

yieldETH=(vdaily365)(sfees)(pp+lorch)yield_{ETH} = ({v_{daily} * 365}) * (s_{fees}) * {\left( p \over p + l_{orch} \right)}

The first part calculates the estimated fee volume in ETH for the orchestrator for the year.

The second includes the fee share which the orchestrator has set.

The last part takes the ratio of the delegator's stake to the total orchestrator stake.

Inflationary Rewards

The combined equation also includes input from the user, which is the amount of LPT they want to stake. This principle is defined as pp.

yieldLPT=(ltotal(1+rinf)417ltotallactive)((p+lorch)rrewards)(srewardsp(p+lorch))yield_{LPT} = { \left( l_{total} * (1+r_{inf})^{417} - l_{total} \over l_{active} \right)} * {((p + l_{orch}) * r_{rewards}) } * (s_{rewards} * {p \over (p + l_{orch})})

The first part of the equation is the estimated total rewards which will be given out to all orchestrators over the next year, based on current inflation, active stake, and Ethereum block times (417 rounds in one year).

The second part then calculates the amount of rewards which the orchestrator would receive over the year.

The last part calculates the ratio that the delegator will receive, based on their principal, pp, that they stake on the orchestrator, as well as the orchestrators reward share, srewardss_{rewards}.

Combined Equation

The total yield can then be calculated as (with priceLPT/ETHprice_{LPT/ETH} pulled from Uniswap):

yieldtotal=yieldLPT+yieldETH(priceLPT/ETH)yield_{total} = yield_{LPT} + yield_{ETH} * (price_{LPT/ETH})

The implementation of this equation can be found in the Explorer Github repository.

Inaccuracies/Pitfalls

Variable Orchestrator Parameters

The parameters which an orchestrator sets for their fee cut and reward cut are highly subject to change. A malicious orchestrator could set their fee cut to be very low, and then manipulate that number once they have a large number of delegators. A delegator should look for orchestrators who have not changed their fee/reward cuts often, and continue to monitor their orchestrator and switch if they change their rewards to less favorable percentages.

Inflation Rate Change

As mentioned previously, the inflation rate is subject to change depending on the participation rate (the amount of LPT staked in the network). The yield calculation assumes that the participation rate will stay constant, but this could prove to be inaccurate.