Migrated over from MifosForge - last edit on September 15, 2015.
Overview
- This feature allows a user to
Background and strategic fit
There is a need to tailor loan repayments to suit the cash flow patterns of the borrower. This is especially true of products like agricultural loans where clients cash flows can be quite volatile. Consequently returns in such sectors are seasonal, unpredictable and often lower than those of the regular commercial enterprises for which MFIs disburse loans. This necessitates the need for Financial Institutions to customize loans products, which allow for more flexibility with the installment schedule.
The Variable Installment Loans feature of Mifos X accommodates this flexibility by specifying:
For a loan product:
Minimum and maximum gap that should be present between installments (minimum is mandatory, however maximum is optional)
An optional minimum installment amount
For a loan:
Allow installment due dates to be modified
Allow installment amounts to be modified (either total installment or principal portion can be modified)
Add additional installments
Validate the schedule and calculations after making these changes
Requirements/User Stories
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Setup variable installment loan product | As an Operations Manager, I want to setup a loan product that will support variable installments so that loan officers can align loan repayments to client's ability to repay | Must Have | |
2 | Change installments amounts | As a loan officer, I want to change the amounts for installments for a loan so that the repayment amounts can be aligned to the client's ability to repay | Must Have | |
3 | Change installments dates | As a loan officer, I want to change the dates for installments for a loan so that the repayment dates can be aligned to the client's ability to repay | Must Have | |
4 | Add an installment | As a loan officer, I want to add a new installment for a loan so that the repayment dates and amounts are aligned to the client's ability to repay | Must Have | The new installment may be added either in the middle of the repayment schedule or at the end of the repayment schedule. |
5 | Validate Schedule | Must Have |
Business Rules
Variable Installment may be specified for loans that have either flat interest calculation or diminishing balance based interest calculation
For a given loan schedule, user may either modify principal or installment amount (and not both)
User may make these modifications only prior to loan account approval.
User may modify the date of all the installments.
User may not modify the amounts for the last installment.
If the user enters an amount for either principal or installment amount, then the other will be automatically calculated by Mifos.
The user may specify variable installments in 3 scenarios:
1) Flat Interest Rate
2) Interest based on Diminishing Balance
3) Interest based on Diminishing Balance with Interest Recalculation
Scenario 1: Flat Interest Rate: Mifos will not recompute interest for each installment. And the total interest will remain the same as it was when the original schedule was generated.
User alters dates: Date cannot be before previous installment date or after the next installment date. The new date is accepted. No other change.
User alters principal amount: This amount can be zero. The amount is accepted. The installment amount is calculated by Mifos as "Installment Interest" + the principal amount specified . The difference in amount (between newly specified principal and original principal for the installment) will be equally distributed among other installments principal that were not modified.
User alters installment amount: Amount can be zero too.If the amount specified is greater than the interest, then the principal amount is calculated by Mifos as installment amount specified minus the "Installment Interest". If the amount specified is less than the interest amount for the installment, then the interest is set to this value. The difference in principal amount or interest amount (between newly specified amount and original amount for the installment for both interest and principal) will be equally distributed among other installments (principal and interest) that were not modified.
Scenario 2 and 3: Interest based on Diminishing balance (without or with interest recalculation)
User modifies dates: Date cannot be before previous installment date or after the next installment date. The new date is accepted. The interest on the installments that follow the modified installment will be recalculated based on principal outstanding and number of days of each installment.
User modifies principal amount: This amount can be zero. The amount is accepted. The difference in principal amount (between newly specified amount and original amount for the installment) will be equally distributed among other installments' principals that were not modified.The interest on the installments that follow the modified installment will be recalculated based on principal outstanding and number of days of each installment.
User alters installment amount: Amount can be zero too.If the amount specified is greater than the interest, then the principal amount is calculated by Mifos as installment amount specified minus the "Installment Interest". If the amount specified is less than the interest amount for the installment, then the interest is set to this value and the difference in interest is either added to the next installment (if compounding is turned off) or added to principal if compounded is turned on for this loan product. The interest on the installments that follow the modified installment will be recalculated based on principal outstanding and number of days of each installment.
The interest recalculation will be based on the relevant configuration of the loan product as specified at: Variable Installment Loans
Attributes
For Loan Products
Attribute | Description | Notes |
---|---|---|
Can configure variable installments | Flag denoting whether this loan product support variable installments | True or False. Blank w.ould mean False. |
Minimum gap between installments | Integer value that denotes the minimum number of days that need to be present between any two installments for this loan product. | If above flag is true, then this field is mandatory. Ex. 12 - means that at least 12 days is required between 2 adjacent loan installments. If less than 12, then the "validate" button would throw an error. |
Maximum gap between installments | Integer value that denotes the maximum number of days that need to be present between any two installments for this loan product. | Optional field. Ex. 60 - means that utmost 60 days is allowed between 2 adjacent loan installments. If more than 60, then the "validate" button would throw an error. |
Minimum installment amount | Integer value that denotes the minimum installment amount. | Optional field.
Ex. 300 - means that the installment amount cannot fall below 300. If less than 300, then the "validate" button would throw an error. This validation will not be applicable for the last installment as last installment will be auto-computed. |
For Loan Installments
Security and Permissions
A new permission that will allow a user to "Edit Installment Amount and Dates".
Mifos Functionality Enhancements
New Screens
A new screen that will display the loan schedule and will allow installment dates and installment amounts to be edited. This screen will be invoked via a button "Edit Installments" which is displayed on the Repayment Info screen for a new loan account.
The screen will have the following attributes (displayed in a tabular form).
# (Installment Number), Days, Date, Principal, Interest, Fees, Installment Amount
Clicking on the Date, Principal, Installment Amount fields will allow these fields to be edited.
Fields that have been edited will be displayed in a different color (or there will be a visual indication for the same).
The screen will have the following buttons:
Validate, Save, Cancel (Save will be enabled only after Validate has returned success)
Changes to Existing Screens
A new button "Edit Installments" is to be added in the "Repayment Info" screen in the "new loan account" creation flow.
This button is to be displayed only if the user has the permissions to "Edit Installment Amount and Dates".
Changes/Enhancements to Batch Jobs
None
Changes/Enhancements to Accounting Entries
None
User interaction and design
Exception Handling
Reporting
APIs
Notes
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|