Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
- Principal – Principal as per the Rest Specified
- Days Calculated – based on “Days Calculation Basis”
Other rules that will be followed:
a) When interest recalculation is turned on for a loan product, then any excess amount (over what is currently due or overdue) will be applied to the outstanding principal always. In this respect, it will override the settings for Repayment Strategy selected.
b) Any interest compounding will stop if any amount is overdue more than the number of days for the account to be treated as Non-Performing Asset (overdue_days_for_npa).
c) If there is a disbursement-time fee, which is calculated on principal+interest - then this fee amount will not be recomputed based on interest recalculations.
d) If any interest (or fee) was waived on an account - and the interest (or fee) changes due to the recalculations - then the waived amount will not be automatically changed by Mifos.
Example:
Total Interest dues: Apr-14 - 300, May-14 - 250 and Jun-14 - 200
Interest Waived = 300 (i.e. entire Apr-2014's interest is waived)
Due to interest recalculation (due to a back-dated transaction), the interest amounts now change to: Apr-14 - 250, May-14 - 200 and Jun-14 - 150
The waived amount remains as 300 (i.e. April's interest of 250 is waived and from May's interest - 50 is waived. If other behavior is needed, then user has to reverse the earlier waiver and then apply interest recalculation and then re-do the waiving with new amount).
The only situation when Mifos will automatically change the waived amount is when the total recalculated interest (or fee) due is less than the waived amount. In such a case, the waived amount is reduced to the recalculated amount.
e) If a fee is already paid and due to the recalculations if the fee is reduced (or increased), then the fee paid transaction is not altered. Any excess fees already paid in can be refunded at the end of the tenure of the loan (as then it will show that the account is overpaid). If there is an increase in fee due to the recalculations, then the additional fee can be collected.
Attributes
For Loan Products and Loan Accounts
...
- Days in Year – Actual
- Recalculate Interest? – checkbox - Null
- Rest or Frequency at which outstanding principal is recalculated – Null
- Days Calculation Basis – Actual
Database changes
1. Modifications to Loan Product (“m_product_loan”)
Column Name | Data Type | Description |
---|---|---|
days_in_month_enum | int | No of Days should be considered in loan calculation Actual or 30 days |
days_in_year_enum | int | No of Days should be considered in loan calculation Actual or 360 or 365 or 364 |
interest_recalculation_enabled | tinyint | Boolean flag indicates is interest recalculation required if payment not done as per the schedule. |
2. Modifications to Loan
...
Account(“m_loan”)
Column Name | Data Type | Description |
---|---|---|
days_in_month_enum | int | No of Days should be considered in loan calculation Actual or 30 days |
days_in_year_enum | int | No of Days should be considered in loan calculation Actual or 360 or 365 or 364 |
interest_recalculation_enabled | tinyint | Boolean flag indicates is interest recalculation required if payment not done as per the schedule. |
3. Interest Recalculation settings (m_product_loan_recalculation_details)
Column Name | Data Type | Description |
---|---|---|
interest_compound_enabled | tinyint | Boolean flag indicates whether interest compounding to be used in recalculation |
rest_frequency_id | bigint | frequency to be used for interest recalculation. references to m_frequency_details |
reschedule_strategy | int||
product_id | bigint | ref m_product_loan |
compound_type_enum | int | indicates compounding strategy
|
reschedule_strategy_enum | int | indicates which reschedule strategy to be used on prepayment
|
...
|
3. Interest Recalculation settings (m_
...
loan_recalculation_details)
Column Name | Data Type | Description |
---|---|---|
frequencyloan_type | smallint |
|
repeat_on_day | smallint | |
repeat_on_month | smallint | |
repeat_interval | smallint |
...
id | bigint | ref m_loan |
compound_type_enum | int | indicates compounding strategy
|
reschedule_strategy_enum | int | indicates which reschedule strategy to be used on prepayment
|
Use cases:
1. identify recalculation : check the payment against schedule and should process recalculation in following scenarios
...
- identify outstanding principal
- identify amount for interest compound
- regenerate schedule based on outstanding and rest frequency(from calendar instance)
- add the extra interest(in-case of late payment ) to next installment(should define the behavior if last payment is delayed?)
- for last installment, will add extra installments with interest component only
- if prepayment is done then use one of the strategy to reschedule.
- adjust EMI amount
- adjust loan duration
- adjust next installments
...