# sbm

Calculate sensitivity-based method (SBM) charge results for each portfolio

*Since R2024b*

## Description

computes the sensitivity-based method (SBM) charge results for each portfolio using the
`SBMResults`

= sbm(`frtbsaObject`

)`frtbsa`

object. For more information, see
Sensitivity-Based Method.

## Examples

### Calculate Sensitivity-Based Method Using `frtbsa`

Object

Use a `frtbsa`

object and the `sbm`

function to calculate the sensitivity-based method (SBM) charge results for each portfolio. FRTB-SA (Standardized Approach for Fundamental Review of Trading Book) is a Basel Committee on Banking Supervision framework for calculating market capital risk requirements that is based on a set of standardized risk factors.

**Create frtbsa object**

Use bank format for numeric data to use two decimal places.

`format bank`

Define the ISDA® FRTB-SA CRIF file.

`FRTBSACRIF = "FRTBSA_CRIF.csv";`

Define the DRC reference date.

DrcRefCOBDate = datetime(2023,9,21);

Use `frtbsa`

to create the FRTB-SA object.

myFRTBSA = frtbsa(FRTBSACRIF,DRCValuationDate=DrcRefCOBDate)

myFRTBSA = frtbsa with properties: CRIF: [159x18 table] NumPortfolios: 2.00 PortfolioIDs: [2x1 string] Portfolios: [2x1 frtbsa.Portfolio] Regulation: "Basel_d491" DomesticCurrency: "USD" DRCValuationDate: 21-Sep-2023 NumDaysYear: 365.00

**Examine Output**

Display the contents of the ISDA FRTB-SA CRIF file.

myFRTBSA.CRIF

`ans=`*159×18 table*
PortfolioID TradeID Variant SensitivityID RiskType Qualifier Bucket Label1 Label2 Amount AmountCurrency AmountUSD Label3 EndDate CreditQuality LongShortInd CoveredBondInd TrancheThickness
___________ ________ ____________ _____________ ____________ __________ ______ _________ ___________ _________ ______________ _________ ______ _______ _____________ ____________ ______________ ________________
"P1" "EQD_a1" <missing> "P1_EQD_a1" "EQ_DELTA" "ISSUER A" "1" <missing> "SPOT" 8250.00 "USD" 8250.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQD_a2" <missing> "P1_EQD_a2" "EQ_DELTA" "ISSUER A" "1" <missing> "REPO" 8333.33 "USD" 8333.33 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQD_b1" <missing> "P1_EQD_b1" "EQ_DELTA" "ISSUER B" "2" <missing> "SPOT" 22000.00 "USD" 22000.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQV_a1" "Variant 1" "P1_EQV_a1" "EQ_VEGA" "ISSUER A" "1" "0.5" <missing> -50.00 "USD" -50.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQV_a2" "Variant 1" "P1_EQV_a2" "EQ_VEGA" "ISSUER A" "1" "1" <missing> 200.00 "USD" 200.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQV_b1" "Variant 1" "P1_EQV_b1" "EQ_VEGA" "ISSUER B" "2" "0.5" <missing> -166.67 "USD" -166.67 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQC_a1" "Variant 1a" "P1_EQC_a1" "EQ_CURV" "ISSUER A" "1" "0.5" <missing> -18910.00 "USD" -18910.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQC_a1" "Variant 1a" "P1_EQC_a1" "EQ_CURV" "ISSUER A" "1" "-0.5" <missing> 6526.25 "USD" 6526.25 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQC_b1" "Variant 1a" "P1_EQC_b1" "EQ_CURV" "ISSUER B" "2" "0.5" <missing> -6288.00 "USD" -6288.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "EQC_b1" "Variant 1a" "P1_EQC_b1" "EQ_CURV" "ISSUER B" "2" "-0.5" <missing> 6120.00 "USD" 6120.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "CMD_a1" <missing> "P1_CMD_a1" "COMM_DELTA" "COAL" "1" "0" "NEWCASTLE" 2000.00 "USD" 2000.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "CMD_a2" <missing> "P1_CMD_a2" "COMM_DELTA" "COAL" "1" "0" "LONDON" -500.00 "USD" -500.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "CMD_b1" <missing> "P1_CMD_b1" "COMM_DELTA" "BRENT" "2" "0" "LE HAVRE" 666.67 "USD" 666.67 NaN NaT <missing> <missing> <missing> NaN
"P1" "CMD_c1" <missing> "P1_CMD_c1" "COMM_DELTA" "WTI" "2" "2" "OKLAHOMA" -875.00 "USD" -875.00 NaN NaT <missing> <missing> <missing> NaN
"P1" "CMV_a1" "Variant 1" "P1_CMV_a1" "COMM_VEGA" "COAL" "1" "0.5" <missing> 333.33 "USD" 333.33 NaN NaT <missing> <missing> <missing> NaN
"P1" "CMV_a2" "Variant 1" "P1_CMV_a2" "COMM_VEGA" "COAL" "1" "1" <missing> -100.00 "USD" -100.00 NaN NaT <missing> <missing> <missing> NaN
⋮

