Main Content

bacva

R2026b

Create bacva object to support ISDA BA-CVA

Since R2026b

Description

A bacva object provides an object-based framework that supports Basel-compliant, International Swaps and Derivatives Association (ISDA®) workflows for calculating credit valuation adjustment (CVA) capital using the Basic Approach (BA-CVA) per Basel MAR50 rules. To create a bacva object using the bacva function, you need a file in the BA-CVA Common Risk Interchange Format (CRIF), a standardized format developed by the ISDA for reporting CVA capital under the BA-CVA framework. For more information on creating an ISDA BA-CVA CRIF file, see ISDA BA-CVA CRIF File Specifications.

A bacva object includes a vector of bacva.Portfolio objects, each of which represents a single BA-CVA portfolio containing counterparty exposure and hedge sensitivities. A bacva.Portfolio object includes a vector of bacva.Sensitivity objects, each of which represents a single row from a BA-CVA CRIF file, containing either a counterparty exposure or a CVA hedge.

After creating a bacva object, use the capital object function to calculate BA-CVA capital requirements for each portfolio.

Creation

Description

myBACVA = bacva(BACVACRIF) creates a bacva object with default properties using the input data specified by BACVACRIF.

example

myBACVA = bacva(BACVACRIF,Name=Value) specifies additional options using one or more name-value arguments. For example, Model="Reduced" specifies to create the object using the BA-CVA reduced model, and DomesticCurrency="EUR" specifies Euro as the currency.

example

Input Arguments

expand all

ISDA BA-CVA CRIF data descriptor, specified as a string or a table.

  • If you specify BACVACRIF as a string, the value of the string must be the name of an ISDA BA-CVA CRIF file.

  • If you specify BACVACRIF as a table, the table must be in the format of an ISDA BA-CVA CRIF file. For more information on creating an ISDA BA-CVA CRIF file, see ISDA BA-CVA CRIF File Specifications.

The ISDA BA-CVA CRIF file facilitates the exchange of credit valuation adjustment risk information between market participants and regulatory authorities. The file provides a structured and consistent format for reporting key data elements related to counterparty credit risk exposures and CVA hedging instruments.

The ISDA BA-CVA CRIF file typically includes information such as:

  • Exposure data — This data includes details about the counterparty exposures, such as counterparty identifiers, effective maturity, exposure at default (EAD), credit quality, and sector bucket assignments.

  • Hedge data — This data includes information about single-name and index credit default swap (CDS) hedges used to mitigate CVA risk, including notional amounts, maturities, and risk weights.

  • Counterparty data — This data includes information about counterparty groups, regions, and credit quality classifications (investment grade or high yield/not rated).

Name-Value Arguments

expand all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: myBACVA = bacva("BACVA_CRIF.csv",Model="Reduced",EADModel="IMM",DomesticCurrency="EUR") creates a bacva object using the BA-CVA reduced model with the internal model method (IMM) as the EAD model and Euro as the currency.

ISO currency code for the domestic currency, specified as a string.

This argument sets the DomesticCurrency property.

Example: DomesticCurrency="EUR"

Spot foreign exchange rates, specified as a table. Specify the table with these columns:

  • Base — String specifying the ISO currency code of the base currency

  • Quote — String specifying the ISO currency code of the quote currency

  • SpotRate — Numeric value specifying the spot exchange rate

This argument sets the FXSpotRates property.

Example: FXSpotRates=table("USD","EUR",0.9,VariableNames=["Base" "Quote" "SpotRate"])

BA-CVA model type, specified as "Full" or "Reduced".

  • "Full" — The BA-CVA full model recognizes eligible CVA hedges (single-name CDS, single-name contingent CDS, and index CDS). The software computes capital as a weighted combination of nonhedged and hedged capital using the Beta name-value argument.

  • "Reduced" — The BA-CVA reduced model does not recognize hedges. The software computes capital based solely on nonhedged capital.

This argument sets the Model property.

Example: Model="Reduced"

Weight of the nonhedged capital (Kreduced) in full capital, specified as a numeric value in the range [0,1]. The weight of the hedged capital (Khedged) is 1 − Beta. The full capital (Kfull) is Kfull = BetaKreduced + (1 − Beta)Khedged.

Specify Beta as 0 if you want to recognize hedges fully. Specify Beta as 1 if you do not want to recognize hedges at all.

This argument sets the Beta property.

Note

If you specify Model as "Reduced", then the function ignores Beta.

Example: Beta=0

BA-CVA counterparty rho correlation, specified as a numeric value in the range [0,1].

This argument sets the CounterpartyRho property.

Example: CounterpartyRho=0.35

BA-CVA discount scalar, specified as a nonnegative numeric value.

  • If you specify Model as "Full", then the full BA-CVA capital is DiscountScalarKfull.

  • If you specify Model as "Reduced", then the full BA-CVA capital is DiscountScalarKreduced.

    This argument sets the DiscountScalar property.

Example: DiscountScalar=0.5

Exposure at default model, specified as "SA-CCR" or "IMM".

  • "SA-CCR" — Standardized Approach for Counterparty Credit Risk. The supervisory discount factor for each netting set is 1−e−0.05MNS0.05MNS.

  • "IMM" — Internal Model Method. The supervisory discount factor for each netting set is 1.

