YOP Documentation
Search…
πŸ“Š
Boosting APYs
What are the various APYs and how they are calculated
APY is a common way to show the expected returns of an investment and would normally be quoted as a single figure. However, with the Boosting feature, each user's return will be unique to their Staking and Vault positions, which means a single number is not enough be used as the APY indicator for the Vaults. In the YOP dApp you will see a few different APY values across different pages and they are usually not the same. This document will explain what these values are and how they are calculated.

When you land on the Vaults page, you will see there is a APY range for each vault. For example, the following is a screenshot of the dApp on May 5, 2022:
YOP Vaults List Page (May 5 2022)
As explained in the previous sections, the APY includes both Base APY and Reward APY. Since the Base APY is the same for all users, the APY range shown is only affected by the Reward APY range. This document will only focus on the Reward APY.
For each Vault, there is an overall Reward APY. This is simply calculated as (both values are convert to dollars):
APYoverall=totalVaultRewards/vaultCapAPY_{overall} = totalVaultRewards/vaultCap
The main factors that can change the overall APY are the YOP emission allocation to a Vault, and the price movements of the $YOP and underlying Vault tokens. User interactions with the Vault won't impact the overall APY (since vaultCap is fixed number).
In a Vault, a user will get the minimum Reward APY if they don't have any boost (boostMultiplier is 1), and every one else has boosted (denoted as averageBoostMultiplier), and it is 1/averageBoostMultiplier of the overall APY.
Similarly, a user will get the maximum rewards APY if they have the maximum boost (boostMultiplier is 10) and every one else has average boost, and it is 10/averageBoostMultiplier of the overall APY.
The following formulas show how the range is calculated
APYmin=totalVaultRewards/vaultCapβˆ—1/averageBoostMultiplierAPY_{min} = totalVaultRewards/vaultCap*1/averageBoostMultiplier
APYmax=totalVaultRewards/vaultCapβˆ—10/averageBoostMultiplierAPY_{max} = totalVaultRewards/vaultCap*10/averageBoostMultiplier
There are a few things worth highlighting in the above formula.
First of all, the Vault Cap is used to calculate the APY range. So effectively it means this is the projected APY users will get when the Vault is full. This is to make sure our users will see a realistic APY range on this page. However, it does mean that until a Vault is full, the actual APY will be much higher than this range.
Secondly, the averageBoostMultiplier could change every time after a user deposits, as each user's boost multiplier is different. If the averageBoostMultiplier becomes higher, the APY range will be lower, and vice versa. So the APY range on this page will change too.
Take the Ethereum Vault as an example, at the time of writing, 9% of the total emission is allocate to it. If the YOP token price is $0.20, that means the total YOP rewards for the vault for year 2022 is:
3,891,930 * 0.09 * $0.20 = $70,054.74
The vault cap is $300,000, which means the overall APY for the vault is:
$70,054.74/$300,000 = 23.35%
The averageBoostMultiplier can be calculated as totalBoostedBalance/totalBalance. At the time of writing, the totalBoostedBalance for the vault is 158383700212207266255 (returned by the totalBoostedSupply field on the contract ) and totalSupply is 76041043152348511319 (returned by the totalSupply field on the contract), and averageBoostMultiplier is
158383700212207266255/76041043152348511319 ~= 2.082
Using these data, the minimum rewards APY is
23.35% / 2.082 = 11.2%
and maximum rewards APY is
23.35% * 10 / 2.082 = 112.1%
The base APY for the Ethereum Vault is about 4.9%, so that gives us the total range between 16.1% - 117%.
If another user deposits 10 ETH to the vault, and the user has a boost multiplier of 10, after this user's deposit, the new vault's averageBoostMultiplier will become:
(158383700212207266255 + (10 * 1e18) * 10)/(76041043152348511319 + (10 * 1e18)) = 3.003
and the new APY range will be:
min = 23.35%/3.003 = 7.8%
max = 23.35% * 10 / 3.003 = 78%

On the Boost page, there are 2 additional APY values: Current APY and Boosted APY. At this point, since we know the user's balances in each Vault, we will be able to calculate the real APY that the user is getting at this particular point in time, using the user's real balances.

