finos / common-domain-model

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

Open vallslaura opened 1 month ago

vallslaura commented 1 month ago

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

  1. 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%
  1. 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:

  1. Identification of Required Inputs for Calculation
  2. Extraction of Trade Information Necessary for Initial Margin Calculation
  3. 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:

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

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

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.

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 GetNetInitialMarginFromExposurehas been created.

Function: GetNetInitialMarginFromExposure

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.

manucarreramoreno commented 1 month ago

PR: https://github.com/finos/common-domain-model/pull/3062