The CDM is a model for financial products, trades in those products, and the lifecycle events of those trades. It is an open source standard that aligns data, systems and processes and is available as code in multiple languages for easy implementation across technologies.
Other
121
stars
53
forks
source link
Implementation of the Standardized Schedule Method for Initial Margin Calculation in CDM #3060
The 2007 financial crisis exposed vulnerabilities in banks and markets, prompting the G20 to mandate reforms for OTC derivatives. These include exchange trading, central clearing, and reporting to enhance transparency and curb excessive risk. Additionally, higher capital requirements for non-centrally cleared derivatives were introduced. Subsequently, margin requirements were established under global standards by BCBS and IOSCO to further reduce systemic risk.
1. Standard Initial Margin Model for Non-Cleared Derivatives
To comply with BCBS-IOSCO guidelines on "Margin Requirements for Non-Centrally Cleared Derivatives", ISDA proposes the Standard Initial Margin Model (SIMM) for market participants. This model aims to standardize margin calculations, ensuring transparency and facilitating conflict resolution. The guidelines mandate that covered entities exchange initial margin using a schedule-based or an approved model-based approach. Implementing individual margin models would require replication across counterparties, posing challenges due to data complexity and maintenance.
2. Standardised Schedule Method
The standardized schedule method offers a less risk-sensitive and simpler approach to calculating Initial Margin (IM), suitable for market participants unable to develop or maintain quantitative models independently. It serves as a conservative alternative, ensuring Initial Margin calculations are accessible and straightforward.
2.1. Key Components
Standardized Initial Margin Schedule:
Defines predetermined margin rates based on factors such as asset class, duration, and notional exposure.
Facilitates accurate application of percentages necessary for IM calculations.
Asset Class
Margin Rate
Credit: 0-2 year duration
2%
Credit: 2-5 year duration
5%
Credit: 5+ year duration
10%
Commodity
15%
Equity
15%
Foreign exchange
6%
Interest rate: 0-2 year duration
1%
Interest rate: 2-5 year duration
2%
Interest rate: 5+ year duration
4%
Other
15%
Standardized Initial Margin Formula:
Formula:
Net standardised IM = (0.4 x Gross IM) + (0.6 x NGR x Gross IM)
Gross IM: Notional amount multiplied by the margin rate.
NGR (Net-to-Gross Ratio): Ratio of net current replacement cost to gross current replacement cost, accounting for netting and hedging benefits under an Eligible Master Netting Agreement (EMNA).
These standardized methodologies aim to simplify and standardize margin calculations across diverse portfolios, enhancing risk management and regulatory compliance in the derivatives market.
CDM Implementation
1. Starting Point
Given the significance of the OTC market and the evolving regulatory landscape, this project was initiated. Initially, the objective was to comprehend the concept of initial margin and subsequently explore the Standard Initial Margin Model (SIMM) proposed by ISDA for potential implementation within CDM.
Goal: Develop a consistent standardized margin schedule method using CDM.
Method: The CDM implementation of the Standardised Schedule is divided into three parts:
Identification of Required Inputs for Calculation
Extraction of Trade Information Necessary for Initial Margin Calculation
Calculation of Initial Margin Amounts
2. Methodology
2.1 Identification of Inputs
To compute the initial margin using the standardized schedule method, specific inputs need to be identified and extracted from the trade. This involves referencing a table to determine the margin rate based on the asset class and duration of the product. Guidelines ensure harmonization among participants by specifying the notional value for each product, which introduces additional inputs such as product class, notional amount, and notional currency.
The required inputs are:
Asset Class
Product Class
Notional
Notional Currency
Duration (in years)
Note: The concept of product class is used because ISDA has established the notional amount and the duration that must be considered for each product. This approach ensures greater homogenization in the calculation process. The published guide can be viewed at the following link: Grid Notional and Tenor Survey
2.2 Extraction of Information
Once the necessary inputs for initial margin calculation are identified, dedicated functions are utilized to extract these details from the trade.
Function: BuildStandardizedSchedule
Extracts relevant trade information to populate the grid used for calculating the gross initial margin. Qualification functions have been pre-established to determine asset and product classes for a given trade.
func BuildStandardizedSchedule:
inputs:
trade Trade (1..1)
output:
standardizedSchedule StandardizedSchedule (1..1)
actions:
set standardizedSchedule -> assetClass:
StandardizedScheduleAssetClass(trade)
set standardizedSchedule -> productClass:
StandardizedScheduleProductClass(trade)
set standardizedSchedule -> notional:
StandardizedScheduleNotional(trade)
set standardizedSchedule -> notionalCurrency:
StandardizedScheduleNotionalCurrency(trade)
set standardizedSchedule -> durationInYears:
StandardizedScheduleDuration(trade)
2.3 Calculation of Initial Margin Amounts
With the necessary inputs collected, the next step involves calculating the initial margin. This is achieved by using the GetIMRequirement function to determine the margin rate based on the asset class and duration of the product. The calculated margin rate is then applied to the notional value of the product to compute the initial margin.
Function: GetIMRequirement
Computes the required margin rate for calculating the gross initial margin. The rate depends on the asset class of the trade and, in some cases, its duration.
func GetIMRequirement:
inputs:
assetClass StandardizedScheduleAssetClassEnum (1..1)
durationInYears number (1..1)
output:
percentage number (1..1)
actions:
set percentage:
if assetClass = StandardizedScheduleAssetClassEnum -> InterestRates then (
if durationInYears <= 2 then 1.0
else if durationInYears > 2 and durationInYears <= 5 then 2.0
else if durationInYears > 5 then 4.0
)
else if assetClass = StandardizedScheduleAssetClassEnum -> Credit then (
if durationInYears <= 2 then 2.0
else if durationInYears > 2 and durationInYears <= 5 then 5.0
else if durationInYears > 5 then 10.0
)
else if assetClass = StandardizedScheduleAssetClassEnum -> ForeignExchange then 6.0
else if assetClass = StandardizedScheduleAssetClassEnum -> Equity then 15.0
else if assetClass = StandardizedScheduleAssetClassEnum -> Commodity then 15.0
2.4 Calculation of Gross Initial Margin
With the margin rate determined by GetIMRequirement, the gross initial margin is calculated by multiplying the notional value of the trade by the margin rate, which is adjusted to a percentage before applying it.
Calculates the gross initial margin based on the extracted trade information and margin rate.
func GetGrossInitialMarginFromStandardizedSchedule:
inputs:
standardizedSchedule StandardizedSchedule (1..1)
output:
grossInitialMargin Quantity (0..1)
actions:
alias initialMarginRequirement:
GetIMRequirement(standardizedSchedule -> assetClass, standardizedSchedule -> durationInYears)
set grossInitialMargin -> value:
standardizedSchedule -> notional * initialMarginRequirement * 0.01
set grossInitialMargin -> unit -> currency:
standardizedSchedule -> notionalCurrency
3. Transformation to Net Initial Margin
To convert gross initial margin to net initial margin, a specific formula is employed that incorporates the net-to-gross ratio (NGR). This ratio is derived from the current replacement costs. For this purpose, the function GetNetInitialMarginFromExposurehas been created.
Function: GetNetInitialMarginFromExposure
Computes the net initial margin, taking the gross initial margin result and the mark to market value for each trade in the portfolio.
func GetNetInitialMarginFromExposure:
inputs:
exposure Exposure (0..1)
output:
initialMargin StandardizedScheduleInitialMargin (0..1)
alias tradePortfolio:
exposure -> tradePortfolio
alias positions:
tradePortfolio -> positions
alias tradeInitialMargin:
positions extract
StandardizedScheduleTradeInfo {
assetClass: BuildStandardizedSchedule(item -> tradeReference -> trade) -> assetClass,
productClass: BuildStandardizedSchedule(item -> tradeReference -> trade) -> productClass,
grossInitialMargin : GetGrossInitialMarginFromStandardizedSchedule(BuildStandardizedSchedule(item -> tradeReference -> trade)),
markToMarketValue : item -> tradeReference -> valuationHistory filter method = ValuationTypeEnum -> MarkToMarket then only-element then amount
}
alias totalGIM:
tradeInitialMargin -> grossInitialMargin -> value sum
alias netCurrentReplacementCost:
tradeInitialMargin -> markToMarketValue -> value sum
alias grossCurrentReplacementCost:
tradeInitialMargin -> markToMarketValue filter item -> value > 0 then value sum
alias netToGrossRatio:
netCurrentReplacementCost / grossCurrentReplacementCost
add initialMargin -> tradeInfo:
tradeInitialMargin
set initialMargin -> netInitialMargin -> value:
0.4*totalGIM + 0.6*totalGIM*netToGrossRatio
set initialMargin -> netInitialMargin -> unit -> currency:
tradeInitialMargin -> markToMarketValue -> unit -> currency distinct only-element
4. Conclusion
This structured approach ensures clarity and precision in calculating margins, promoting consistency and accuracy across various trades and products. By following these methods and functions within CDM, financial institutions can maintain standardized processes and achieve reliable initial margin calculations.
Background
The 2007 financial crisis exposed vulnerabilities in banks and markets, prompting the G20 to mandate reforms for OTC derivatives. These include exchange trading, central clearing, and reporting to enhance transparency and curb excessive risk. Additionally, higher capital requirements for non-centrally cleared derivatives were introduced. Subsequently, margin requirements were established under global standards by BCBS and IOSCO to further reduce systemic risk.
1. Standard Initial Margin Model for Non-Cleared Derivatives
To comply with BCBS-IOSCO guidelines on "Margin Requirements for Non-Centrally Cleared Derivatives", ISDA proposes the Standard Initial Margin Model (SIMM) for market participants. This model aims to standardize margin calculations, ensuring transparency and facilitating conflict resolution. The guidelines mandate that covered entities exchange initial margin using a schedule-based or an approved model-based approach. Implementing individual margin models would require replication across counterparties, posing challenges due to data complexity and maintenance.
2. Standardised Schedule Method
The standardized schedule method offers a less risk-sensitive and simpler approach to calculating Initial Margin (IM), suitable for market participants unable to develop or maintain quantitative models independently. It serves as a conservative alternative, ensuring Initial Margin calculations are accessible and straightforward.
2.1. Key Components
These standardized methodologies aim to simplify and standardize margin calculations across diverse portfolios, enhancing risk management and regulatory compliance in the derivatives market.
CDM Implementation
1. Starting Point
Given the significance of the OTC market and the evolving regulatory landscape, this project was initiated. Initially, the objective was to comprehend the concept of initial margin and subsequently explore the Standard Initial Margin Model (SIMM) proposed by ISDA for potential implementation within CDM.
Goal: Develop a consistent standardized margin schedule method using CDM.
Method: The CDM implementation of the Standardised Schedule is divided into three parts:
2. Methodology
2.1 Identification of Inputs
To compute the initial margin using the standardized schedule method, specific inputs need to be identified and extracted from the trade. This involves referencing a table to determine the margin rate based on the asset class and duration of the product. Guidelines ensure harmonization among participants by specifying the notional value for each product, which introduces additional inputs such as product class, notional amount, and notional currency.
The required inputs are:
Note: The concept of product class is used because ISDA has established the notional amount and the duration that must be considered for each product. This approach ensures greater homogenization in the calculation process. The published guide can be viewed at the following link: Grid Notional and Tenor Survey
2.2 Extraction of Information
Once the necessary inputs for initial margin calculation are identified, dedicated functions are utilized to extract these details from the trade.
Function: BuildStandardizedSchedule
2.3 Calculation of Initial Margin Amounts
With the necessary inputs collected, the next step involves calculating the initial margin. This is achieved by using the GetIMRequirement function to determine the margin rate based on the asset class and duration of the product. The calculated margin rate is then applied to the notional value of the product to compute the initial margin.
Function: GetIMRequirement
2.4 Calculation of Gross Initial Margin
With the margin rate determined by
GetIMRequirement
, the gross initial margin is calculated by multiplying the notional value of the trade by the margin rate, which is adjusted to a percentage before applying it.Function: GetGrossInitialMarginFromStandardizedSchedule
3. Transformation to Net Initial Margin
To convert gross initial margin to net initial margin, a specific formula is employed that incorporates the net-to-gross ratio (NGR). This ratio is derived from the current replacement costs. For this purpose, the function
GetNetInitialMarginFromExposure
has been created.Function: GetNetInitialMarginFromExposure
4. Conclusion
This structured approach ensures clarity and precision in calculating margins, promoting consistency and accuracy across various trades and products. By following these methods and functions within CDM, financial institutions can maintain standardized processes and achieve reliable initial margin calculations.