Unless otherwise stated and where applicable, parameters are for both the ETH and BTC markets. All parameters are configurable post launch (via a governance vote) unless otherwise specified.

Portfolio Margin Risk Manager

Account Parameters

Doc Name Contract Name Value Bounds Description
MAX_ACCOUNT_SIZE maxAccountSize 64 No bounds This is the maximum number of assets (options, cash, base, perpetuals) that can be supported by a single portfolio margined subaccount. This is constrained by gas requirements.
MAX_EXPIRIES maxExpiries 11 No bounds This is the maximum number of unique expiries that can be held by a single portfolio margined subaccount. Note: perpetuals are not included as an expiry.

Portfolio Margin Shock Scenarios

These are the scenarios of various spot and volatility shocks used to compute portfolio margin.

[spot shock as a %, vol shock] where vol shock is +1 for up, -1 for down and 0 for static

I.e. all spot shocks from -20% to +20%, increasing in steps of 5%. Up/down/static vol shocks for all scenarios between (and inclusive of) -15% and +15%. Only up/static scenarios for +20% and -20%.

Contingency Margin

Doc Name Contract Name Value Bounds Description
PEG_FACTOR OtherContingencyParameters.pegLossFactor 4.0 [0.0, 20.0] Increases the scaling of initial margin when USDC depegs beyond a threshold value.
BASE_FACTOR OtherContingencyParameters.basePercent 0.03 [0.0, 1.0] This is used to compute the base contingency, simply a small percentage of the spot price.
PERP_FACTOR OtherContingencyParameters.perpPercent 0.03 [0.0, 1.0] This is used to compute the perp contingency, simply a small percentage of the spot price.
OPTION_FACTOR OtherContingencyParameters.optionPercent 0.02 [0.0, 1.0] A small percentage of the spot price is added per net short contract per strike to the asset contingency.

Volatility Shocks

Doc Name Contract Name Value Bounds Description
VOL_RANGE (up) VolShockParameters.volRangeUp 0.6 [0.01, 2.0] Multiplicative scaling of the implied volatility when considering an increase in volatility.
VOL_RANGE (down) VolShockParameters.volRangeDown 0.3 [0.01, 2.0] Multiplicative scaling of the implied volatility when considering a decrease in volatility.
SHORT TERM VEGA_POWER VolShockParameters.shortTermPower 0.3 [0.0, 0.5] A power scaling of the multiplicative volatility shock (for short dated expiries).
LONG TERM VEGA_POWER VolShockParameters.longTermPower 0.13 [0.0, 0.5] A power scaling of the multiplicative volatility shock (for long dated expiries).
DTE_FLOOR VolShockParameters.dteFloor 1 day [0.01, 100] days A floor on the time-to-expiry used when computing the volatility shock. Avoids divergence arising from dividing by near 0 values.

Discounting

Doc Name Contract Name Value Bounds Description
RATE_PARAM_1 MarginParameters.rateMultScale 1.0 [0, 5.0] Multiplicative scaling of the risk free rate used when computing the discounting for a long sub-portfolio.
RATE_PARAM_2 MarginParameters.rateAddScale 0.12 [0, 5.0] Additive scaling of the risk free rate used when computing the discounting for a long sub-portfolio.
STATIC_SCALE MarginParameters.baseStaticDiscount 0.95 [0.0,1.0] A flat scaling of the sub-portfolio's shocked marked value (only applies if positive).

Forward Contingency

Doc Name Contract Name Value Bounds Description
ADD_FACTOR BasisContingencyParameters.basisContAddFactor 1.0 [0,5.0] Additive scaling factor when computing the basis contingency
MULT_FACTOR BasisContingencyParameters.basisContMultFactor 1.2 [0,5.0] Multiplicative scaling factor when computing the basis contingency.
UP_SCENARIO_MOVE BasisContingencyParameters.scenarioSpotUp 1.05 (i.e. [5%, 0] scenario) [0.0, 2.0] One of the spot shock scenarios used to compute the basis (forward) contingency.
DOWN_SCENARIO_MOVE BasisContingencyParameters.scenarioSpotDown 0.95 (i.e. [-5%, 0] scenario) [0.0, 1.0] The other scenario used to compute the basis (forward) contingency.

Initial Margin and Contingencies