This is the latest and real APY that user is getting in each Vault at the time of calculation. It is calculated using the following formula:
APYcurrent=totalVaultRewardsβˆ—userCurrentBoostedBalance/vaultCurrentTotalBoostedBalance/userBalanceAPY_{current} = totalVaultRewards * userCurrentBoostedBalance/vaultCurrentTotalBoostedBalance / userBalance
Since this uses the Vault's current total boosted balance for calculation, if the Vault is not full, this APY value could be much higher than the top range of the APY displayed on the vault list page. This is correct and by design - it encourage users to get to the Vault earlier to take advantage of additional rewards. Once the Vault is full, this won't happen anymore.
Continue using the Etheruem Vault as an example. If a user has $3000 (1 ETH) deposited into the Vault, and has a boost multiplier of 10 (maximum boost), and the Vault currently is 75% full, So the APY this user will get can be calculated as:
$70,054.74 * (1e18 * 10)/158383700212207266255 / $3000 = 147.43%
Which is higher than the top of the range displayed on the Vault list page (117%).

When a user changes the YOP amount and duration in the calculator, the staking power of the user will change, and that in turn will change the user's boosted balance in each Vault, and that will be reflected in the boosted APY value. It is calculated as:
APYboosted=totalVaultRewardsβˆ—userBoostedBalance/vaultTotalBoostedBalance/userBalanceAPY_{boosted} = totalVaultRewards * userBoostedBalance/vaultTotalBoostedBalance/userBalance
In the above formula, userBoostedBalance is recalculated using the YOP amount and duration the user has entered in the calculator, based on the formula that is described in the Boosting Formula section. vaultTotalBoostedBalance is then updated to take into account of the boosted balance change of this user.
It is very likely the boosted APY from the calculator won't be in the range of the APY that is displayed on the Vault list page, even after the Vault is full. This is because a user can still change their boosted multiplier after a Vault is full (by changing their staking power), and that will in turn change the averageBoostMultiplier, which in turn will change the APY range again.
In the same Ethereum Vault from previous examples. At the moment, a user has a deposit of $3000 (1 ETH) in the Vault, and their current boost multiplier is 5. The user entered new YOP amount and duration that changes their boost multiplier to 8. Then the boosted APY is calculated as:
$70,054.74 * (1e18 * 8)/(158383700212207266255 + 1e18 * (8 - 5)) / $3000 = 115.76%

On the My YOP page, for each of the user's Vault position, they will also see a Boost Potential value. This is the APY that the user will get if their boost multiplier is 10, calculated against the Vault's new total boosted balance:
APYpotential=totalVaultRewardsβˆ—(userBalanceβˆ—10)/vaultTotalBoostedBalance/userBalanceAPY_{potential} = totalVaultRewards * (userBalance * 10)/vaultTotalBoostedBalance/userBalance
The boost potential APY value here has no direct relationship to the current vault APY range displayed in the Vaults list page. This value can be higher, lower or equal to the high end of the range that is currently displayed. This is because if the user has made a such transaction to maximise their boost multiplier, it will change the averageBoostMultiplier of the Vault, and thus in turn change the APY range. However, the current APY range displayed doesn't include such transaction. But once user made such transaction, they will see this boost potential value is equal to or higher than the high end of the new APY range (higher if the Vault is not full).
Example 1: In the same Ethereum Vault from previous examples. At the moment, a user has a deposit of $3000 (1 ETH) in the Vault, and their current boost multiplier is 5. The boost potential APY is then calculated as:
$70,054.74 * (1e18 * 10)/(158383700212207266255 + 1e18 * (10 - 5)) / $3000 = 142.92%
This is higher than the higher end of the current APY range. However, after the user made such transaction, the new averageBoostMultiplier will become:
(158383700212207266255 + (1 * 1e18) * (10 - 5))/76041043152348511319 = 2.149
and the high end of the APY range will become:
23.35% * 10 / 2.149 = 108.7%
and the potential boost is higher because the Vault is not full.
Example 2: A user has a deposit of $150,000 (50 ETH) in the Vault, and their current boost multiplier is 2. The boost potential APY is then calculated as:
$70,054.74 * (50e18 * 10)/(158383700212207266255 + 50e18 * (10 - 2)) / $150,000 = 41.82%
This is lower than the current higher end of the APY range. However, after the user made such transaction, the new averageBoostMultiplier will become:
(158383700212207266255 + (1 * 1e18 * 50) * (10 - 2))/76041043152348511319 = 7.343
and the high end of the APY range will become:
23.35% * 10 / 7.343 = 31.8%
and the potential boost is higher because the Vault is not full.
Copy link
On this page
Vault APY Range
Boost APYs
Boost Potential APY