Skip to main content

ia_aggr_mat_2

1. Description

The IA_aggr_mat_2 program takes bank account data and turns it into maturity reports.

It reads account balances, interest details, cashflows, currencies, and business rules. It then groups similar accounts together and produces files that show the total principal, interest rate, and spread for different maturity periods.

In simple terms: it converts detailed account data into ready-to-use maturity and repricing reports.

2. Program location

<installation_path>/ia_aggr_mat_2

3. Screen Configuration

3.1 File configuration

Here, enter the base input file path and additional inputs required for the setup.

balm_aggr_cons_pa_image

3.1.1 Additional Input selection 🔗
#FileTypeDescriptionRequiredDefault valueExample
1Exchange_RateFile_pathContains currency conversion rates used to convert foreign currency accounts into localtrueN/A{M_IN002} (this placeholder will get replaced by the actual file path like test-bed/M_IN002.json) Note: We can directly provide the actual file path here.
2Excel FileFile_pathContains benchmark interest rates used for spread calculations.trueN/APlaceholder will automatically get replaced by the actual file path like test-bed/example.xlsx
3Tenor FileFile_pathReference table used to derive account contract duration (tenor) from account dates.trueN/Aplaceholder will be replaced automatically by the actual file path of the tenor file like IA_LLG_TENOR.txt
4Rule SelectionFile_pathPath to the rule file used for aggregation. Provide a rule-file path, not a numeric rule_id.trueN/A{M_IN004}; the placeholder is replaced with the rule file path, for example test-bed/IA_RULES.txt. You can also provide the file path directly.

3.2 Required Field Mapping

balm_aggr_cons_pa_image

#FileTypeDescriptionRequiredDefault valueExample
1curr_codeStringCurrency code of the accounttrueN/A"KES" , "USD"
2next_repr_dateDateTimestamp of when the interest rate will resettrueN/A30-06-2024
3req_freqNumber of monthsFrequency of interest rate resettrueN/A1 , 12
4intt_rateInterest rate (%)Effective Interest rate applied to account balancetrueN/A7.5 , 12
5cashflowsListList of scheduled principal & interest payment eventstrueN/Aprincipal amount , interest , date
6mat_dateMaturity dateFinal contract maturity date of the accounttrueN/A30-06-2024
7ac_open_dateDateThe date when the account was activatedtrueN/A30-06-2024
8bm_idIDBenchmark interest rate identifier, used for benchmark spread calculationtrueN/AFIXED
9npa_flagStringNon-performing asset classification statustrueN/A"STD"
10last_repr_dateDateDate when interest rate was last resettrueN/A30-06-2024
11spreadNumberMargin percentage added or reduced from benchmark ratefalse0.01.5 , 0.0

3.3 Process Arguments

balm_aggr_cons_pa_image

#ParametersDescriptionRequiredDefault valueExample
1src_local_ccySource Local currency.🔗trueN/AINR
2display_local_ccyDisplay Local Currency.🔗trueN/ARUP
3consol_ccyConsolidated Currency.🔗trueN/AINR
4foreign_local_ccyForeign Local Currencyfalse""USD
5default_llg_codeIf no rules are satisfied , then this llg code will be usedtrueN/A08888
6default_overdue_llg_codedefault value of overdue llg codefalse999908888
7default_tenor_codeRepresents the contract length / duration bucket (in days, months, or years) for an account.false00888
8npa_flag_valuesNPA values separated by commas. If any of these values is found in the provided NPA field (from the required field mapping), then the interest rate is treated as 0 and the next repricing date is treated as none for that account.trueN/AA123 , B123
9log_levelLog level to log the required logs from the programfalseinfoerror/warn/info/debug/trace/none
10diagnostic_flagDiagnostic Flag is to get info if diagnostic logs are required or notfalsefalseTrue/False
11is_account_level_exchange_rateThe flag that decides whether the account level exchange rate is provided in the input file or not. If provided, then we use exchange rate for conversion.falsefalseTrue/False
12is_consolidatedIs consolidated flag is used to define the currency type of given amount in input field. If is_consolidated flag is set, then the amount given is of consolidated type else it is in the curr input type.🔗falsefalseTrue/False
13process_config (Auto generated)Path to process configuration JSON filetrueN/Atest-bed/json/M_PC3189.json
14as_on_date(Auto generated)As on DatetrueN/A31-03-2023
15log_file(Auto generated)Path for main log outputtrueN/Atest-bed/logs/log.txt
16diagnostics_log_file(Auto generated)Path for diagnostic log outputtrueN/Atest-bed/logs/diag-log.txt
17is_amt_abs(Auto generated)Flag to compute absolute amounts during cashflow aggregationfalsefalsetrue/false

