Main Content


Calculate potential future exposure (PFE) for each portfolio

Since R2024a



outPFEResults = pfe(saccrObject) computes potential future exposure (PFE) for each portfolio using the saccr object. For more information, see Potential Future Exposure.


collapse all

Use a saccr object and the pfe function to calculate PFE for each portfolio.

Define the foreign exchange (FX) spot currency exchange rate table.

Base = ["EUR";"GBP";"GBP"];
Quote = ["USD";"USD";"EUR"];
SpotRate = [1.0543;1.2195;1.1567];
FXSpotTable = table(Base,Quote,SpotRate)
FXSpotTable=3×3 table
    Base     Quote    SpotRate
    _____    _____    ________

    "EUR"    "USD"     1.0543 
    "GBP"    "USD"     1.2195 
    "GBP"    "EUR"     1.1567 

Define the SA-CCR CRIF file.

SACCRCRIF = "SACCR_CRIF_Ports_7_8_9.csv";

Create a saccr object using the data in the SA-CCR CRIF file.

mySACCR = saccr(SACCRCRIF, DomesticCurrency="USD", FXSpot=FXSpotTable)
mySACCR = 
  saccr with properties:

                         CRIF: [42×19 table]
                NumPortfolios: 3
                 PortfolioIDs: [3×1 string]
              CounterpartyIDs: [3×1 string]
                   Portfolios: [3×1 saccr.Portfolio]
                   Regulation: "Basel_CRE52"
             DomesticCurrency: "USD"
                        Alpha: [3×1 double]
                  FXSpotRates: [3×3 table]
          TradeDecompositions: [5×2 table]
           CollateralHaircuts: [200×6 table]
        SupervisoryParameters: [19×7 table]
    MaturityBusinessDaysFloor: 10
          NumBusinessDaysYear: 250

You can then use the pfe function with the saccr object. For more information, see Potential Future Exposure.

outPFEResults = pfe(mySACCR)
outPFEResults = 
  PFEResults with properties:

                 NumPortfolios: 3
                  PortfolioIDs: [3×1 string]
               CounterpartyIDs: [3×1 string]
                    Regulation: "Basel_CRE52"
              DomesticCurrency: "USD"
           PFEUncollateralized: [3×1 double]
             PFECollateralized: [3×1 double]
    MultiplierUncollateralized: [3×1 double]
      MultiplierCollateralized: [3×1 double]
                  AddOnResults: [1×1 saccr.AddOnResults]

Input Arguments

collapse all

SA-CCR object, specified as a saccr object. You create a saccr object using saccr.

Data Types: object

Output Arguments

collapse all

Potential future exposure (PFE) results, returned as a PFEResults object. The PFEResults object has the following properties:

  • NumPortfolios

  • PortfolioIDs

  • CounterpartyIDs

  • Regulation

  • DomesticCurrency

  • PFEUncollateralized

  • PFECollateralized

  • MultiplierCollateralized

  • AddOnResults

More About

collapse all

Potential Future Exposure

The potential future exposure (PFE) of a derivative contract represents potential losses from market movements over a specific period.

Under the SA-CCR framework, the PFE of a derivative contract reflects possible losses from market movements over a certain period. It is calculated considering the contract's notional amount, remaining maturity, and underlying market volatility. PFE aims to capture the potential value increase of the contract based on historical price trends and market volatility. It is calculated separately for each netting set, a group of derivative contracts under legally enforceable netting agreements. Incorporating PFE into counterparty credit risk calculation provides a more accurate, risk-sensitive measure of counterparty exposure, considering potential future market movements and their impact on the derivative contracts' value. This measure enables appropriate capital allocation to cover potential losses.

Like replacement cost (RC), PFE is calculated differently for margined and unmargined netting sets. The PFE formula is

PFE = multipler * AddOnaggregate


  • The multiplier accounts for collateral exceeding the current portfolio value, reducing the add-on for over-collateralization, as many banks hold excess collateral to counter potential exposure increases.

  • The aggregate AddOn component calculates add-ons for each asset class (IR, Equity, FX, Credit, and Commodities) within a netting set before aggregation. This process involves various steps, with different calculations and regulations applied based on the instrument's asset class, buckets, and credit ratings, using regulatory-approved aggregation formulas.


[1] Bank for International Settlements. "CRE52 - Standardised Approach to Counterparty Credit Risk." June 2020. Available at:

[2] Bank for International Settlements. "CRE22 - Standardised Approach: Credit Risk Migration." November 2020. Available at:

[3] Bank for International Settlements. "Basel Committee on Banking Supervision: The Standardised Approach for Measuring Counterparty Credit Risk Exposures." April 2014. Available at:

Version History

Introduced in R2024a