Mifos 2.2 versus MifosX - Loan repayment schedule flexibility

Introduction

This page documents the feature set around loan repayment schedule for latest version of mifos at time of writing (mifos 2.2 RC) against a version of mifos for delivery sometime in the future (mifosX).

References

loan functional specs

Improvements

General Summary

In mifos 2.2, there are various methods for creating the loan repayment schedule during loan creation.

  1. Variable Installments (only allowed with LSIM on): This allows users to edit the due dates of an installment in the schedule along with total amount due (principal + interest) for the installment. Each installments principal and interest is calculated based the value entered for total amount due.
  2. Flat, Declining Balance, Declining Balance (Equal Installments): Constraints based on selected 'interest calculation type' are applied and repayment schedule is generated automatically with no option to edit.
  3. Interest Re-calculation: ??

In mifosX, the intention is to provide true flexibility around the generation of the loan repayment schedule and any transactions directly related to this e.g. repayment(early, late, partial, full), repayment in full, write off, reschedule.

The cleanest way to view loans and loan repayment schedule flexibility is to take the opposite view of the existing mifos approach. By default, there should be the minimum of business rules or constraints around the creation of loans.

For example, some organisations might want full control over how schedule looks, as george conrad indicated by email, one organisation wanted to be able to set the principal and interest for frist x installments and
this may change completely in subsequent installments (suitable for agricultural/seasonal related businesses).

As a result, in mifos X, the loan repayment schedule can be fully set and edited by a user during loan creation. So its possible to edit the due date, principal and interest properties of each installment of the repayment schedule.

A user starts by indicating the basic loan terms to be used such as principal and number of installments. Theres also the convience of selecting the repayment frequency and interest calculation method so users can generate a repayment schedule close to what they need. They can then edit each installment as they see fit.

Some organisations however may not require/want this level of flexibility around loan creation and loan repayment schedule and prefer to have the loan repayment schedule automatically generated based on the loan terms given and not allow the user to edit any part of it e.g. the way mifos works for flat, declining balance, declining balance (equal installments)

Loan functionality can broken up under the following properties:

Flexible Loan Repayment Schedule

The user can create a loan with a repayment schedule that can be edited to look as they wish (some basic checks around due dates and cumulative principal).

Flexible loans under the following scenarios:

Disbursement on different day to expected disbursement date

As due dates are entered manually, if disbursement actually occurs on a different day than the expected disbursement date and this affects the expected repayment schedule, then the loan should be rescheduled manually by the user before being allowed to disburse the loan.

If the disbursement is on a different date but still before expected first repayment date then disbursement should be allowed and the user can then change the schedule as they see fit.

The process could be automated based on some strategy but rather than guess at this, it would be better to speak directly to customers around implementing this type of functionality.

Early repayment

No automatic support for interest recalculation for early payments (MIFOS-2996) as user can enter any value for principal or interest.

The process could be automated based on some strategy but rather than guess at this, it would be better to speak directly to customers around implementing this type of functionality.

Late repayments or Partial repayments

  1. http://mifosforge.jira.com/browse/MIFOS-2996 - interest recalculation for late payments
  2. http://mifosforge.jira.com/browse/MIFOS-3384 - late payment pentalities
  3. http://mifosforge.jira.com/browse/MIFOS-2406 - If client pays ahead, Mifos should re-adjust schedule so the system still shows they owe the full amount the next week

Clearly theres some desire to support late repayments and something that should happen to the loan repayment schedule as a result of this.

For flexible loans:

  1. no automated support of interest recalculation for late payments (can be added after talking with customers)
  2. no automated support of late payment penaltities (can be added after talking with customers)

Loan balance overpayment

  1. http://mifosforge.jira.com/browse/MIFOS-3305 - handle overpayments of remaining loan balance

no automated support of handling overpayments on balance (can be added after talking with customers)

Automatic Loan Repayment Schedule

Disbursement on different day to expected disbursement date

As repayment schedule is generated automatically at creation, it can be re-generated automatically if disbursement occurs on different day than previous expected. The first repayment is exactly one repayment frequency (x days, x weeks, or x months) after the disbursement date.

Early repayment