Click ⬇️ to download the sample data.

4. Output

The program generates one summary file and fifteen detailed files. All output files are pipe-delimited text files.

For an output base name such as IA_td_1, the files are:

Output fileNumber of filesDescription
IA_td_1_smry.txt1Summary of each aggregated account group.
IA_td_1_principal_amt_1.txt to IA_td_1_principal_amt_5.txt5Aggregated principal amount for each maturity period.
IA_td_1_rate_1.txt to IA_td_1_rate_5.txt5Aggregated interest rate for each maturity period.
IA_td_1_spread_rate_1.txt to IA_td_1_spread_rate_5.txt5Aggregated spread rate for each maturity period.

4.1 Summary output format (File 1)

#FieldField NameDescriptionExample
1as_on_dateAs On DateReport processing / calculation date (DD-MM-YYYY).31-03-2023
2llg_idLLG IDLine Level Grouping ID assigned by business rules. 🔗8888
3currencyCurrencyCurrency code of the aggregated account group.KES
4exchange_rateExchange RateExchange rate applied for currency conversion.1.0
5benchmark_idBenchmark IDLinked benchmark rate identifier (or FIXED).FIXED
6tenorTenorDerived contract duration / tenor code.0
7spreadSpreadWeighted average interest rate spread for the group.0.0
8next_repricing_dateNext Repricing DateNext interest rate reset/repricing date (DD-MM-YYYY).30-06-2023
9repricing_frequencyRepricing FrequencyReset frequency in months (1, 3, 6, 12, or14 for fixed).1
10outstanding_amountOutstanding AmountTotal aggregated outstanding principal balance.3000.00
11weighted_interest_rateWeighted Interest RateAmount-weighted average interest rate (%) for the group.8.50

4.2 Aggregated Principal Amount Files (Files 2 to 6)

#FieldField NameDescriptionExample
1as_on_dateAs On DateReport processing / calculation date (DD-MM-YYYY).31-03-2023
2llg_idLLG IDLine Level Grouping ID. 🔗8888
3currencyCurrencyCurrency code of the account group.KES
4exchange_rateExchange RateExchange rate applied.1.0
5benchmark_idBenchmark IDBenchmark rate identifier.FIXED
6tenorTenorAccount tenor code.0
7next_repricing_dateNext Repricing DateNext repricing date (DD-MM-YYYY).30-06-2023
8repricing_frequencyRepricing FrequencyRepricing frequency code (e.g. 1 = Monthly).1
9valueValueAggregated principal cashflow amount maturing in Bucket N.1500.00

4.3 Aggregated Interest rate Files (Files 7 to 11)

#FieldField NameDescriptionExample
1as_on_dateAs On DateReport processing date (DD-MM-YYYY).31-03-2023
2llg_idLLG IDLine Level Grouping ID. 🔗8888
3currencyCurrencyCurrency code of the account group.KES
4exchange_rateExchange RateExchange rate applied.1.0
5benchmark_idBenchmark IDBenchmark rate identifier.FIXED
6tenorTenorAccount tenor code.0
7next_repricing_dateNext Repricing DateNext repricing date (DD-MM-YYYY).30-06-2023
8repricing_frequencyRepricing FrequencyRepricing frequency code.1
9valueValueAmount-weighted interest rate (%) for Bucket $N$.8.50

4.4 Aggregated Spread Rate Files (Files 12 to 16)

#FieldField NameDescriptionExample
1as_on_dateAs On DateReport processing date (DD-MM-YYYY).31-03-2023
2llg_idLLG IDLine Level Grouping ID. 🔗8888
3currencyCurrencyCurrency code of the account group.KES
4exchange_rateExchange RateExchange rate applied.1.0
5benchmark_idBenchmark IDBenchmark rate identifier.FIXED
6tenorTenorAccount tenor code.0
7next_repricing_dateNext Repricing DateNext repricing date (DD-MM-YYYY).30-06-2023
8repricing_frequencyRepricing FrequencyRepricing frequency code.1
9valueValueAmount-weighted interest spread rate for Bucket $N$.1.25

5. Notes

  • All paths mentioned in the process configuration and metadata files must be available before the run starts.
  • The account metadata must match the account data file; otherwise, the program cannot read the data correctly.
  • The exchange-rate file must contain a rate for every currency that needs to be converted.
  • Existing output files with the same name are replaced during a new run.
  • The log file should be checked first if a run fails or produces unexpected output.
  • No separate health-check report is generated by this program.