Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page Properties
Target release
Epic
Document status
Status
titleDRAFT
Document ownerBinny Gopinath Sreevas
Designer
Developers
QA

...

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

...

QuestionOutcome

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

Defining Floating Interest Rates

API

New APIs would be exposed thru which Floating Interest Rate schemes can be created/updated/deleted(inactivate).

METHODURLPurpose
GET/mifosng-provider/api/v1/floatingratesList floating interest rates
POST/mifosng-provider/api/v1/floatingratesCreate new floating interest rate
GET/mifosng-provider/api/v1/floatingrates/{floatingrateid}Get details of specific floating interest rate
PUT/mifosng-provider/api/v1/floatingrates/{floatingrateid}Edit specific floating interest rate

JSON Data exchange format:

{                                
        floatingRates: [
                {
                        floatingRate: {
                                id:        [long],
                                name:        [string],
                                isBaseLendingRate:        [boolean],
                                isActive: [boolean],
                                ratePeriods:[
                                        {
                                                ratePeriod: {
                                                        id: [long],
                                                        fromDate: [date],
                                                        interestRate: [decimal],
                                                        interestRatePeriodEnum: [smallint],
                                                        isDifferentialToBaseLendingRate: [boolean],
                                                        isActive: [boolean]
                                                }
                                        }
                                ]
                        }
                }
        ]
}

Types of Floating Rates

Any number of floating rate schemes can be created. But they would fall under the one of the 3 types explained below

Base Lending Rate
  • This is a unique floating rate scheme identified by isBaseLendingRate attribute
  • There can be only one Base Lending Rate for an organisation at any given time
  • Will have its own period and interest definition
Differential to Base Lending Rate
  • Floating rate dependent on Base Lending Rate
  • Can define its own Floating rate periods (independent of Base Lending Rate)
  • Interest rate specified is differential of Base Lending Rate as of start date of the given period (attribute ratePeriod.isDifferentialToBaseLendingRate will be true)
  • Cannot exist without a Base Lending Rate already defined
Independent Floating Lending Rate
  • Floating interest rate scheme with own rate and period
  • Not dependent on Base Lending Rate
  • floatingRate.isBaseLendingRate and ratePeriod.isDifferentialToBaseLendingRate attributes will be false

UI Screens

  • New Button under "Admin > Products" by name "Floating Interest Rates"
  • New screen that lists all the "Floating Interest Rates" schemes along with "Create" button.
  • New screen to Create Floating Interest Rate
  • New Screen to View Interest Rate and Applicable Periods along with "Edit" button
  • New Screen to Edit Floating Interest Rate

Restrictions

  • 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

Following additional attributes will be added to /mifosng-provider/api/v1/loanproducts list/add/update APIs