SPAN 2 Risk Analysis Framework
This page lists Risk API specifications pertaining to inputs relevant to as futures and options trade/position and portfolio definition and outputs relevant to as Futures and Options for SPAN® and CME Group's new Futures and Options Margin Model, SPAN 2TM. The document also describes the reporting framework and margin results that are present across all outputs from our risk management services including the production parallel margin report, deployable margin software and CME CORE.
Contents
Inputs
Inputs for a futures and options portfolio will contain the following data definitions for the Risk Portfolio Message. The Risk Portfolio Message structure will be organized by categories and further detailed through a subset of attributes within each category.
Portfolio Data Model
Category | Attribute | Description | json Field Name & Examples | Presence | Data Type | Data Rules |
---|---|---|---|---|---|---|
Header | RequestID | User generated Request ID for margin request | requestId “INPUT_abc123456789” | Optional | string | |
Version | Version of risk API | Version “1.0” | Optional | decimal | Users should specify the version of the Risk API they are using | |
Sent Time | User generated system create time for message | sentTime | Optional | dateTime | ||
Point In Time | Business Date | Business date of margin run | businessDt | Required | date | Date format expressed as: YYYY-MM-DD |
Cycle Code | Defined description to distinguish between different point in time | cycleCode “EOD” | Optional | string | Acceptable values are: AM, EARLY, ITD, or EOD (Note: Values AM, EARLY, and ITD are not yet supported) | |
Run Number | Run Number field will increment if used multiple times within a specific CycleCode | runNumber | Optional | integer | ||
Time | Populated with the current timestamp when the market data file gets created | time “17:43:09” | Optional | time | ||
Portfolio | id | User-defined ID for the portfolio, margin results at portfolio level will correspond to this id | id | Conditional | string | Required for omnibus portfolios A unique key should be used to identify each portfolio in a request payload |
Currency | User Defined Portfolio Currency. | currency | Required | string | See Appendix for complete list of acceptable values | |
Customer Account Type | Account Type considerations impacting the margin ratio | customerAccountType | Required | string | Users set the default account type for the portfolio through this attribute. Acceptable values are MEMBER, HEDGE, SPECULATOR, HEIGHTENED*, NON_HEIGHTENED*. Omnibus accounts can only be HEDGE, SPEC, HEIGHTENED*, or NON_HEIGHTENED*. *(Note: Values Heightened and Non_Heightened are not yet supported. The values SPECULATOR and HEDGE are implied as HEIGHTENED and NON_HEIGHTENED , respectively.) | |
Omnibus Indicator | Omnibus Indicator | omnibusInd | Optional | string | Acceptable values are YES or No; Defaults to NO YES: Customer Account is Omnibus, and would have children only if it’s Partially or Fully Disclosed NO: Customer Account is not Omnibus, and has no children | |
Parent Portfolio ID | ID of the parent portfolio | parentPortfolioId | Optional | string | Used for omnibus child portfolios This field is the linkage between parent and child omnibus relationship | |
Memo | Free form field which can be used to pass through any information to the response message | Memo | Optional | string | Used to pass additional portfolio referential data between the margin request and margin response | |
Entities
| Clearing Firm ID | User defined Clearing firm alphanumeric Id | firmId | Required | string | |
Account ID | User defined account alphanumeric ID | accountId “Account1” | Required | string | ||
Account Name | User defined name for account | accountName | Optional | string | ||
Origin Type | Used to designate the manner in which transactions, positions, and funds are segregated as required by regulators | originType “CUST” | Required | string | Acceptable values are: HOUS, CUST, CUSTOMER, HOUSE Users can only supply one of the listed values; otherwise error message | |
Fund Segregation Type | Fund segregation type | segregationType | Optional | string | Acceptable values are CSEG, CNSEG, COTC, NSEG, SECURED | |
Positions | Customer Account Type | Account Type considerations impacting the margin ratio | customerAccountType | Optional | string | Acceptable values are MEMBER, HEDGE, SPECULATOR, HEIGHTENED*, NON_HEIGHTENED*. Omnibus accounts can only be HEDGE, SPEC, HEIGHTENED*, or NON_HEIGHTENED*. *(Note: Values Heightened and Non_Heightened are not yet supported. The values SPECULATOR and HEDGE are implied as HEIGHTENED and NON_HEIGHTENED , respectively.) Users can override the default customer account type that was supplied at the Portfolio level. Account Override is applied at the Pod, not position, level. If multiple over-rides are present within the same Pod, the deployable software will first prioritize MEMBER type for the Pod if any positions are MEMBER, then prioritize HEDGE, and finally SPECULATOR. |
Net Position | Net quantity is expressed as either positive (long) and negative (short) | netQty | Conditional | decimal (can be negative) | Required if portfolio AccountType is not Omnibus Acceptable values can only be integers | |
Naked Long Quantity | Buy quantity for naked margin treatment (see omnibus/PID notes) | nakedLongQty | Conditional | decimal (cannot be negative) | Only allowable for Omnibus account types, but never required Acceptable values can only be integers | |
Naked Short Quantity | Sell Quantity for naked margin treatment (See omnibus/PID notes) | nakedShortQty | Conditional | decimal (cannot be negative) | Only allowable for Omnibus account types, but never required Acceptable values can only be integers | |
Instrument | Clearing Organization Id | User defined clearing organization | clearingOrganizationId “CME” | Required | string | |
Exchange ID | Name of Exchange in which the contracts are listed | exchangeId | Required | string | For CME Group Exchanges, acceptable values are CME, CBT, NYMEX, COMEX, NYM, CMX | |
Product Code | CME Clearing House Product Code | productCode | Required | string | ||
Product Type | Name of the product type | productType | Required | string | Acceptable values are FUT, OOF, OOP, OOC, FWD | |
Contract Period Code | Maturity Date of Product | periodCode “20180920” “201809W1” | Required | string | Example values are: YYYYMM, YYYYMMDD, YYYYMMW1, YYYYMMW2, YYYYMMW3, YYYYMMW4, YYYYMMW5 | |
Put/Call Indicator | Whether the option trade is a PUT or CALL | putCallInd | Conditional | string | Required if ProductType = OOF, OOC, OOP Acceptable values are P or C | |
Strike | Strike Price for options | strike | Conditional | decimal | Required if ProductType = OOF, OOC, OOP | |
Underlying Period Code | Maturity Date of underlying product | UnderlyingPeriodCode “20180920” “201809W1” | Optional | string | Used if ProductType = OOF, OOC, OOP If an option’s values have multiple similarities (i.e. product code and period code), than this field is required |
ERD Request Data Model
Portfolio Request Use Cases
A single user generated portfolio ID will correspond to a margin requirement. The requirement may contain entity information (which the user has provided) and will reflect omnibus and position in delivery as outlined below.
Scenario | Input Comments | Output Comments |
---|---|---|
Simplest structure | Portfolio contains required fields only Positions defined as net | User maps requirement to correspond with portfolio ID |
Undisclosed Omnibus | Portfolio contains portfolio ID and user has option to populate entity information Positions defined as Naked Long and Naked Short | Response contains portfolio ID and entity information if populated. |
Disclosed Omnibus or Partially Disclosed Omnibus | Parent Portfolio contains Portfolio ID and Omnibus flag. Positions are optional in the parent. If there are positions, they must be expressed as Naked Long and Naked Short Child Portfolio contains unique portfolio ID and Entity information and references to Parent Portfolio ID. Positions are required Parent and Child Portfolios sharing a disclosed omnibus relationship must all be sent in the same margin request | Results for the Parent Portfolio will be reflected through the Portfolio ID of the Parent and will equal the sum of all child portfolio requirements linked to the parent plus the margin requirement of the parent portfolio positions. The Child Portfolios will contain requirements corresponding to the Child Portfolio ID. The Child Portfolio result will also contain a reference to the Parent Portfolio ID in the entities block for linking results back a particular margin request. |
Positions in Delivery | Can occur under any of the other portfolio request scenarios and positions in deliver must be specified as naked long and naked short quantities | Margin Results will include Positions in Delivery. |
Outputs
This section contains the initial draft for reporting results for Futures and Options portfolios.
The Margin Results Message for SPAN 2 will be organized at various levels (portfolio, pod, product group) and each level will contain further details for Margin Requirements and valuations further broken down by currency when applicable. This structure will support results for Futures and Options products margined through SPAN and SPAN 2 risk models.
Currency, Margin, and Valuation requirements may reflect aggregation of the levels below. As the requirements are further decomposed to the Pod level, the results will become model specific. Each Pod has a margin method to describe the type of results. At the product group level, results are detailed in margin component amounts which will be conditionally populated based on whether the product group result details are derived from the SPAN or SPAN 2 margin model. The Results Data Overview provides further details around how margin requirements map to specific risk models.
Overview of the Margin Result Structure for SPAN 2
Margin Result Structure Explained:
Point in time specifies:
Business date
Cycle code
Run number
Time
Point in time contains an array of portfolios
Each portfolio may contain
Entity attributes: -- firm ID, account ID, seg (the things that make the account unique), omnibus or not
Result Details
An array of currency breakdowns
An array of CCP’s (new generic term for exchange complex)
Each CCP contains
Result Details
An array of currency breakdowns
An array of pods
Each pod may contain: (new generic term for combined commodity)
Result Details
An array of product Groups
A Currency
Product Group – is always in a currency
Result Details
Result Details are:
The margin requirement amounts
The valuation amounts
Report - Terminology for Key Fields:
Level:
Pod: With SPAN2 margin methodology, margin requirements are calculated at POD level. It is the atomic level where margin calculation occurs.
For SPAN, this is analogues to ‘Combined Commodity’
For SPAN2, this represent grouping of products that are going to be margined using new SPAN2 margin methodology. For Day 1 implementation i.e. Energy asset class, we have two PODs – (1) Crude & Refined products and (2) Natural Gas products
ProductGroup: Product groups level further breaks down the risk from one POD to different Product Groups. A POD can have one or more Product groups. Records with Level=ProductGroup are only going to be available for SPAN2 PODs
A separate report will be shared which would provide mapping of Pod/ProductGroups and associated products.
Portfolio: This represents Portfolio level Risk requirement, and Total requirements including Net Option Value.
For CGM based portfolios, this will represent margin requirement for each customer account id, for each of its performance bond account. If it is an Omnibus account, then at this level, we would show aggregated margin requirement which will be inclusive of its children if any.
For House based portfolios, this will represent margin requirement for each HOUS performance bond account.
Margin Results Data Model
Category | Attribute | Description | json Field Names & Examples | Presence; if Optional see Data Rules | Data Type | Data Rules |
---|---|---|---|---|---|---|
Header | RequestID | User generated Request Id from the margin request message | requestId “OUTPUT_123456789” | Pass-Thru | string | |
Version | Version of risk API | version | Pass-Thru | string | ||
Sent Time | User generated system create time for message | sentTime | Pass-Thru | dateTime | ||
Point In Time | Business Date | Business date of margin run | businessDt “2018-02-28” | Pass-Thru | date | Date format expressed as YYYY-MM-DD |
Cycle Code | User defined description to distinguish between different point in time | cycleCode “EOD” | Pass-Thru | string | Acceptable values are: AM, EARLY, ITD, or EOD (Note: Values AM, EARLY, and ITD are not yet supported) | |
Run Number | Run Number field will increment if used multiple times within a specific CycleCode | runNumber “1” | Pass-Thru | integer | ||
Portfolio | Id | User defined Portfolio Id from the margin request message. Margin results at portfolio level will correspond to this ID | id | Pass-Thru | string | One margin result will be generated per portfolio ID |
Currency | Different currencies can be given for overall portfolio requirements and for each product’s performance bond requirements. In this case, portfolio currency | currency | Pass-Thru | string | See Appendix for complete list of acceptable currencies | |
Customer Account Type | Account Type Considerations | customerAccountType | Pass-Thru | string | Acceptable values are MEMBER, HEDGE, SPECULATOR, HEIGHTENED*, NON_HEIGHTENED*. Omnibus accounts can only be HEDGE, SPEC, HEIGHTENED*, or NON_HEIGHTENED*. *(Note: Values Heightened and Non_Heightened are not yet supported. The values SPECULATOR and HEDGE are implied as HEIGHTENED and NON_HEIGHTENED , respectively.) | |
Omnibus Indicator | Omnibus Indicator - (YES /NO) | omnibusInd | Pass-Thru | string | ||
Parent Portfolio ID | ID of the parent portfolio | parentPortfolioId | Pass-Thru | string | ||
Memo | Free form field used by the user to pass through information | memo | Pass-Thru | string | Used to pass additional portfolio referential data between the margin request and margin response | |
Transaction Count | Represents the number of position records that were successfully processed | transactionCnt | Required | integer | ||
Entities | Clearing Firm Id | User defined Clearing firm alphanumeric Id | firmId | Pass-Thru | string | For cross margining, this field represents the exchange complex id |
Account ID | User defined account alphanumeric ID | accountId | Pass-Thru | string | ||
Origin Type | Used to designate the manner in which transactions, positions, and funds are segregated as required by regulators | originType | Pass-Thru | string | Values in the response will be populated as either: HOUSE or CUSTOMER | |
CCP | Clearing Organization Id | CCP abbreviation (CME) | clearingOrganizationId “CME” | Required | string | |
Exchange Rate | Exchange rate from margin request currency to reported currency | exchangeRt | Optional | string | SPAN margin method: This will not be populated SPAN 2 margin method: This will be present for SPAN and SPAN 2 products when running for SPAN 2 market data | |
Pod
| Pod | Risk based grouping of related products for margin reporting | podId | Required | string | For SPAN products, each SPAN BFCC code will be it’s own POD Id. |
Product Description | Description of the Pod Id | productDescription | Optional | string | SPAN margin method: This will be populated with the description of the product code in the POD Id. SPAN 2 margin method: This will be duplicative of the podId field. | |
Margin Method | Description of which margin method was used for margin calculations | marginMethod “SPAN2” | Required | string | Acceptable values are SPAN and SPAN2 | |
Customer Account Type | Account Type considerations impacting the margin ratio. This field indicates how initial margin is calculated for this Pod. | customerAccountType | Pass-Thru | string | This field indicates how initial margin is calculated for this POD. Acceptable values are MEMBER, HEDGE, SPECULATOR, HEIGHTENED*, NON_HEIGHTENED*. Omnibus accounts can only be HEDGE, SPEC, HEIGHTENED*, or NON_HEIGHTENED*. *(Note: Values Heightened and Non_Heightened are not yet supported. The values SPECULATOR and HEDGE are implied as HEIGHTENED and NON_HEIGHTENED , respectively.) See note in Inputs section regarding account over-ride. | |
Currency | Currency defined | currency “USD” | Required | string | See Appendix for complete list of acceptable currencies | |
Product Group This level is only applicable if PODs that have SPAN 2 margin method. | Product Group ID | Lowest level details of margin results and is contained under pod level | productGroupId | Optional | string | This will only show up for SPAN 2 margin method. |
Product Type | Description of the product type | productType"OPT""FUT" | Optional | string | This will only show up at Product Group level. | |
Product Description | Description of the Product Group | productDescription | Optional | string | This will only show up for SPAN 2 margin method. | |
Currency Amounts In the absence of currency breakdown, values will be represented in the portfolio currency | Currency | Currency defined | currency “USD” | Required | string | See Appendix for complete list of acceptable currencies |
Sensitivity Amounts This level displays Greek sensitivities amount for products margined using SPAN 2® framework. This is applicable only to Core UI and Margin API, and not Deployable margin software.
| Greek Description | Description of the Greeks Product Group | greekDescription "WTI Crude Oil" | Optional | string | This will only show up at Product Group level and for products margined using SPAN2 methodology |
Greek Name | Description of the Greek Type - Delta or Vega | greekName "DELTA", "VEGA" | Optional | string | This will only show up at Product Group level and for products margined using SPAN2 methodology. Delta and Vega sensitivities are supported for Options, and Delta for Futures. | |
Results | Greeks amounts in a array for the respective underlying period code | results "0.0", "99.99999999990905" | Optional | decimal | This will only show up at Product Group level and for products margined using SPAN2 methodology | |
Security ID | Description of the Product | securityId "NYMEX|CL|FUT|202410", "NYMEX|ON|OOF|202403|202403|C|3.45" | Optional | string | This will only show up at Product Group level and for products margined using SPAN2 methodology | |
Underlying Period Code | Underlying period codes applicable for the product | underlyingPeriodCode "202401", "202402" | Optional | integer | This will only show up at Product Group level and for products margined using SPAN2 methodology | |
Requirement Amounts Provide transparency into the decomposition of the margin requirement | Risk Maintenance Requirement | Risk maintenance requirement (includes Scan Risk + all Spread credits/charges and SOM) | riskMaintenanceRequirement | Required | decimal | At the Product Group level, SOM will not be included in the calculation. |
Futures Options Offset | Risk offset amount between futures and options | futuresOptionsOffset"1.0" | Optional | decimal | This will only show up at Product Group level. | |
Risk Initial Requirement | Risk requirement initial level margin (includes Scan Risk + all Spread credits/charges and SOM) | riskInitialRequirement | Optional | decimal | This will not show up at the Product Group level. | |
Total Maintenance Requirement | Risk Maintenance Requirement – Net Option Value | totalMaintenanceMargin “1.0” | Optional | decimal | This will not show up at the POD or Product Group level. | |
Total Initial Requirement | Risk Initial Requirement – Net Option Value | totalInitialMargin “1.0” | Optional | decimal | This will not show up at the POD or Product Group level. | |
Net Option Value | Long Option Value – Short Option Value | netOptionValue | Optional | decimal | This will not show up at the Product Group level. | |
Cross Model Offset | Cross Model Offset | crossModelOffset “1.0” | Optional | decimal | This value will only show up at the CCP level - currency Amounts. | |
Cross Model Offset Initial | Cross Model Offset Initial | crossModelOffsetInitial “1.0” | Optional | decimal | This value will only show up at the CCP level - currency Amounts. Initial CMO will scale up the CMO by the initial to maintenance ratio when the account type has a heightened risk profile. | |
Cross Model Offset Maintenance | Cross Model Offset Maintenance | crossModelOffsetMaintenance “1.0” | Optional | decimal | This value will only show up at the CCP level - currency Amounts. | |
Valuation Amounts Valuation amounts refer to price, npv, futures, and options values | Option Value Long Equity Style | Option value for long equity style options positions | optionValueLongEquityStyle | Optional | decimal | This value will not show up at the Product Group level. |
Option Value Short Equity Style | Option value for short equity style options positions | optionValueShortEquityStyle | Optional | decimal | This value will not show up at the Product Group level. | |
Option Value Long Futures Style | Option value for long futures style options positions | optionValueLongFuturesStyle | Optional | decimal | This value will not show up at the Product Group level. | |
Optional Value Short Futures Style | Option value for short futures style options positions | optionValueShortFuturesStyle | Optional | decimal | This value will not show up at the Product Group level. | |
Non Option Value Long | Value for long non-options positions | nonOptionValueLong | Optional | decimal | This value will not show up at the Product Group level. | |
Non Option Value Short | Value for short non-options positions | nonOptionValueShort | Optional | decimal | This value will not show up at the Product Group level. | |
Component Amounts Component amounts will not be visible for SPAN POD | Liquidity Component | Liquidity risk amount - | liquidityComponent | Optional | decimal | SPAN 2 component, only present when Margin Method=SPAN2 |
Concentration Component | Concentration risk amount | concentrationComponent | Optional | decimal | SPAN 2 component, only present when Margin Method=SPAN2 | |
Stress Component | Stress risk amount | stressComponent | Optional | decimal | SPAN 2 component, only present when Margin Method=SPAN2 | |
HVaR Component | HVaR risk amount | “hvarComponent | Optional | decimal | SPAN 2 component, only present when Margin Method=SPAN2 | |
Naked Long Component | Naked long positions risk amount | nakedLongComponent | Optional | decimal | SPAN/SPAN 2 component | |
Naked Short Component | Naked short positions risk amount | nakedShortComponent | Optional | decimal | SPAN/SPAN 2 component | |
Short Option Minimum | To cover the risks associated with deep-out-of-the-money short options positions. Each margin model assesses a minimum portfolio requirement based on the corresponding short options contained in the portfolio. The performance bond requirement cannot fall below this floor level | shortOptionMinimum “1.0” | Optional | decimal | SPAN/SPAN 2 component | |
Implied Offset | Computed benefit of portfolio margining at given reporting level | impliedOffset "1.0" | Optional | decimal | SPAN 2 component, only present when Margin Method=SPAN2 This field is populated only in Pod level reporting. | |
Scan Risk | The requirement derived by Span which reflects the hypothetical single-day exposure given the Exchange or Clearing Organization's | scanRisk | Optional | decimal | SPAN component, only present when Margin Method=SPAN This field is populated only if there is a qty in ‘netQty’ in the input portfolio | |
Intracommodity Spread Charge | Intracommodity Charge: Additional charge that covers the calendar basis risk that may exist for portfolios containing futures and options with different expirations | intraCmdtySpreadCharge | Optional | decimal | SPAN component, only present when Margin Method=SPAN SPAN component, only present when Margin Method=SPAN | |
Intercommodity Spread Credit | Intercommodity credit: Performance Bond reduction resulting from offsetting positions in related instruments | interCmdtySpreadCredit | Optional | decimal | SPAN component, only present when Margin Method=SPAN SPAN component, only present when Margin Method=SPAN | |
InterExchange Spread Credit | Interexchange credits for spread positions at different exchanges | interExchSpreadCredit “1.0” | Optional | decimal | SPAN component, only present when Margin Method=SPAN SPAN component, only present when Margin Method=SPAN | |
Spot Charge | Spot Charge: Additional charge that covers the risk of products nearing expiration | spotCharge | Optional | decimal | SPAN component, only present when Margin Method=SPAN SPAN component, only present when Margin Method=SPAN | |
Intercommodity Volatility Credit | Intercommodity Volatility Credit | interCmdtyVolatilityCredit | Optional | decimal | SPAN component, only present when Margin Method=SPAN SPAN component, only present when Margin Method=SPAN | |
Full Value Component | Additional delivery margin charge based on the full contract value | fullValueComponent "1.0" | Optional | decimal | SPAN/SPAN 2 component |
ERD/Data Model
Understanding Margin Results
Overview
The purpose of this Section is to describe the formulas used for calculating margin requirements under the CME’s new futures and options Margin model, SPAN 2. The foundation of this document is around the Risk API specification pertaining to the output to SPAN 2 as the Risk API reflects the data structure for integrating with our margin services tools. This document described calculated values relevant to computing portfolio level requirements for SPAN and SPAN 2 based on the outputs of the Risk API. The Risk API Framework is used across all SPAN 2 Margin Reporting from CME including production parallel margin report, deployable margin software and CME CORE. Each service will consistently apply the use of the risk attributes defined. Further inquiries into the the underlying SPAN or SPAN 2 calculations should be directed to posttradeservices@cmegroup.com.
SPAN 2 Methodology and Framework
Like SPAN, the SPAN 2 framework will be based on a Value at Risk (HVaR) framework, using historical data to model how a position or portfolio may gain or lose value under various risk scenarios.
The SPAN 2 framework will allow implementation of granular and dynamic adjustments to margins at a pod and portfolio level. In addition, enhanced reporting of margining into different risk factors such as market risk, liquidity, and concentration will be provided.
Framework Components and Risk Methodology
SPAN 2 Portfolio Calculations = Market Risk + Liquidity + Concentration |
Market Risk
Market Risk under SPAN 2 framework is calculated as the total of HVaR and Stress VaR.
HVaR Overview
Assess the potential losses a portfolio can incur due to the daily price movements over a reasonable lookback period. HVaR uses historical data from an appropriate lookback and scenarios are generated using volatility and correlation scaling. Explicit treatment is made for seasonal risk and for options where the implied volatility surface issued included skew as risk factors. Like SPAN, the SPAN 2 framework will be based on a Value at Risk (HVaR) framework, using historical data to model how a position or portfolio may gain or lose value under various risk scenarios.
Stress VaR Overview
Assess the potential losses a portfolio can incur due to market events. This framework allows risk managers to add expert judgment to manage seen and unforeseen risk and is made of two parts.
Historical SVaR
This is comprised of actual historical events within or outside the HVaR lookback window, including:
Historical scenarios from long-term look-back: rebase with market environment conservatively
Historical scenarios from short-term look-back: provide counter-cyclicality but not punitively
Historical scenarios selected for specific risk profiles
Hypothetical SVaR
This is the framework that allows for the inclusion of scenarios that may not have occurred in history but can be assessed as future risk, including:
Structurally typing curve movements as parallel, slope, and curvature shifts
Construct curve-shift with historical data inference
Any specific scenario the risk managers define
Portfolio Liquidity Charge
The liquidity charge captures close out costs during a default, based on available bid/ask spreads from central limited order book. Close out costs are assessed according to trading practices and costs observed in the market. The costs are calibrated to actual traded information for products when available.
Concentration Charge
The concentration charge accounts for the additional cost of closing out large portfolios due to their size, an add on if the size of the holding is higher than specific threshold calibrated using daily volumes.
Margin Response
Outputs for an futures and options portfolio will contain the following data definitions for the Risk Portfolio Response Message. The Risk Portfolio Message structure will be organized at various levels (portfolio, ccp, pod, product group) and each level will contain further details for Margin Requirements and Valuation amounts further broken down by currency when applicable. This structure will support results for Futures and Options products margined through SPAN and SPAN 2 risk models.
Margin Results Formula Data Model
Framework Components and Risk Methodology
Risk Initial Requirement = RiskInitialRequirement(Pod1) +..+ RiskInitialRequirement(Pod𝑛) + CrossModelOffset |
Level | Sub-Level | Attribute | Formula | Comments |
---|---|---|---|---|
Portfolio | RequirementAmts | RiskMaintenanceRequirement | RiskMaintenanceRequirement(CCP1) +..+ RiskMaintenanceRequirement(CCPn ) + CrossModelOffset | |
Portfolio | RequirementAmts | RiskInitialRequirement | RiskInitialRequirement(CCP1) +..+ RiskInitialRequirement(CCPn) ) + CrossModelOffset | |
Portfolio | RequirementAmts | TotalMaintenanceMargin | RiskMaintenanceRequirement - NetOptionValue | |
Portfolio | RequirementAmts | TotalInitialMargin | RiskInitialRequirement - NetOptionValue | |
Portfolio | RequirementAmts | NetOptionValue | NetOptionValue(CCP1) + NetOptionValue(CCP2) + .. | |
Portfolio | ValuationAmts | OptionValueLongEquityStyle | OptionValueLongEquityStyle(CCP1) + OptionValueLongEquityStyle(CCP2) + .. | |
Portfolio | ValuationAmts | OptionValueShortEquityStyle | OptionValueShortEquityStyle(CCP1) + OptionValueShortEquityStyle(CCP2) + .. | |
Portfolio | ValuationAmts | OptionValueLongFutureStyle | OptionValueLongFutureStyle(CCP1) + OptionValueLongFutureStyle(CCP2) + .. | |
Portfolio | ValuationAmts | OptionValueShortFutureStyle | OptionValueShortFutureStyle(CCP1) + OptionValueShortFutureStyle(CCP2) + .. | |
Portfolio | ValuationAmts | NonOptionValueLong | NonOptionValueLong(CCP1) + NonOptionValueLong(CCP2) + .. | |
Portfolio | ValuationAmts | NonOptionValueShort | NonOptionValueShort(CCP1) + NonOptionValueShort(CCP2) + .. | |
CCP | RequirementAmts | RiskMaintenanceRequirement | RiskMaintenanceRequirement(Pod1) +..+ RiskMaintenanceRequirement(Pod𝑛 | |
CCP | RequirementAmts | RiskInitialRequirement | RiskInitialRequirement(Pod1) +..+ RiskInitialRequirement(Pod𝑛) | |
CCP | RequirementAmts | TotalMaintenanceMargin | RiskMaintenanceRequirement - NetOptionValue | |
CCP | RequirementAmts | TotalInitialMargin | RiskInitialRequirement - NetOptionValue | |
CCP | RequirementAmts | NetOptionValue | NetOptionValue(Pod1) + NetOptionValue(Pod2) + .. | |
CCP | ValuationAmts | OptionValueLongEquityStyle | OptionValueLongEquityStyle(Pod1) + OptionValueLongEquityStyle(Pod2) + .. | |
CCP | ValuationAmts | OptionValueShortEquityStyle | OptionValueShortEquityStyle(Pod1) + OptionValueShortEquityStyle(Pod2) + .. | |
CCP | ValuationAmts | OptionValueLongFutureStyle | OptionValueLongFutureStyle(Pod1) + OptionValueLongFutureStyle(Pod2) + .. | |
CCP | ValuationAmts | OptionValueShortFutureStyle | OptionValueShortFutureStyle(Pod1) + OptionValueShortFutureStyle(Pod2) + .. | |
CCP | ValuationAmts | NonOptionValueLong | NonOptionValueLong(Pod1) + NonOptionValueLong(Pod2) + .. | |
CCP | ValuationAmts | NonOptionValueShort | NonOptionValueShort(Pod1) + NonOptionValueShort(Pod2) + .. | |
POD | RequirementAmts | RiskMaintenanceRequirement | If POD NetOptionValue exceeds the total RiskMaintenanceRequirement (for portfolios with excess LongOptionValueEquityStyle), then capping occurs to prevent scenarios where RiskMaintenanceRequirement could be less than 0: | Capping Net Option Value occurs in CME margin reporting but not in CME tools deployable margin software, CME CORE, or CORE API. |
POD | RequirementAmts | RiskInitialRequirement | If POD NetOptionValue exceeds the total RiskInitialRequirement (for portfolios with excess LongOptionValueEquityStyle), then capping occurs to prevent scenarios where RiskInitialRequirement could be less than 0: | Capping Net Option Value occurs in CME margin reporting but not in CME tools deployable margin software, CME CORE, or CORE API. |
POD | RequirementAmts | NetOptionValue | OptionValueLongEquityStyle - OptionValueShortEquityStyle | |
Product Group | RequirementAmts | RiskMaintenanceRequirement | RiskMaintenanceRequirement = Sum of Margin Components at Product Group Level |
List of Currencies
AUD, BRL, GBP, CAD, CHF, CHP, CLP, COP, CNH, CNY, CZK, DKK, EUR, HKD, HUF, IDR, ILS, INR, JPY, KRW, MXN, MYR, NZD, NOK, PEN, PHP, PLN, RUB, SEK, SGD, THB, TRY, TWD, USD, ZAR
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.