Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Many Banks and Financial Institutions use lending rates that are linked to the Base Lending Rates defined by the Central Bank of the country. Home Loans and other longer term loans are usually given out by banks/financial institutions at floating interest rates - where the interest rate applicable for the loan is linked to the interest rate set by the Central Bank and is periodically revised by the Central Bank. The interest rate applicable for the loan, can change during the tenure of the loan. The loan may start off as a 10% loan and may get revised to 10.5% after a period of time and can even be revised downwards (for example: 9.5%) depending on guidelines issued by the Central Bank from time-to-time.
Background and strategic fit
...
Question | Outcome |
---|---|
Should Base Lending Rate and Floating Interest Rate be provided for the same period? For example: if Base Lending Rate is given as yearly rate, can Floating Interest Rate be provided as a monthly rate? Will there be any conflicts during calculations? | |
Is it ok to keep the floating interest linked to the disbursal date (and not link it to the loan application submission date and loan approval date)? | Yes, Should be linked to disbursal date (DBH) |
Should floating interest rate be application for products that do not support Interest Recalculation? If yes, need to get list of exact scenarios to be supported. | |
Once a loan account starts using a floating interest rate and repayments are already made, then it is planned to not allow any modification prior to the repayment date for Base Lending Rate and loan product level Floating Interest Rate. Is this ok? | yes, the only time it would be feasible to make a modification prior to repayment date is in the case of error correction. this would then be done thru journal entries. (DBH) |
Out of Scope
TBD
Detail Design for Implementation
Defining Floating Interest Rates
...
- Interest Rate periods can be added/updated/modified only with a future start date
- Only one Base Lending Rate type of scheme at any given time
- Differential to Base Lending Rate type cannot be created without Base Lending Rate already defined
- interestRatePeriodEnum attribute for Differential to Base Lending Rate type will be same as Base Lending Rate
- Base Lending Rate cannot be inactivated when there is any Differential to Base Lending Rate type active
Defining a Loan Product
API
Following additional attributes will be added to /mifosng-provider/api/v1/loanproducts list/add/update APIs
Sl | Attribute | Type | Definition |
1 | isLinkedToFloatingInterestRates | boolean | Identifies a loan product is linked to floating rates |
2 | floatingRateId | long | Floating rates scheme to be followed |
3 | interestRateDifferential | decimal | Differential on top of rate as derived by Floating rate scheme Basically "Loan Product Base Rate" is derived based on this differential |
4 | minDifferentialLendingRate | decimal | Min differential w.r.t "Loan Product Base Rate" while providing loans |
5 | defaultDifferentialLendingRate | decimal | Default differential w.r.t "Loan Product Base Rate" while providing loans |
6 | maxDifferentialLendingRate | decimal | Default differential w.r.t "Loan Product Base Rate" while providing loans |
7 | isFloatingInterestRateCalculationAllowed | boolean | If true, loan can be given with floating interest calculations If false, interest rate for the loan is fixed as per the rate derived as on loan application date |
UI
Loan product create/edit screens will have following additional fields
- A checkbox "Is Linked To Floating Interest Rates" under section "Terms"
- If unchecked, existing "Nominal interest rate" attributes would be visible and captured
- If checked, attributes 2-6 defined above will become visible and be captured
- A checkbox "Is Floating Interest Rate Calculation Allowed" under section "Interest Recalculation"
- Only allowed to check if Interest Method is Declining Balance
Defining Loan
API
Following additional attributes will be added to /mifosng-provider/api/v1/loans view/create/edit APIs
Attribute | Type | Description | Restrictions |
---|---|---|---|
interestRateDifferential | decimal | Interest Rate differential applicable to loan application w.r.t "Loan Product Base Rate" | Should be within min/max rage as defined in loan product |
isFloatingInterestRate | boolean | Is floating interest rate calculation applied for the loan? If false, flat interest rate as applicable on loan application date If true, interest rate as applicable from period to period | Only allowed if isFloatingInterestRateCalculationAllowed is true at loan product definition |
UI
Loan create/edit screens will have following attributes
- "Nominal interest rate" field will be replace with "Interest Rate Differential" field in case loan product is linked to Floating Interest Rates
- A checkbox "Is Floating Interest Rate Loan" will be added in case loan product is linked to Floating Interest Rates and isFloatingInterestRateCalculationAllowed is allowed for the loan product
...
DB changes
Following new tables would be added
m_floating_rates | ||
field_name | field_type | Contraints |
id | long | not null auto increment |
name | varchar[200] | not null |
is_base_lending_rate | bit | not null default false |
is_active | bit | not null default true |
created by | bigint | not null |
created date | datetime | not null |
modified by | bigint | not null |
modified date | datetime | not null |
m_floating_rates_periods | ||
id | long | not null auto increment |
floating_rates_id | long | not null |
from_date | datetime | not null |
interest_rate | decimal | not null |
interest_rate_period_enum | smallint | not null |
is_differential_to_base_lending_rate | bit | not null default false |
is_active | bit | not null default true |
created by | bigint | not null |
created date | datetime | not null |
modified by | bigint | not null |
modified date | datetime | not null |
Defining a Loan Product
API
Following additional attributes will be added to /mifosng-provider/api/v1/loanproducts list/add/update APIs
Sl | Attribute | Type | Definition |
1 | isLinkedToFloatingInterestRates | boolean | Identifies a loan product is linked to floating rates |
2 | floatingRateId | long | Floating rates scheme to be followed |
3 | interestRateDifferential | decimal | Differential on top of rate as derived by Floating rate scheme Basically "Loan Product Base Rate" is derived based on this differential |
4 | minDifferentialLendingRate | decimal | Min differential w.r.t "Loan Product Base Rate" while providing loans |
5 | defaultDifferentialLendingRate | decimal | Default differential w.r.t "Loan Product Base Rate" while providing loans |
6 | maxDifferentialLendingRate | decimal | Default differential w.r.t "Loan Product Base Rate" while providing loans |
7 | isFloatingInterestRateCalculationAllowed | boolean | If true, loan can be given with floating interest calculations If false, interest rate for the loan is fixed as per the rate derived as on loan application date |
UI
Loan product create/edit screens will have following additional fields
- A checkbox "Is Linked To Floating Interest Rates" under section "Terms"
- If unchecked, existing "Nominal interest rate" attributes would be visible and captured
- If checked, attributes 2-6 defined above will become visible and be captured
- A checkbox "Is Floating Interest Rate Calculation Allowed" under section "Interest Recalculation"
- Only allowed to check if Interest Method is Declining Balance
DB Changes
New table will be added
m_product_loan_floating_rates | ||
id | long | not null auto increment |
loan_product_id | long | not null |
is_linked_to_floating_interest_rates | bit | not null default false |
base_lending_rates_id | long | not null |
interest_rate_differential | decimal | not null default 0 |
is_floating_interest_rate_calculation_allowed | bit | not null default false |
min_differential_lending_rate | decimal | not null default 0 |
default_differential_lending_rate | decimal | not null default 0 |
max_differential_lending_rate | decimal | not null default 0 |
Defining Loan
API
Following additional attributes will be added to /mifosng-provider/api/v1/loans view/create/edit APIs
Attribute | Type | Description | Restrictions |
---|---|---|---|
interestRateDifferential | decimal | Interest Rate differential applicable to loan application w.r.t "Loan Product Base Rate" | Should be within min/max rage as defined in loan product |
isFloatingInterestRate | boolean | Is floating interest rate calculation applied for the loan? If false, flat interest rate as applicable on loan application date If true, interest rate as applicable from period to period | Only allowed if isFloatingInterestRateCalculationAllowed is true at loan product definition |
UI
Loan create/edit screens will have following attributes
- "Nominal interest rate" field will be replace with "Interest Rate Differential" field in case loan product is linked to Floating Interest Rates
- A checkbox "Is Floating Interest Rate Loan" will be added in case loan product is linked to Floating Interest Rates and isFloatingInterestRateCalculationAllowed is allowed for the loan product
DB Changes
Following fields added to m_loan
m_loan | ||
is_floating_interest_rate | bit | not null default false |
interest_rate_differential | decimal | nullable |
Example Illustration
Below table illustrates what will be the applicable interest rates for any given date period.
Loan Product Differential Rate
| Loan Application Differential Rate
| Date | Base Lending Rate in % (Rates defined as part of "Base Lending Rate type")
| Floating Interest Rate (Loan product Linked to "Base Lending Rate") | Differential to Base Lending Rate % (Rates defined as part of "Differential to Base Lending Rate type")
| Floating Interest Rate (Loan product Linked to "Differential to Base Lending Rate type")
|
2 | 1 | 01-10-2010 | 8 | 11 | 2 | 13 |
10-10-2010 | ||||||
16-10-2010 | 9 | 12 | ||||
31-10-2010 | 7 | 10 | 1 | 11 | ||
10-11-2010 | 2 | 12 | ||||
15-11-2010 | 6 | 9 | ||||
30-11-2010 | 8 | 11 |