This argument sets the EADModel property.

Example: EADModel="IMM"

Output Arguments

expand all

BA-CVA framework for calculating CVA capital requirements, returned as a bacva object.

Properties

expand all

General

This property is read-only.

ISDA BA-CVA CRIF data, represented as a table.

This property is read-only.

Number of portfolios, represented as a nonnegative integer.

Data Types: double

This property is read-only.

Portfolio IDs, represented as a NumPortfolios-by-1 string vector.

This property is read-only.

Portfolios, represented as a NumPortfolios-by-1 vector of bacva.Portfolio objects. For more information, see bacva.Portfolio Properties.

This property is read-only.

Applicable sensitivity qualifiers, represented as a string vector. Examples of applicable sensitivity qualifiers include counterparties and currencies.

This property is read-only.

Indicator of Basel regulation, represented as "Basel_MAR50".

This property is read-only after object creation.

ISO currency code for the domestic currency, specified as a string.

This property is read-only after object creation.

Spot foreign exchange rates, specified as a table. Specify the table with these columns:

  • Base — String specifying the ISO currency code of the base currency

  • Quote — String specifying the ISO currency code of the quote currency

  • SpotRate — Numeric value specifying the spot exchange rate

This property is read-only after object creation.

BA-CVA model type, specified as "Full" or "Reduced".

  • "Full" — The BA-CVA full model recognizes eligible CVA hedges (single-name CDS, single-name contingent CDS, and index CDS). The software computes capital as a weighted combination of nonhedged and hedged capital using the property.

  • "Reduced" — The BA-CVA reduced model does not recognize hedges. The software computes capital based solely on nonhedged capital.

This property is read-only after object creation.

Weight of the nonhedged capital (Kreduced) in full capital, specified as a numeric value in the range [0,1]. The weight of the hedged capital (Khedged) is 1 − Beta. The full capital (Kfull) is Kfull = BetaKreduced + (1 − Beta)Khedged.

Data Types: double

This property is read-only after object creation.

BA-CVA counterparty rho correlation, specified as a numeric value in the range [0,1].

Data Types: double

This property is read-only after object creation.

BA-CVA discount scalar, specified as a nonnegative numeric value.

  • If Model is "Full", then the full BA-CVA capital is DiscountScalarKfull.

  • If Model is "Reduced", then the full BA-CVA capital is DiscountScalarKreduced.

Data Types: double

This property is read-only after object creation.

Exposure at default model, specified as "SA-CCR" or "IMM".

This property is read-only.

BA-CVA risk weights, represented as a table.

This property is read-only.

BA-CVA correlations, represented as a table.

Object Functions

capitalCalculate BA-CVA capital requirements

Examples

collapse all

Create a bacva object with default properties using the BA-CVA CRIF file BACVA_CRIF_01.csv, which is attached to this example.

myBACVA = bacva("BACVA_CRIF_01.csv")
myBACVA = 
  bacva with properties:

                CRIF: [60×14 table]
       NumPortfolios: 21
        PortfolioIDs: [21×1 string]
          Portfolios: [21×1 bacva.Portfolio]
          Qualifiers: [28×1 string]
          Regulation: "Basel_MAR50"
    DomesticCurrency: "USD"
         FXSpotRates: [0×0 table]
               Model: "Full"
                Beta: 0.2500
     CounterpartyRho: 0.5000
      DiscountScalar: 0.6500
            EADModel: "SA-CCR"
         RiskWeights: [8×3 table]
        Correlations: [5×2 table]

You can then use the capital object function with the bacva object.

Create a bacva object using the BA-CVA CRIF file BACVA_CRIF_01.csv, which is attached to this example. Specify the reduced BA-CVA model type, internal model method for the exposure at default model, and Euro for the domestic currency using the Model, EADModel, and DomesticCurrency name-value arguments, respectively.

myBACVA = bacva("BACVA_CRIF_01.csv",Model="Reduced",EADModel="IMM",DomesticCurrency="EUR")
myBACVA = 
  bacva with properties:

                CRIF: [60×14 table]
       NumPortfolios: 21
        PortfolioIDs: [21×1 string]
          Portfolios: [21×1 bacva.Portfolio]
          Qualifiers: [28×1 string]
          Regulation: "Basel_MAR50"
    DomesticCurrency: "EUR"
         FXSpotRates: [0×0 table]
               Model: "Reduced"
                Beta: 0.2500
     CounterpartyRho: 0.5000
      DiscountScalar: 0.6500
            EADModel: "IMM"
         RiskWeights: [8×3 table]
        Correlations: [5×2 table]

More About

expand all

References

[1] Bank for International Settlements. "MAR50 — Credit Valuation Adjustment Framework." January 2023. https://www.bis.org/basel_framework/chapter/MAR/50.htm.

[2] Bank for International Settlements. "CRE52 — Standardised Approach to Counterparty Credit Risk." June 2020. https://www.bis.org/basel_framework/chapter/CRE/52.htm.

Version History

Introduced in R2026b