Risk Management & Trading

Key Risk Management Settings

Skew Scale

Skew scale is used to normalize market skew for use in risk management calculations. Each market has its own skew scale.

premium/discount=skewskewScalepremium/discount = \frac {skew}{skewScale}

Skew scale determines how sensitive premiums/discounts are to marginal changes in skew, which is used in risk management calculations.

Max Funding Velocity

Max funding velocity is a market's maximum rate the funding rate increases by per day. Each market has its own max funding velocity.

Max Side Size

Max side size is a market's maximum open interest measured in base asset units that can be opened per side of the market. Each market has its own max side size.

For example, if max side size is 100 sqft, then the max long open interest available is 100 sqft and the max short open interest available is 100 sqft.


Funding keeps markets balanced by taxing the majority side of a market and paying that tax to the minority side of the market. Funding flows through the LP pool, so it can be a short term risk to LPs.

Funding Rate

The funding rate uses a velocity model where the premium/discount clamped to 1 is multiplied by the market's max funding velocity and time elapsed in days. This means the effective rate increase for markets that are not maximally skewed is a fraction of max velocity multiplied by time elapsed.

Δrate=max(1,min(1,skewskewScale))maxFundingVelocitydaysElapsed\small \Delta rate = max(-1, min(1, \frac{skew}{skewScale})) \cdot maxFundingVelocity \cdot daysElapsed

Funding Per Unit

Funding per unit is the collateral denominated accumulation of the funding rate over time. It is the average funding rate over the elapsed time period multiplied by the index price and the time elapsed in days.

ΔfundingPerUnit=averageFundingRateindexPricedaysElapsed\Delta fundingPerUnit = averageFundingRate * indexPrice * daysElapsed

Funding PnL

Funding per unit is used to determine a position's accrued funding. Accrued funding is the position's size in base asset units multiplied by the position's net funding per unit. Net funding per unit is the exit funding per unit less the position's last funding per unit.

Since funding per unit is an accumulation with respect to time, it is precise to subtract the accumulation at position interval start from the accumulation at position interval end. Each trade on a position is effectively a close and resets the position's last funding per unit and last fill price.

Margin System

The protocol uses a cross margin system. Margin accounts can have a maximum of 12 positions.

Position Margins

The protocol uses a dynamic initial margin ratio, a constant minimum initial margin ratio, and a maintenance margin proportion of the computed initial ratio for a new position.

The dynamic initial margin ratio scales linearly with position size normalized by skew scale. The total computed initial margin ratio sums the dynamic ratio and the minimum initial ratio. The minimum initial ratio is used to set the lowest possible requirement.

The maintenance ratio is the product of the total initial ratio and the market's maintenance proportion.

initialRatio=initialRatio  positionSizeskewScale+minimumInitial[5mm]maintenanceRatio=initialRatio  maintenanceProportioninitialRatio = initialRatio \ \cdot \ \frac{positionSize}{skewScale} + minimumInitial \\ [5 mm] maintenanceRatio = initialRatio \ \cdot \ maintenanceProportion

The initial margin requirement and the maintenance margin requirement are the position notional using the index price multiplied by the respective ratio. A fixed minimum position margin requirement is added to both margin requirements. Minimum position margin is configurable by market. The liquidation margin acts as a buffer to ensure accounts can cover the liquidation keeper fee.

initialMargin=positionNotional  initialRatio +minPositionMargin[5mm]maintenanceMargin=positionNotional  maintenanceRatio +minPositionMargin[5mm]liquidationFeeMargin=positionNotional  liquidationFeeRateinitialMargin = positionNotional \ \cdot \ initialRatio \ + minPositionMargin \\ [5 mm] maintenanceMargin = positionNotional \ \cdot \ maintenanceRatio \ + minPositionMargin \\ [5 mm] liquidationFeeMargin = positionNotional \ \cdot \ liquidationFeeRate

Notional position values use the current index price. This means accounts can be liquidated due to changes in the index price.

Account Margins

An account's margins are the sum of the account's positions' margins using each position's market's index price as the exit fill price in PnL calculations. Available margin is the account's total net PnL plus its deposited margin collateral.

Total required margin is the account's maintenance requirement plus a liquidation fee margin.

