Main Content

sbm

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

Since R2024b

Description

SBMResults = sbm(frtbsaObject) computes the sensitivity-based method (SBM) charge results for each portfolio using the frtbsa object. For more information, see Sensitivity-Based Method. Also, you can use the sbmChart function to create a chart for the SBM charge for all portfolios.

example

Examples

collapse all

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: [159×18 table]
       NumPortfolios: 2.00
        PortfolioIDs: [2×1 string]
          Portfolios: [2×1 frtbsa.Portfolio]
          Regulation: "Basel"
    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 = 2×1 string
    "P1"
    "P2"

Display the properties of the first Portfolio object.

myFRTBSA.Portfolios(1)
ans = 
  Portfolio with properties:

    PortfolioID: "P1"
         Trades: [69×1 frtbsa.Trade]
      RiskTypes: [69×1 string]

Display the risk types of the portfolio.

myFRTBSA.Portfolios(1).RiskTypes
ans = 69×1 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: [2×1 string]
          Regulation: "Basel"
    DomesticCurrency: "USD"
             Charges: [2×1 double]
    ComponentResults: [2×1 frtbsa.sbmPortfolioResults]
        ResultsTable: [2×10 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: [1×1 struct]
      ChargeByRiskClass: [21×5 table]
     IntrabucketCharges: [1×1 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

collapse all

FRTB-SA object, specified as a frtbsa object. You create a frtbsa object using frtbsa.

Data Types: object

Output Arguments

collapse all

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.

  • PortfolioIDsNumPortfolios-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".

  • ChargesNumPortfolios-by-1 array of residual risk add-on capital charges.

  • ComponentResultsNumPortfolios-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

collapse all

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