Display the number of portfolios and their IDs.

myFRTBSA.NumPortfolios

ans = 2.00

myFRTBSA.PortfolioIDs

`ans = `*2x1 string*
"P1"
"P2"

Display the properties of the first `Portfolio`

object.

myFRTBSA.Portfolios(1)

ans = Portfolio with properties: PortfolioID: "P1" Trades: [69x1 frtbsa.Trade] RiskTypes: [69x1 string]

Display the risk types of the portfolio.

myFRTBSA.Portfolios(1).RiskTypes

`ans = `*69x1 string*
"EQ_DELTA"
"EQ_DELTA"
"EQ_DELTA"
"EQ_VEGA"
"EQ_VEGA"
"EQ_VEGA"
"EQ_CURV"
"EQ_CURV"
"COMM_DELTA"
"COMM_DELTA"
"COMM_DELTA"
"COMM_DELTA"
"COMM_VEGA"
"COMM_VEGA"
"COMM_VEGA"
"COMM_VEGA"
"COMM_CURV"
"COMM_CURV"
"COMM_CURV"
"GIRR_DELTA"
"GIRR_DELTA"
"GIRR_DELTA"
"GIRR_VEGA"
"GIRR_VEGA"
"GIRR_VEGA"
"GIRR_CURV"
"GIRR_CURV"
"FX_DELTA"
"FX_DELTA"
"FX_VEGA"
⋮

Display some of the trades of the portfolio.

myFRTBSA.Portfolios(1).Trades(1)

ans = Trade with properties: TradeID: "EQD_a1" Variant: <missing> SensitivityID: "P1_EQD_a1" RiskType: "EQ_DELTA" Qualifier: "ISSUER A" Bucket: "1" Label1: <missing> Label2: "SPOT" Amount: 8250.00 AmountCurrency: "USD" AmountUSD: 8250.00 Label3: NaN EndDate: NaT CreditQuality: <missing> LongShortInd: <missing> CoveredBondInd: <missing> TrancheThickness: NaN

myFRTBSA.Portfolios(1).Trades(30)

ans = Trade with properties: TradeID: "FXV_b1" Variant: "Variant 1" SensitivityID: "P1_FXV_b1" RiskType: "FX_VEGA" Qualifier: "EURCLP" Bucket: <missing> Label1: "0.5" Label2: <missing> Amount: 175.00 AmountCurrency: "USD" AmountUSD: 175.00 Label3: NaN EndDate: NaT CreditQuality: <missing> LongShortInd: <missing> CoveredBondInd: <missing> TrancheThickness: NaN

myFRTBSA.Portfolios(1).Trades(60)

ans = Trade with properties: TradeID: "RRAO_a2" Variant: <missing> SensitivityID: "P1_RRAO_a2" RiskType: "RRAO_01_PERCENT" Qualifier: <missing> Bucket: <missing> Label1: <missing> Label2: <missing> Amount: 300000.00 AmountCurrency: "USD" AmountUSD: 300000.00 Label3: NaN EndDate: NaT CreditQuality: <missing> LongShortInd: <missing> CoveredBondInd: <missing> TrancheThickness: NaN

**Compute **SBM **Charge**

Under the SBM, banks calculate capital charges based on the sensitivities of their trading book positions to various risk factors. Use `sbm`

to compute the SBM charge results for each portfolio using the `frtbsa`

object.

SBMResults = sbm(myFRTBSA)

SBMResults = sbmResults with properties: NumPortfolios: 2.00 PortfolioIDs: [2x1 string] Regulation: "Basel_d491" DomesticCurrency: "USD" Charges: [2x1 double] ComponentResults: [2x1 frtbsa.sbmPortfolioResults] ResultsTable: [2x10 table]

The `Charges`

output contains the SBM risk charge of the portfolios.

SBMResults.Charges

`ans = `*2×1*
124519.56
122514.96

The `ResultsTable`

output contains the high-level risk SBM charge calculations of the portfolio.

SBMResults.ResultsTable

`ans=`*2×10 table*
PortfolioID Correlation Total GIRR CSR_NS CSR_SC CSR_SNC FX EQ COMM
___________ ___________ _________ ________ ______ ________ ________ ________ ________ _______
"P1" "Low" 124519.56 10183.45 815.24 40425.33 20169.47 21532.62 23991.46 7401.98
"P2" "Low" 122514.96 9941.02 503.07 40425.33 20169.47 21532.62 23954.45 5988.99

The `ComponentResults`

