List of formulas used in the Angle protocol and at

Perpetuals (HA)


The margin displayed on your position is computed net of opening fees, i.e.
margin=initial margin - position size×opening fees\texttt{margin} = \texttt{initial margin - position size} \times \texttt{opening fees}


In Angle, leverage is computed as:
leverage=(margin + position Size)margin\texttt{leverage} = \frac{\texttt{(margin + position Size)}}{\texttt{margin}}
  • Margin: 10,000 DAI
  • Position size: 100,000 DAI
leverage=1+101=11\texttt{leverage} = \frac{1 + 10}{1} = 11

Cash Out Amount

The Cash Out Amount represents the amount you should receive in your wallet after closing the perpetual:
cash out amount=margin±gross PnL - closing fee\texttt{cash out amount} = \texttt{margin} \pm \texttt{gross PnL - closing fee}
grossPnL=position size×(1initialPricecurrentPrice)\texttt{grossPnL} = \texttt{position size}\times(1-\frac{\texttt{initialPrice}}{\texttt{currentPrice}})


The PnL displayed on the app represents the gain or loss you would make if closing the position. It is computed net of fees.
PnL=cash out amount - initial margin\texttt{PnL} = \texttt{cash out amount - initial margin}
PnL=gross PnL - closing fee\texttt{PnL} = \texttt{gross PnL - closing fee}

Maintenance Margins

  • DAI: 0.625%
  • USDC: 0.625%
  • FEI: 0.625%
  • FRAX: 0.625%
  • ETH: 6.25%
Margin Ratio Formula In Angle, the margin ratio is computed as:
margin ratio=cash out amountposition size\texttt{margin ratio} = \frac{\texttt{cash out amount}}{\texttt{position size}}

Est. APR on open positions

In perpetuals/open position page of the app
ANGLE rewards for position holders depends on the Position Size, as what matters for the protocol is how much collateral is hedged. However, the APR is computed from the initial margin, as this is what users bring to the protocol.
  • Margin: 10,000 DAI
  • Position Size: 100,000 DAI
  • Leverage: 11
  • Rewards distribution: 5 ANGLE / week / 1,000 DAI in position
  • ANGLE price: 0.80 DAI
APR=5×52×100×0.8010,000APR = \frac{5\times{52} \times{100} \times{0.80}} {10,000}
APR=2.08=208%APR = 2.08 = 208\%

Depositing Liquidity (SLP)

In the Yield page of the app Both the Slippage and SlippageFee can vary depending on the collateral/stablecoin pair.


SLP can face a slippage when withdrawing funds depending on the collateral ratio of the pool they are withdrawing from. This is put in place to incentivize them to stay in the protocol while it gets re-collateralized.
amnt received=amnt withdrawn×(1slippage)\texttt{amnt received} = \texttt{amnt withdrawn} \times{(1 - \texttt{slippage})}
The current slippage for SLP can be consulted in the analytics by selecting a pool and looking at Slippage in the Fee Info > SLP section.

Slippage on Fees for SLP

When the protocol gets close to be under-collateralized, it progressively keeps a bigger portion of the fees usually going to SLPs to grow the suplus and be able to pay back stable holders. Note that this doesn't impact the initial deposits of SLPs nor the fees earned up until the start of the slippageFee.
fees received=fees to SLPs×(1slippage fee)\texttt{fees received} = \texttt{fees to SLPs} \times{(1-\texttt{slippage fee})}
The current slippageFee for SLP can be consulted in the analytics by selecting a pool and looking at SlippageFee in the Fee Info > SLP section.

Global parameters

If you want to know the current protocol parameters in place, you can have a look at the analytics at or directly in the SDK.