For every buy/sell transaction the vault manager performs, they have 3 key variables:

InitialPrice = Price before a transaction

Amount = Trade amount

ExecutionPrice= Price at which the trade is executed

For each given transaction:

PriceImpactLoss(USD)=(ExecutionPriceβˆ’InitialPrice)βˆ—AmountPriceImpactLoss(USD) = (ExecutionPrice-InitialPrice)*Amount

PriceImpactLoss gives us a simple way to understand how much has been lost in each trade due to price impact created by the trade. In very liquid markets such as ETH/USDC spot, PriceImpactLoss will be very small, whereas the more illiquid a market, the larger this value is going to be.

As a next step, for any given period of time (in the case of Vaults - each day), it can be calculated how much has the vault manager lost due to adverse price impact on trades. This is simply the sum of the individual PriceImpactLoss

TotalPriceImpactLoss(USD)=SUM(PriceImpactLossi)TotalPriceImpactLoss(USD) = SUM(PriceImpactLoss_i)

Now that we know the amount in USD that the vault manager has lost per day due to price impact, we want to express that as a % of the total NAV in their vault. The resulting value we call CumulativePriceImpact

CumulativePriceImpact=TotalPriceImpactLoss/NAVCumulativePriceImpact = TotalPriceImpactLoss/NAV

, and is expressed in % terms relative to vault size.

CumulativePriceImpactTolerance is an instantiated variable upon vault creation that sets the maximum cap for cumulative price impact. Before any trade is executed, the CPIT mechanism is ran to ensure that the daily limit is not violated.

Last updated