Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Suggested striking one sentence in example.

...

A Loan provisioning is an expense that is reserved for default/bad performing loans/credits. It is an amount set aside in the event of that loans defaults. or It is an expense set aside as an allowance for bad loans or credits. Loan loss provision is also known as the "Valuation Allowance" or "Valuation Reserve".  It is also known as "Allowance for Loan Loss"                              

In any group of loans, banks (used to refer to all financial institutions) expect there can be some loans that do not perform as expected. These loans may be delinquent on their repayments or default the entire loan. This can create a loss to the bank on expected income. Therefore, banks can set aside a portion of the expected repayments from all loans in its portfolio to cover all or a portion of the loss. In the event of loss or in critical situations banks can use the amount set aside to cover the loss instead of taking a loss in its cash flow. This loan loss reserve acts as an internal insurance fund.

Example:

Let's assume MFI/Bank organization ABC has made $ 100,000 of loans to different individuals and companies. Though ABC MFI/Bank organization works very hard to ensure that it lends to only those people who can repay the total amount on time, naturally some may default, some may fall behind and for some ABC MFI/Bank organization has to renegotiate.

MFI/Bank Organization ABC estimates that 1% of loans amount that is $ 1000 will never comeback. So this $ 1000 is ABC MFIorganization's /Bank's loan loss reserve and it records this amount as negative number on the asset portion of its balance sheet. If  If and when MFI/Bank organization ABC decides to write all or a portion of a loan off, it will remove the loan from its asset balance and also remove the amount of the write-off from the loan loss reserve. The amount deducted from the loan loss reserve may be tax deductible for MFI/Bank organization ABC.

How to define a Loan Provision:

...

Based on in which category the loan belongs to MFI/Bank organization can reserve the amount based on his country regulations. For example

...

Description: This API will return the provision history data on which provision report is created.The request parameter parameters offset and limit are used for the pagination. Organization can select a particular date and can view the provision/generate the report. Please find the mock up screen below

...

Code Block
 {
 "summaryview=falsetrue",
 "branch=categorywise=false", 
 "branch=all",
 "offset" : 0,
 "limit" : 15,
}

By default The summary view for all branches provision details will be shown by category. The mock up screen is shown below

Image Added

 The summary view for all branches with category wise is shown below

 

Image Removed

 

The summary view for all branches is shown below

Image Removed

Branch wise summary and regular views are shown below

Image Removed

 

Image RemovedImage Added

The summary view for a selected branch is shown below (categorywise parameter is not used in case of branch view)

Image Added

The non summary view for a selected branch is shown as below (categorywise parameter is not used in case of branch view)

Image Added

Non summary view of all branches is shown below

Image Added

Loan Loss Provision Implementation in Mifos X:

 

We need to create a table to keep all loan provision categories.The table name is 'm_provision_category''. The table definition is defined below. The category names will vary based customer to customer.

...

Now how to associate loan provision to  a product? In create loan product screen, we have the option to enable loan loss provision as shown in mock up screen below

MFI Organization can choose each category one by one and can add it to the loan product. MFI Organization can choose minimum and maximum over dues in days and can provide provision percentage differently for each loan product. Both Liability & Expense combos will have all GL accounts. So MFI organization can choose liability & expense accounts against each provision category differently,

...

NAMEDatatypeLengthRemarks
idBIGINT20PRIMARY KEY & AUTOINCREMENT
loanproduct_idBIGINT20FOREIGN KEY
category_idBIGINT20FOREIGN KEY
min_ageBIGINT20NOT NULL
max_ageBIGINT20NOT NULL
provision_percentageINT4DEFAULT 0
liability_accountBIGINT20NOT NULLFOREIGN KEY acc_gl_account.id
expense_accountBIGINT20NOT NULLFOREIGN KEY acc_gl_account.id
created_byVARCHARBIGINT100app user name20FOREIGN KEY m_appuser.id
created_onDATE  
modified_byVARCHAR100app user name100FOREIGN KEY m_appuser.id
modified_onDATE  

 

For any given tenant, the provision details for a particular loan product will look like below.

idloanproduct_idcategory_idmin_agemax_ageprovision_percentageliability_accountexpense_accountcreated_bycreated_onmodified_bymodified_by
1103451005abcd accountdcba accountNazeer10031-Dec-2014Vishwas20010-Jan-2015
2103452306020abcd accountdcba accountNazeer20031-Dec-2014Vishwas40010-Jan-2015
31034536018050abcd accountdcba accountNazeer40031-Dec-2014Vishwas50010-Jan-2015
410345418036090abcd accountdcba accountNazeer30031-Dec-2014Vishwas60010-Jan-2015

While editing the loan product, persisted provision details will be restored in the edit loan product screen

...

1) Under System-> Manage Scheduler Jobs user , organization can find the loan loss provision job. This job will run at customer defined intervals.

...

After calculating the provision amounts for all active loans, the data will be saved into 'acc_gl_journal_entry'.

2) User Organization can generate provisioning data manually under accounting section as shown in below mock up screen

...

NameDatatypeLengthRemarks
idBIGINT20PRIMARY KEY and AUTOINCREMENT
currency_codeBIGINT20FOREIGN KEY m_currency.id
office_idBIGINT20FOREIGN KEY m_office.id
product_idBIGINT20FOREIGN KEY m_product_loan.id
category_idBIGINT20FOREIGN KEY m_provision_category.id
overdue_in_daysBIGINT20DEFAULT 0
amount_to_be_reservedBIGINT20DEFAULT 0
created_byBIGINT20FOREIGN KEY m_appuser.id
created_onDATE NOT NULL
modified_byBIGINT20FOREIGN KEY m_appuser.id
modified_onDATE  

 

Whenever the provision calculation is done, system is going to make an entry in the 'provision_history' table. The structure of the table is shown below

NameDatatypeLengthDescription
idBIGINT20PRIMARY KEY & AUTO INCREMENT
created_onDATE NOT NULL
journalentryjournal_entry_createdINT1DEFAULT 0
created_byBIGINT20 m_appuser_id or scheduler job dummy id
created_onDATE  

 

Changes required in existing Classes:

...