Table of Contents

Interest Calculation

The module IRTCAL provides a functionality that allows to calculate interests of amounts in different ways.

The variants are:

The interest calculation is used for time-dependent fees, i.e. in 'calculation rules', 'interest calculation' and 'CBS-based“ defined in DBIFEC. Thus, in DBIFEC an interest rate (IRT) has to be defined for these calculation methods, as well

The calculation is done according to the following procedure:

A complete settlement period is subdivided into several individual periods, so that all relevant values (reference amount, interest rate, margin) are the same in this individual period. From this follows, that - depending on the calculation method - different 'events' can lead to beginn a new individual period:

The calculation is done in a way, so that

Calculation of Periods

Table IRTMCC describes methods, how a given period (start and end date) should be interpreted for calculation purposes. That comprises

Interval How start and end date are to be interpreted i.e. whether start or end date or both are to be included
Adaptation How start or end date have to be adapted e.g. that the last day for which interest is to be calculated is the first working day following the end day
Unit Calculation How to determine the number of units (i.e. typically days) for a period

The following IRTMCC methods are currently implemented in the MyModelbank:

Code Interval Adaptation Unit Calculation
CAL Start and end date are both included No adaptation Number of calendar days
M30 Days, all months with 30 days No adaptation Number of calendar days

The unit calculation for IRTMCC codes is implemented into function IRTMCCCAL of module IRTCAL. The interval and adaptation calculation are implemented into function IRTPERCAL.

Calculation of Interest for Fixed Interest and Amount

The table IRTMIC describes how for a given number of units (e.g. days), a given amount, and interest rate, the interest amount is calculated.

Methods for IRTMCC codes are implemented in module IRTCAL, function IRTMICCAL, including a fixed interest rate calculation with rates in percent, per thousand or base points, as well as different numbers of days per year or discount rate calculation. Details can be found in the function IRTMICCAL.

Missing methods are implemented on demand.

Period Methods

Period methods define, for which periods settlements are to be created, if not the complete period is settled always. Furthermore, there are calculation methods, in which the interest is not calculated on a daily basis, but, for example, per started quarter.

The calculation of the settlement periods is done in “GetNextPeriod”, the supported settlement periods are defined in the embedded codetable of IRTCAL:PERMET. Both definitions can be adapted by the supporter. The codes of the methods are structured in a 4-digit code (that is processed by “GetNextPeriod”) and an optional 2-digit numeric value for grace days.

The following codes are supported in the MyModelbank:

Code Description Comment
CALM Calendar Months 31.1. - 2.2. are two months
CALQ Calendar Quarters
DURM Time Months 31.1.-25.02. is one month
DURQ Time Quarters If the day does not exist, the next day has to be taken (e.g. 31.08.04 → 01.12.04)
DURH At mid-year
DURY Years If the day does not exist, the next day has to be taken (e.g. 29.02.04 → 01.03.05)
DUPQ Time Quarters If the day does not exist, the previous day has to be taken (e.g. 31.08.04 → 30.11.04)

Details about the calculation can be found in “GetNextPeriod”. If there are further methods required in the project, they can be defined there. The actually used period types are specified in the embedded codetable IRTCAL:PERMET (for the installation as well).

Reference to a CBS Column

The reference to a CBS column specifies a named amount for an object which typically varies over the time.

For a given object (e.g. an LID record) together with an external ID and a specified date this defines an amount value valid for this object at the end of the specified day (possibly zero)

For a given object (e.g. an LID record) together with an external ID and a date range this defines a sequence of periods so that during each period the referenced amount (e.g. liability balance) for this object has a fixed amount value.

Reference Rate

A reference rate specifies a named rate with a value that typically varies over the time. Reference rates typically refer to either official rates (e.g. central banks discount rate) or published rates (e.g. 6 month LIBOR). A specific rate is always valid for a specific currency which is used as second part of its key in table IRT.

The actual values for reference rates are entered whenever they change and are always valid for a period of time (which might be a single day).

The reference rate with an additional spread is used to calculate interest amounts.

Typically used IRTMIC and IRTMCC codes used for calculation together with a reference rates are stored in the IRT record. These codes can be overwritten by conditions in the FEE table (further extension)

Example: Interest Calculation for Floating Amounts and Rates

Interest for floating amounts (specified by the reference to a CBS column, external ID and object reference) basing on a reference rate (specified by rate code, currency and spread) for a given period is calculated in function IRTPERCAL of module IRTCAL as follows.

The whole period is adapted according to IRTMCC.

The whole period is split into sub-periods during which neither reference amount nor rate change.

The length of each sub-period is calculated using IRTMCCAL.

The interest amount for each sub-period is calculated using IRTMICCAL.

For every sub-period the period, relevant amount, rate, rate plus spread and resulting interest amount are stored in module list IRTCAL\IRDELE for further reference.

For the purpose of precision, the sub-periods are always closed intervals (i.e. including start and end date). Any necessary adaptation for interval and unit calculation is done in IRTPERCAL and IRTMCCCAL.