interest recalculation for early payments (MIFOS-2996): based on loan terms interest can be re-calculated but customer may want to configure what constitues an early payment (number of days etc) (would like more detail/talk to customers on delivering what they need here)

Late repayments or Partial repayments

  1. http://mifosforge.jira.com/browse/MIFOS-2996 - interest recalculation for late payments
  2. http://mifosforge.jira.com/browse/MIFOS-3384 - late payment pentalities
  3. http://mifosforge.jira.com/browse/MIFOS-2406 - If client pays ahead, Mifos should re-adjust schedule so the system still shows they owe the full amount the next week

Clearly theres some desire to support late repayments and something that should happen to the loan repayment schedule as a result of this.

Again, should speak directly with customer on what functionality to deliver.

Loan balance overpayment

  1. http://mifosforge.jira.com/browse/MIFOS-3305 - handle overpayments of remaining loan balance

no automated support of handling overpayments on balance (can be added after talking with customers)

Detail

NOTE: Possible general improvements to loan area.

  1. http://mifosforge.jira.com/browse/MIFOS-4059 - Meeting schedules should not be made mandatory in application
  2. http://mifosforge.jira.com/browse/MIFOS-4319 - Commission fee, payable in installments charged at % per installment rate
  3. http://mifosforge.jira.com/browse/MIFOS-4848 - Support for multiple (tranche) disbursements for same loan (housing loans, KEEF)

Creation

Capability

Mifos 2.2

Mifos X

Note

loan repayment schedule creation: user can create flexible loan schedule that allows user to indicate due date, principal and interest for each installment

(error)

(tick)

creating a flexible loan can be indicated at the loan product level.

loan repayment schedule creation: user can create loan schedule that allows user to indicate due date and total installment amount due (principal and interest) for each installment with principal and interest recalculated (declining method) based on total amount due for previous installment

(tick)

(tick)

This is whats called Variable Installments in mifos 2.2

loan repayment schedule creation: user can constrain loan schedule based on disbursement date, repayment frequency (weekly/monthly) and interest calculation method (flat, declining, declining (equal installments)

(tick)

(tick)

 

Repayment

  1. http://mifosforge.jira.com/browse/MIFOS-2996 - interest recalculation for late/early payments
  2. http://mifosforge.jira.com/browse/MIFOS-3384 - late payment pentalities
  3. http://mifosforge.jira.com/browse/MIFOS-3305 - handle overpayments
  4. http://mifosforge.jira.com/browse/MIFOS-2406 - If client pays ahead, Mifos should re-adjust schedule so the system still shows they owe the full amount the next week

Capability

Mifos 2.2

Mifos X

Note

whilst loan is open, user can make loan repayment

(tick)

(tick)

capture payment date, payment amount and comment/note

whilst loan is open, user can make loan repayment with past date 

(error)

(tick)

MIFOS-2540 (payment cannot predate disbursal bug), , MIFOS-4367

whilst loan is open, user can repay loan in full

(tick)

(tick)

calculate whats due and capture date, amount and note, this is managed through 'make repayment' flow in MifoX and isn't seen as something special although it might make sense to break it out like in mifos at present. It really depends on what we support with regards support on repayment schedule for early/late payements and interest calculation etc

whilst loan is open, user can repay loan in full with past date MIFOS-3355

(error)

(tick)

as above

Reshcedule

NOTE: Reschedule is not really supported in mifos. the loan is cancelled/closed as closed-rescheduled and the user is expected to 'create a new loan' using the 'redo loan' method to meet requirements of reschedule.

Capability

Mifos 2.2

Mifos X

Note

whilst loan is open, user can mark loan to be rescheduled

(tick)

(tick)

whilst loan is open, user can mark loan to be rescheduled past date 

(error)

(tick)

Write off

  1. http://mifosforge.jira.com/browse/MIFOS-2878 - Add ability to reverse writing off of a loan in case of later recollection of the outstanding amount or some other means of tracking recovery against client account.

Capability

Mifos 2.2

Mifos X

Note

whilst loan is open, user can write off loan

(tick)

(tick)

Note: take into account need for MIFOS-2878

whilst loan is open, user can write off loan with past date 

(error)

(tick)

Note: take into account need for MIFOS-2878