output contains detailed SBM risk charge information for a given portfolio. Examine the SBM risk charge for the first portfolio.

SBMResults.ComponentResults(1)

ans = sbmPortfolioResults with properties: PortfolioID: "P1" Charge: 124519.56 ChargeByCorrelation: [1x1 struct] ChargeByRiskClass: [21x5 table] IntrabucketCharges: [1x1 struct]

Display the charges by risk class.

SBMResults.ComponentResults(1).ChargeByRiskClass

`ans=`*21×5 table*
RiskClass RiskMeasure LowCorrelation MediumCorrelation HighCorrelation
_________ ___________ ______________ _________________ _______________
"GIRR" "Delta" 342.95 334.39 338.69
"GIRR" "Vega" 516.67 514.22 515.45
"GIRR" "Curvature" 9323.83 9323.83 9323.83
"CSR_NS" "Delta" 265.17 262.20 263.68
"CSR_NS" "Vega" 130.96 129.28 130.12
"CSR_NS" "Curvature" 419.11 418.46 418.79
"CSR_SC" "Delta" 590.07 575.70 582.93
"CSR_SC" "Vega" 198.82 195.75 197.29
"CSR_SC" "Curvature" 39636.44 39634.87 39635.66
"CSR_SNC" "Delta" 456.21 455.99 456.10
"CSR_SNC" "Vega" 506.86 489.20 498.11
"CSR_SNC" "Curvature" 19206.41 19206.41 19206.41
"FX" "Delta" 8.84 8.84 8.84
"FX" "Vega" 150.00 150.00 150.00
"FX" "Curvature" 21373.78 21373.78 21373.78
"EQ" "Delta" 14762.60 14451.94 14608.10
⋮

Display the low correlation scenario charges.

SBMResults.ComponentResults(1).ChargeByCorrelation.Low

`ans=`*8×4 table*
Delta Vega Curvature Charge
________ _______ _________ _________
GIRR 342.95 516.67 9323.83 10183.45
CSR_NS 265.17 130.96 419.11 815.24
CSR_SC 590.07 198.82 39636.44 40425.33
CSR_SNC 456.21 506.86 19206.41 20169.47
FX 8.84 150.00 21373.78 21532.62
EQ 14762.60 157.31 9071.55 23991.46
COMM 437.51 234.97 6729.51 7401.98
Total 16863.33 1895.59 105760.63 124519.56

Display the intrabucket charges for this portfolio for the equity class and the delta risk sensitivity.

SBMResults.ComponentResults(1).IntrabucketCharges.EQ.Delta

`ans=`*2×5 table*
Bucket Sb LowCorrelation MediumCorrelation HighCorrelation
______ ________ ______________ _________________ _______________
1.00 4583.33 4583.24 4583.29 4583.33
2.00 13200.00 13200.00 13200.00 13200.00

Display the intrabucket charges for this portfolio for the GIRR class and the vega risk sensitivity.

SBMResults.ComponentResults(1).IntrabucketCharges.GIRR.Vega

`ans=`*1×5 table*
Bucket Sb LowCorrelation MediumCorrelation HighCorrelation
______ ______ ______________ _________________ _______________
"USD" 516.67 514.22 515.45 516.67

## Input Arguments

`frtbsaObject`

— FRTB-SA object

object

FRTB-SA object, specified as a `frtbsa`

object. You create a
`frtbsa`

object using `frtbsa`

.

**Data Types: **`object`

## Output Arguments

`SBMResults`

— Sensitivity based market risk capital charge results

object

Sensitivity based market risk capital charge results, returned as a
`SBMResults`

object. The `SBMResults`

object has the
following properties:

`NumPortfolios`

— Number of portfolios whose residual risk add-on capital charges are contained in the`RRAOResults`

object.`PortfolioIDs`

—`NumPortfolios`

-by-`1`

array of strings containing the portfolio IDs of each portfolio.`DomesticCurrency`

— Domestic currency. The default is`"USD"`

.`Regulation`

— Jurisdiction. The default is`"Basel"`

.`Charges`

—`NumPortfolios`

-by-`1`

array of residual risk add-on capital charges.`ComponentResults`

—`NumPortfolios`

-by-`1`

array of`frtbsa.sbmPortfolioResults`

objects containing the calculation results for each portfolio. The`frtbsa.sbmPortfolioResults`

object properties are:`PortfolioIDs`

— Scalar string indicating the ID of the portfolio.`ChargeByCorrelation`

— Struct for SBM risk capital charge calculation by correlation.`ChargeByRiskClass`

— Table displaying the SBM risk capital charge calculation by risk class.`IntracucketCharges`

— Table displaying the SBM risk capital charge calculation intrabucket calculations.

`ResultsTable`

— Table displaying the high-level SBM calculation results for all portfolios.

## More About

### Sensitivity-Based Method

