Skip to content

standardised_approach

The standardised approach, set out in CRE20 to CRE22.

To calculate credit RWA for banking book exposures.

Classes:

ExposureChecker

Class to check different types of exposures.

Methods:

is_MDB_exposure staticmethod

is_MDB_exposure(instrument: Instrument, bank: Bank) -> bool

Check if the instrument qualifies MDB exposure.

is_PSE_exposure staticmethod

is_PSE_exposure(instrument: Instrument, bank: Bank) -> bool

Check if the instrument qualifies PSE exposure.

is_bank_exposure staticmethod

is_bank_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies bank exposure.

is_cash_exposure staticmethod

is_cash_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument is cash.

is_corporate_exposure staticmethod

is_corporate_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies corporate exposure.

is_covered_bond_exposure staticmethod

is_covered_bond_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies covered bond exposure.

is_credit_derivative_exposure staticmethod

is_credit_derivative_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies credit derivative exposure.

is_defaulted_exposure staticmethod

is_defaulted_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies defaulted exposure.

is_other_exposure staticmethod

is_other_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument does not qualify all other exposures.

is_real_estate_exposure staticmethod

is_real_estate_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument is a real estate exposure.

is_retail_exposure staticmethod

is_retail_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the exposure qualifies regulatory retail.

is_securities_firm_exposure staticmethod

is_securities_firm_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies securities firm exposure.

is_short_term_exposure staticmethod

is_short_term_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies short-term exposure.

is_sovereign_exposure staticmethod

is_sovereign_exposure(
    instrument: Instrument, bank: Bank
) -> bool

Check if the instrument qualifies sovereign or central bank exposure.

RiskWeightTable

Bases: ABC

Base class for risk weight tables.

Methods:

get_risk_weight abstractmethod classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk.

RiskWeightTableByCreditRating

Bases: RiskWeightTable

Base class for risk weight tables by credit rating.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight.

RiskWeightTableByLTV

Bases: RiskWeightTable

Base class for risk weight tables by LTV.

Methods:

get_risk_weight abstractmethod classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk.

RiskWeightTableForCommercialRealEstateDependentOnCashFlows

Bases: RiskWeightTableByLTV

Class to represent the risk weight table for regulatory commercial real estate exposures.

Specifically those are materially dependent on cash flows generated by the property.

This is Table 14 of CRE20.87.

Methods:

  • get_risk_weight

    Get the risk weight based on the instrument's LTV ratio.

get_risk_weight classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk weight based on the instrument's LTV ratio.

RiskWeightTableForCommercialRealEstateNotDependentOnCashFlows

Bases: RiskWeightTableByLTV

Class to represent the risk weight table for regulatory commercial real estate exposures.

Specifically those not dependent on cash flows generated by the property.

This is Table 13 of CRE20.85.

Methods:

  • get_risk_weight

    Get the risk weight based on the instrument's LTV ratio.

get_risk_weight classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk weight based on the instrument's LTV ratio.

RiskWeightTableForCorporateExposures

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for exposures to corporate.

This is Table 10 of CRE20.43.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight.

RiskWeightTableForExposuresToBanks

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for exposures to banks.

This is first panel of Table 6 of CRE20.18.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight.

RiskWeightTableForLandADCExposure

Bases: RiskWeightTable

Class to represent the risk weight table for land ADC exposures.

This is defined in CRE20.90 to CRE20.91.

Methods:

get_risk_weight classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk weight.

Land ADC exposures will be risk-weighted at 150%.

If criteria in CRE20.91 are met, risk weight is 100%. For example, all developments have been pre-sold.

To be conservative, let's use 150% here.

RiskWeightTableForMDBExposures

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for multilateral development banks (MDBs).

This is Table 5 of CRE20.15. MDBs with a zero risk weight are listed in footnote 8 of CRE20.14.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight for a given issuer.

RiskWeightTableForOtherRealEstate

Bases: RiskWeightTable

Class to represent the risk weight table for other real estate exposures.

This is defined in CRE20.89.

Methods:

  • get_risk_weight

    Get the risk weight based on the instrument's issuer and if it's dependent on cash flows.

get_risk_weight classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk weight based on the instrument's issuer and if it's dependent on cash flows.

RiskWeightTableForPSEBasedOnExternalRatingOfPSE

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for domestic PSEs based on external ratings of PSE.

This is Table 4 of CRE20.11.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight.

RiskWeightTableForPSEBasedOnExternalRatingOfSovereign

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for domestic PSEs based on external ratings of sovereign.

This is Table 3 of CRE20.11.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight.

RiskWeightTableForRatedCoveredBondExposures

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for rated covered bond exposures.

This is Table 8 of CRE20.38.

Methods:

  • get_risk_weight

    Get the risk weight based on the instrument's credit rating.

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = False
) -> float

Get the risk weight based on the instrument's credit rating.

RiskWeightTableForResidentialRealEstateDependentOnCashFlows

Bases: RiskWeightTableByLTV

Class to represent the risk weight table for regulatory residential real estate exposures.

Specifically those materially dependent on cash flows generated by the property. (e.g., Investment property)

This is Table 12 of CRE20.84.

Methods:

  • get_risk_weight

    Get the risk weight based on the instrument's LTV ratio.

get_risk_weight classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk weight based on the instrument's LTV ratio.

RiskWeightTableForResidentialRealEstateNotDependentOnCashFlows

Bases: RiskWeightTableByLTV

Class to represent the risk weight table for regulatory residential real estate exposures.

Specifically those not dependent on cash flows generated by the property.

This is Table 11 of CRE20.82.

Methods:

  • get_risk_weight

    Get the risk weight based on the instrument's LTV ratio.

get_risk_weight classmethod

get_risk_weight(instrument: Instrument) -> float

Get the risk weight based on the instrument's LTV ratio.

RiskWeightTableForShortTermExposuresToBanks

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for short-term exposures to banks.

This is second panel of Table 6 of CRE20.18.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight.

RiskWeightTableForSovereignExposures

Bases: RiskWeightTableByCreditRating

Class to represent the risk weight table for sovereigns and central banks.

This is Table 1 of CRE20.7.

Methods:

get_risk_weight classmethod

get_risk_weight(
    instrument: Instrument, use_issuer_rating: bool = True
) -> float

Get the risk weight.

StandardisedApproach

Bases: RWAApproach

The standardised approach for calculating credit RWA.

Methods:

  • compute_rwa

    Compute the Risk-Weighted Assets (RWA) for a given bank and scenario.

compute_rwa

compute_rwa(
    bank: Bank,
    date: date,
    scenario_manager: ScenarioManager,
    verbose: bool = False,
) -> float

Compute the Risk-Weighted Assets (RWA) for a given bank and scenario.