core_positions_calc.ZIRCategoryused in v_IRRBB_U/v_IRRBB_K.
Categories:
I: Positions with determined repricing maturities
II: Positions with undetermined repricing maturities
III: Positions with no repricing maturities
IV: Own funds
V: Non-linear derivatives
2. Repricing cash flow generation
Definition (EBA, 2021): Notional repricing cash flows refers to interest payments or principal amounts of fixed rate instruments that mature or principal amounts of floating rate instruments that reprice
Each repricing cash flow is generated in the views v_IRRBB_U/v_IRRBB_K which can be of 3 different types (v_IRRBB_U.RCFType):
InterestPayment
PrincipalPayment
PrincipalRepricing
PrincipalReplicationKey → generated with replication key
PrincipalReplicationKeyDefault → generated with default replication key
The scope of positions for which repricing cash flow have to be considered, which will in turn enter the views v_IRRBB_U/v_IRRBB_K are those which carry a floating or fixed interest rate, i.e. those were core_posiitons.IRTypeOf in ('Fixed','Floating').
Remarks:
Simplification: in this version, among derivatives, only the interest rate swaps (IRS) are taken into account.
A zero coupon bond should still be delivered with an IRTypeOf, even if the the IR payment is 0%.
2.1 Slotting
Scope: RCFType in ('PrincipalPayment','PrincipalRepricing')
The slotting is the division of a position into the repricing cash flows PrincipalPayment or PrincipalRepricing, and the assignement of their repricing slots/bucket.
Simplification: In this first version amortizations are ignored.
2.1.1 Slotting of fixed rate positions
Scope: core_positions.IRTypeOf = 'Fixed'
Whole principal (core_positions.BookAmount) assigned to the maturity of the position (core_positions.MaturityDate) → RCFType = 'PrincipalPayment'.
2.1.2 Slotting of floating rate position with IR fixing date
Scope: core_positions.IRTypeOf = 'Floating' and core_positions.IRNextFixingDate > core_load_collections.ReportingDate
Whole principal (core_positions.BookAmount) assigned to the next IR fixing date (core_positions.IRNextFixingDate) → RCFType = PrincipalRepricing.
2.1.3 Slotting of floating rate position without IR fixing date
Scope: core_positions.IRTypeOf = 'Floating' and core_positions.IRNextFixingDate < core_load_collections.ReportingDate
The scope corresponds to the ZIR category 2 (v_IRRBB_U/K.ZIRCategory = 2) → typically includes banks and clients checking account.
See SPR31.103.
This distribution is done with replication keys which generate principal repricing and their corresponding repricing date.
Category 2 subcategories and their replication keys → repricing date = time bucket midpoint:
Due from banks
100% → 0 - 1 M
Due from customers (on sight)
70% → 0 - 1 M
30% → 9 - 12 M
Due from customers (on call and cancellable)
25% → 9 - 12 M
50% → 18 - 24 M
25% → 2 - 3 Y
Floating rate mortgage loans
25% → 9 - 12 M
50% → 18 - 24 M
25% → 4 - 5 Y
Other exposures
100% → 0 - 1 M
Current accounts
100% → 0 - 1 M
Due to banks
100% → 0 - 1 M
Due to customers
70% → 0 - 1 M
30% → 9 - 12 M
Other liabilities
100% → 0 - 1 M
Default replication key (if the position does not fit in any of the categories above):
100% → 0 - 1 M
Replication keys can be parametrized by the bank if necessary in the config file irrbbReplicationKeys.csv
2.1.4 Slotting of derivatives
As interest rate derivatives need information from various tables, the most important ones are gathered in the view v_derivatives_ir (vds). For simplicity purpose, references will be made to fields of this view when it comes to derivatives in the IRBB.
v_derivatives_ir distinguishes the information related to the receivable and payable legs by prefixing the fields of the view with R or P.
Scope: vds.TypeOf in ('IRS','CCS')
Interest rate swaps (IRS) and cross currency swaps (CCS) which pays two stream of cash flows are treated as two positions, one long, one short.
Each leg can either pay a fixed rate or a floating rate, although the common type of IRS is fix vs floating.
The fixed leg of an IRS/CCS is treated as a fixed rate position (see section 2.1.1): the whole notional (vds.R/PNotional) is assigned to the maturity of the position (vds.MaturityDate) → RCFType = 'PrincipalPayment'.
The floating leg of an IRS is treated as a floating rate position with IR fixing date (see section 2.1.2): the whole notional (core_positions.Notional) is assigned to the next IR fixing date (vds.P/RNextFixingDate) → RCFType = PrincipalRepricing.
The following fields of core_positions are relevant for the calculation of the interest payments of on-balance sheet positions:
IRPaymentFrequency
IRNextPaymentDate
MaturityDate
IRNextFixingDate
3.1 Interest payment of derivatives
As for slotting interest payments are treated separately for each leg of the derivatives.
Case 1: IRPaymentFrequency and IRNextPaymentDate provided
In a perfect world the algorithm to generate the IR payment is the following:
The next IR payment is generated at the next IR payment date (core_positions.IRNextPaymentDate or vds.R/PNextPaymentDate).
The following IR payment are generated by adding the IR payment period (based on the IR payment frequency (core_positions.IRPaymentFrequency or vds.R/PPaymentFrequency)) to the next IR payment date as long as 1) the maturity date is not exceeded for fixed interest rate instruments (core_posiitons.IRTypeOf = 'Fixed' or vds.R/PIRType = 'Fixed') or 2) the IR next fixing date for floating interest rate instruments is not exceeded (core_posiitons.IRTypeOf = 'Floating' or vds.R/PIRType = 'Floating').
Remark: It is assumed that for floating interest rate instruments, the interest rate risk is limited to the next cash flows until refixing. Consequently, only the IR payments until that date are considered in this case (SPR31.103).
If the last IR payment does not fall on the maturity date, a last interest payment is computed on the maturity date, based on the duration between the penultimate IR payment and maturity date of the contract.
Remark: For floating interest rates, no IR is computed on the IR next fixing date. This would be equivalent to computing an accrual interest rate, which is irrelevant in this context.
With contradictory information: In a less perfect world where the IRPaymentFrequency and IRNextPaymentDate are in contradiction, the IRPaymentFrequency prevails. For instance if the interest payment frequency is 1 month, and the next interest payment is in 2 month. In this case, IR payments are generated backward from the IRNextPaymentDate:
IR payments between the IRNextPaymentDate and the reporting date are generated by substracting the IR period (based on the IR payment frequency) from the IRNextPaymentDate, as long as the reporting date is not exceeded.
For what happens after the IR next payment date provided in input and the maturity date or the IR next fixing date, follow the algorithm of case 1.
Case 2: IRPaymentFrequency provided, but not IRNextPaymentDate
IR payments are generated backwards from the maturity date for fixed interest rate instruments (core_posiitons.IRTypeOf = 'Fixed' or vds.R/PIRType = 'Fixed')or the IR next fixing date for floating interest rate instruments (core_posiitons.IRTypeOf = 'Floating' or vds.R/PIRType = 'Floating'):
Set the last IR payment at maturity or IR next fixing date.
IR payments generated backward until the reporting date.
Case 3: IRPaymentFrequency not provided, but IRNextPaymentDate is
We set a default IR payment frequency at 1 year which leads to the following algorithm:
First cash flow takes place at the IR next payment date provided.
The subsequent IR payment takes place every year after the IR next payment date until the maturity date or IR next fixing date.
Case 4: IRPaymentFrequency and IRNextPaymentDate not provided
We set a default IR payment frequency at 1 year and generate IR payments backwards from the maturity date or IR next fixing date.
Remarks
Positions delivered with a negative BookAmount will be treated as follow:
Category 1: only the notional is considered, and the cash flow treated as PrincipalPayment or PrincipalRepricing depending if the interest rate carried by the position is fixed or floating, respectively. Interest payments are not generated.
Category 2: the slotting is performed as regular category 2 positions using replication keys.
Param for currencies to report
Parameters
IRRBB_K_LIST_CURRENCIES & IRRBB_U_LIST_CURRENCIES
Legal ref. Finma Notes Le formulaire d’enquête comprend une liste énumérant 22 monnaies, y compris la position collective «Autres monnaies». Si la part des actifs u des passifs de l’une de ces monnaies représente 10% ou plus de la somme du bilan, un formulaire ZIR1 doit être rempli pour chacune de ces monnaies
IRRBB_TB
Set to 1 to include trading book positions.
Risk Indicators
Net interest income (NII)
The net interest income is a financial performance measure that reflects the difference between the revenue generated from a bank's interest-bearing assets and the expenses associated with paying on its interest-bearing liabilities (source)
The ΔNII (change in NII) is measured by assessing the impact of interest rate shocks over a one year period, with a constant balance sheet view. For this reason, only the positions with a repricing date within one year are considered: those are the ones that would be impacted by changes in interest rates, if rolled over.
The calculation implies computing the net shock (impact on assets - liabilities) from the repricing date of the RCF until the one year after the reporting date (since it is assumed positions are rolled over because of the constant balance sheet).
Base scenario
The base scenario intends to reflect the net interest income generated by the maturing position if reinvested, from its maturity until a one year horizon, with no shock applied.
The reinvestment rate of a position is estimated using the forward rate applicable between its maturity and its rolled-over maturity plus the spread carried by the position.
Spread: if not delivered, it is estimated as the difference between the interest rate carried by the position and the interest rate applicable for the original maturity of the position using today's interest rate curve:
core_positions.InterestRate - roriginal duration
Forward rate:
The forward rate r12 between the maturity of the position T1 and it's rolled-over maturity T2 is today's best approximation of what will be the interest rate applicable at T1 when rolling over the position for an equivalent duration.
Reminder → the followings are equivalent (where T is expressed as a number of years, and r as an annual interest rate):
T1 = time to maturity in years of the position (T1)
r1 = rate implied by the interest rate curve until the maturity of the position
T2 = time to maturity in years of the rolled over position, i.e. T1+original duration
Note that if T1+original duration<1 year, then T2=T1+1
This treatment which sets the minimal original duration at one year approximates the rollover of the transaction as many times as necessary to exceed the one year horizon.
r2 = rate implied by the interest rate curve until the maturity of the rolled over position (T2)
r12 = forward rate between the maturity of the position (T1) and its rolled over maturity (T2)
NII:
It is made of the expected net interest income perceived during a one year horizon, both effective and accrued. It is therefore composed of (1) the paid interest of the position at expiration and (2) the accrued interest of the rolled over position between its maturity (T1) and the end of the one year time horizon.
The parallel shifts of the yield curve of the scenarios 1 and 2 impact the calculation of the forward rate calculation, by shifting r1 and r2 by the amount of the shock. Compared to the base scenario, the NII is impacted only by this change of forward rate, all other variable staying constant.
Complementary information for category 1 positions with floating rates
The maturity date and corresponding time to maturity (T1) are defined by the maturity of the repricing cash flow as defined above
Original duration (which enters the calculation of T2 = the time to maturity of the rolled over position):
Option 1: Set to one year by default.
Option 2:The original duration which enters the calculation of T2 (the time to maturity of the rolled over position) is defined by the interest rate refixing frequency core_positions.IRReFixingFrequency.
Remark: the condition if T1+original duration<1 year, then T2=T1+1 still applies.
Complementary information for category 2 positions
The maturity date and corresponding time to maturity (T1) are defined by the middle of the time bucket to which the repricing cash flow is assigned.
Original duration:
Option 1: Set to one year by default.
Option 2: The original duration is defined by the interest rate refixing frequency core_positions.IRReFixingFrequency. It means that all the repricing cash flows generated by a given position and its replication keys (not matter the time bucket) will have the same original duration, which is equal to the interest rate refixing frequency.
Remark: the condition if T1+original duration<1 year, then T2=T1+1 still applies.
Economic value of equity (EVE)
The economic value of equity (EVE) is a cash flow calculation that takes the present value of all asset cash flows and subtracts the present value of all liability cash flows. (source)
The ΔEVE is computed as the impact of interest rate shocks on the EVE, through the discount factor.
Reminder about present value: Present value (PV) is the current value of a future sum of money or stream of cash flows given a specified rate of return. Present value takes the future value and applies a discount rate or the interest rate that could be earned if invested. (source)
Present value of cash flow=Discount factorFuture value of cash flow=(1+i)TFuture value of cash flow, where:
i = interest rate
T = time in years
Calculation:
Compute the discount rate rate of the RCF before applying shocks. Interest rates for a given currency are provided for some tenors, and the RCF maturity will usually fall between this tenors. In order to compute the appropriate discount rate, the appropriate interest rate must be interpolated based on the interest rate of the previous and next tenor (linear interpolation to start with). With the interpolated (discount) interest rate, the discount factor and the present value of the position can be computed.
Fields
v_IRRBB_U/K.InterpolatedDiscountIR
v_IRRBB_U/K.DiscountFactor
v_IRRBB_U/K.DiscountedRCF
Apply the shocks of the corresponding maturity bucket to the interpolated interest rates for each scenario to obtain successively the shocked interpolated discount rate, the shocked discount factor and shocked discounted RCF:
v_IRRBB_U/K.ShockedXInterpolatedDiscountIR
v_IRRBB_U/K.ShockedXDiscountFactor
v_IRRBB_U/K.ShockedXDiscountedRCF
ZIR2_B
Pas prendre en compte payment d'intérêt
Moyenne des RCFDuration days
Input fields
internal_indicator/scenarios
The shock applied to the positions for the calculation of the EVE (l.22-25 ZIR2_A).
One line per Finma scenarios possibility for the user to add their own scenarios.
One column to flag the scenario that should be used for the internal indicator.
core_positions
InterestRate
IRTypeOf
IRNextFixingDate
IRRefixingFrequency
IRNextPaymentDate
IRPaymentFrequency
list_interest_rate_curves
Category
ReportingDate
Currency
Tenor
InterestRate
param_IRRBB_shocks → is param_ the good prefix?
Currency
TimeBand
Output views/tables
v_IRRBB_U/K
lcId
Id
rcfNum
LegalAccountNumber
Currency
IRBBCurrency
Value can be 'U'
AccountGroupLevel1
PositionType
PositionSubType
SecurityType
SecuritySubType
CommodityType
ReportingDate
StartDate
MaturityType
IRType
Subordination
RCFType → Repricing cash flow type
legal ref.: SRP31.98
MainRCFlag → Interest rate main cash flow flag
Legal ref.: Finma Notes Les actifs dont le volume nominal représente moins de 1% des opérations au bilan ainsi que les passifs et opérations hors-bilan dont le volume nominal représente moins de 1% de la somme des opérations au bilan et hors-bilan ne sont pas considérés comme principaux dans les cas où ils devraient être rapportés uniquement dans les échéances allant jusqu'à 12 mois