Under the *sensitivity-based method* (SBM), banks
calculate capital charges based on the sensitivities of their trading book positions to
various risk factors.

These risk factors are determined by regulatory guidelines and include interest rate risk, credit spread risk, equity risk, foreign exchange risk, commodity risk, and others.

The SBM workflow involves the following steps:

**Identification of Risk Factors**— Banks must identify the risk factors that affect the pricing of their trading book instruments. Risk factors are categorized into different risk classes (for example, interest rate risk, credit spread risk, equity risk, commodity risk, and FX risk) and further divided into liquidity horizons and buckets as defined by the FRTB-SA regulation.**Sensitivities Calculation**— Banks determine the sensitivities of their trading book positions to the prescribed risk factors. Sensitivities measure how the value of a position is expected to change in response to changes in the underlying risk factors.**Aggregation of Sensitivities**— Aggregate the following sensitivities:Delta risk — Aggregate delta sensitivities within each risk class to calculate the

*delta*risk charge.Vega risk — Compute the vega risk charge for options and other positions sensitive to volatility changes.

Curvature risk — Calculate the curvature risk charge, which captures the nonlinear risk of options and instruments with option-like characteristics.

**Risk Weight Application**— Each sensitivity is then multiplied by a corresponding risk weight, which is prescribed by the regulator. Risk weights are designed to reflect the risk associated with changes in the respective risk factors.**Correlation Effects**— The standardized approach also accounts for correlations between risk factors within the same risk factor category. The prescribed correlations are used to calculate the aggregated risk within each risk factor category.**Capital Charge Aggregation**— The risk-weighted sensitivities within each risk factor category are aggregated, taking into account the prescribed correlations, to determine the capital charge for each risk factor category.**Overall Capital Requirement**— The capital charges for all risk factor categories are then added together to determine the overall capital requirement for the trading book under the sensitivity-based method.The correlation calculations are done for each risk sensitivity (delta, vega, and curvature) and for three correlation scenarios. The three correlation scenarios take into consideration market stress times. FRTB-SA requires that the sensitivity-based charge of the portfolio is computed for these three correlation scenarios: high correlation, medium/base correlation, and low correlation. The medium/base scenario corresponds to the basic values of the correlation parameters. The low scenario consists of multiplying the correlation coefficients by

`0.75`

and the high scenario consists of multiplying these correlation coefficients by`1.25`

. These scenarios take into consideration market stress times. The*total portfolio sensitivity-based capital risk charge*is the largest of these three correlation scenarios.

### Sensitvity-Based Method Components

Sensitvity-based method (SBM) components calculate capital requirements based on the sensitivities of the trading book positions to various risk factors.

In this framework, the following terminology applies:

**Risk Factor Classes**— SBM categorizes risk factors into several classes, such as interest rate risk, credit spread risk, equity risk, commodity risk, and foreign exchange risk. Each class has its own risk-weighting scheme.**Sensitivities**— Banks must calculate the sensitivities of their trading book positions to the various risk factors. Sensitivities measure how the value of a position changes in response to changes in an underlying risk factor.**Risk Factor**— Each sensitivity is then multiplied by a corresponding risk weight, which is prescribed by the regulation based on the liquidity and riskiness of the risk factor. The SBM accounts for correlations between risk factors within a risk class using a prescribed correlation matrix. This correlation allows for some diversification benefit within a risk class.**Bucket**— A bucket is a categorization of positions for market risk capital calculation. It is a set of instruments of the same risk class that are grouped together by similar characteristics. For each class, there is a bucket definition. For example, for the GIRR class, each bucket refers to a currency type. For the Equity Risk class, each bucket is classified in terms of market, economy, and sector type.

## References

[1] Bank for International
Settlements. "*MAR21 — Standardised Approach: Sensitivities-Based Method*."
March 2020. https://www.bis.org/basel_framework/chapter/MAR/21.htm.

[2] Bank for International
Settlements. "*MAR22 — Standardised Approach: Default Risk Capital
Requirement*." March 2020. https://www.bis.org/basel_framework/chapter/MAR/22.htm.

[3] Bank for International
Settlements. "*MAR23 — Standardised Approach: Residual Risk Add-On*." March
2020. https://www.bis.org/basel_framework/chapter/MAR/23.htm.

[4] Bank for International
Settlements. "*CRE42 — Securitisation: External-Ratings-Based Approach
(SEC-ERBA)*." January 2023. https://www.bis.org/basel_framework/chapter/CRE/42.htm.

[5] Bank for International
Settlements. "*Basel Committee on Banking Supervision: Minimum Capital Requirements
for Market Risk"*." January 2019. https://www.bis.org/bcbs/publ/d457.pdf.

## Version History

**Introduced in R2024b**

## MATLAB コマンド

次の MATLAB コマンドに対応するリンクがクリックされました。

コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)