totalRequiredMargin=accountMaintenance+liquidationFeeMargintotalRequiredMargin = accountMaintenance + liquidationFeeMargin

The liquidation fee margin is the maximum of the exchange's minimum liquidation fee and the account's total liquidation fee margin.

Since accounts are cross margined, an account with positive PnL positions may negate the account's positions that are below their maintenance requirement. In such a case, the account's requirements can be met even though the account has one or more underwater positions.


If an account falls below its total required margin, then it is fully liquidated and all collateral posted as margin to the account is sent to the LP pool.

Parcl v3 margin is dissimilar from other margin products in that Parcl v3 traders do not borrow an asset on margin, pay interest, and then freely risk the asset in the market. Parcl v3 traders explicitly borrow potential PnL at the expense of the exchange's LPs.

In the worst case scenario where there is significant skew in markets, LPs pay positive trader PnL with no offset from other traders in the respective markets. However, even in perfectly balanced markets there are short term liquidity risks since PnL flows through the LP pool. For example, winning traders may realize PnL while the losing traders stay in the market hoping for the market to change. Nonetheless, the LPs paid out the positive PnL and are waiting to receive the negative PnL offset.

Short term solvency and the nature of trading against the LPs are the main reasons why liquidations fully close out accounts that are unable to meet requirements.

Liquidation fees are earned based on the notional open interest closed per position per account in a liquidate instruction invocation. The liquidation fee rate is set by governance.

MEV Protection

Although a liquidation begins by transferring all margin collateral from the liquidated account to the exchange, the accounts positions may be partially closed out over multiple transactions based on criteria with respect to time. This design is meant to protect markets from actors taking advantage of short term or even atomic large swings in a market's premium/discount that could be profitable to order transactions against.

Mechanically, each market has a liquidation epoch length measured in seconds in which there is a maximum capacity of open interest in base asset units that can be liquidated. A position liquidation may still occur after capacity per epoch has been reached if the market's current premium/discount is below the max liquidation premium/discount set by governance.

Authorized Liquidator

Each market has an authorized liquidator that is set by governance. This role can optionally bypass epoch capacity and perform full liquidations. Additionally, the authorized liquidator does not collect liquidation fees from the exchange.

Price Impact

Each trade’s fill price is adjusted linearly by the trade’s impact on the market’s premium/discount. It produces a symmetrical high frequency rebalancing opportunity since any trade that reduces skew will receive a discounted price and any trade that widens skew will receive a price premium.

The purpose of the dynamic fill price is to disincentivize volume that increases skew and promote volume that contracts skew by directly adjusting entry prices similar to how a perps market maker might widen or tighten spreads on a perps clob in response to price drift or net exposure to funding.

fillPrice=indexPrice(1+skewskewScale)+indexPrice(1+skew+tradeSizeskewScale)2\small {fillPrice} = \frac{{indexPrice}(1 + \frac{{skew}}{{skewScale}}) + {indexPrice} (1 + \frac{{skew}+{tradeSize}}{{skewScale}})}{2}

Price PnL

Price PnL is the change in price multiplied by the position's size in base asset units. Price change is the current (exit) fill price less the last fill price.

ΔPrice=currentFillPricelastFillPrice[5mm]pricePnL=positionSizeΔPrice\Delta Price = currentFillPrice - lastFillPrice \\ [5mm] \newline pricePnL = positionSize * \Delta Price

Each trade on a position is effectively a close and resets the position's last fill price and last funding per unit.

Trading Fees

The trade fee is determined by the trade's notional size multiplied by the calculated trade fee rate.

It is a risk management feature in the sense that the trade fee rate is a blend of the market's maker fee rate and the market's taker fee rate. "Maker" is the v3 parlance for traders who widen skew and "takers" is the v3 parlance for traders who decrease skew.

tradeFee=(makerPercentnotionalmakerRate)+(takerPercentnotionaltakerRate)\small tradeFee = (makerPercent \cdot notional \cdot makerRate) + (takerPercent \cdot notional \cdot takerRate)

Trades that only increase skew use the taker fee rate. Trades that only decrease skew use the lower maker fee rate. Trades that flip skew are the only trades that receive a blended fee rate between the maker and taker rates weighted by the proportion of their trade that increased and decreased skew.

Last updated