Announcing Mifos X 1.25: WebHooks, Accrual Accounting, Declining Balance with Interest Recalculation

The core team and community have been hard at work at continuing to broaden the functionality of Mifos X and make the platform more extensible for our ecosystem of partners. This release delivers on some must-have financial and accounting features with support for perodic accrual accounting with point-in-time accruals, true declining balance with interest recalculation with support for configurable rest periods and compounding settings, the ability to pre-pay loans, bulk JLG loan applications, and a whole range of usability enhancements.  On the architectural side, we’ve built out a WebHooks framework with a proof-of-concept Twilio SMS integration, shipped our Batch APIs for improved performance, and an Executable WAR for quick installation of Mifos X. Download Mifos X 1.25 now or request a trial instance to try it out for your organization.

A huge thank you to all of the community members that made this release possible, including our Google Summer of Code interns, partners like Conflux Technologies and Musoni Services, as well as volunteers, Markus Geiss and Michael Vorburger. With support from the core team, we’ve been able to ship a lot of code submitted by our global community.

In this post, is a walkthrough of each major feature. Please also view the release notes and watch the YouTube Screencast from our October 16 User Meetup for a video demo of each feature.

We’re updating the User Manual with each of these new functionalities so keep checking back regularly for any updates.

Declining Balance Loans with Interest Recalculation

Prior to this release, for declining balance loans, there was no impact on outstanding interest for the early or late repayment of loans. With Mifos X 1.25, interest is now recalculated resulting in additional interest for late repayments and reducing the interest payable for advance or over-payments. Now Mifos X customers can offer their clients more equitable and true calculation of interest payable that encourages responsible client behavior. Clients are rewarded for early and on-time repayment and penalized for late repayments. the EMI amount or the number of installments can be reduced.

Mifos X now generates a second repayment schedule showing the updated installments reflecting the new interest payable while displayable the original schedule in a separate tab.

declining-balance_interest-recalc

Configurable Rest Periods and Compounding Settings.

Loan products can now be configured for different rest periods – daily, weekly, monthly, or the same interval as the repayment period. Rest is simply the time frame in which principal is reduced as a loan is repaid. Payable interest varies based on the duration of the rest period. Daily rest interest is calculated on the outstanding loan balance from the previous day, weekly from the previous week, and monthly from the previous month. A more frequent rest period is beneficial when payments are made on time or in advance made but results in more payable interest in times of overdue payments.

rest-definition

Products can also now be configured to support compounding of recalculated interest. If turned on, it can be compounded on fees, interest, or fees and interest. 

 

compounding-setting

 

Configurable Advance Payments

Loan products can now be configured with three different behaviors for advance payments, functionality much more in line with that of a banking application. Advance payment can now: reduce the EMI amount (reflecting the lower outstanding interest across all installments of the loan), reducing the # of installments (shortening the duration of the loan), or rescheduling the next repayment (applying the advance to the principal on the next installment so only interest is due).

advance-payments

 

WebHooks

Instrumental to the growth of our community is helping our partners and contributors in our ecosystem to extend the platform with greater ease. Our WebHooks framework built and designed by Avik and Markus deliver on this in a huge way by allowing other systems to easily call data specific data from Mifos. We’ve shipped a Twilio SMS bridge as proof of concept and already the community has been using the WebHooks to build a module for sending event-based SMS, Mifos X Messenger, and an integration with QuickBooks Accounting. We look forward to all the innovation and apps that will now be possible through the WebHooks.

To create your own WebHook, you simply need to provide the URL for the service that is being called, as well as the event and the actions that trigger the call. For example each time a client is created, it will call that service and send the relevant data.

web-hooks

 

Only a few events have been integrated right now but the WebHooks are ready for partners to extend. View the Hooks documentation to learn more and start getting creative.

Twilio SMS Bridge

As a proof of concept, we’ve already shipped a module for sending event-based messages using Twilio as the SMS gateway. Led by Markus, this module will automatically send out an SMS when a client is created or a loan repayment is made as well as sending out a generic SMS. View Markus’ presentation or watch a demo to learn more.  Terence Monteiro from San Jose Solutions has already followed this same approach and built and shared with the community, the Mifos X Messenger for sending SMS to any Indian mobile number.

Prepaying Loans

This functionality makes it easy to prepay a loan account by paying off the entire amount and closing the loan account in one single step. On the action bar, you’ll now see a new button to Prepay a Loan. This will automatically display the Payoff amount as of the date including total outstanding principal and interest. Once the transaction is submitted, the entire loan will be paid off and status changed to closed.

prepay-functionality

Periodic Accrual Accounting

Building off of the support for up-front accruals, Mifos X 1.25 now supports point-in-time accruals so interest income can be accrued and recognized at any point in time or with a defined periodicity rather than accruing all the interest up-front.

accrual-config

Under accounting, there is a new tab for Accruals to execute periodic accrual accounting. Now you enter the date you’d like to recognize/accrue income till and Mifos will compute and pass journal entries to recognize income as interest receivable between date of the loan and the accrue till date.

invoke-accruals

This differs from up-front accrual accounting in which all accrual entries are passed at the time of disbursal as of the due date for each installment but passed right at beginning. Periodic accruals can be invoked with any periodicity based on Add Periodic Accrual Transactions batch job or can go into the accruals tab in accounting and manually invoke.

Bulk JLG Loan Applications

Shipping in this release is the Batch API work that Rishabh Shukla worked on during Google Summer of Code. While this technical improvement that allows Mifos X to pass instructions for several operations in a single HTTP request is mainly behind the scenes. It will power a great deal of user-facing functionality; it now powers the Bulk JLG Loan application feature which allows JLG loans for multiple clients with different loan parameters to be opened in one step.

bulk-jlg-select-clients

User Interface Enhancements

This release also contains a number of the enhancements that Google Summer of Code intern, Gaurav Saini, worked on this summer. He made some dramatic improvements to streamline and clean up the clients, groups, center pages, implemented bread crumbs for consistent drill-down navigation, and tackled the long-anticipated Thousands Separator issue. These are only just a few of the many enhancements that Gaurav made that have been shipped over the past couple release cycles.

Streamlined Group and Center Pages

The group and center pages have now been redesigned to match the recently revamped Client Page. Group Members have been pulled to the main tab and group details have been grouped on the right-hand side.

group-page

Bread Crumb Trails

One of the key features from Mifos 2 that hadn’t yet been implemented in Mifos X were the bread crumb trails to allow users to drill up and down from an office to the loans of each individual client. The bread crumbs allow the user to know exactly where they are in the hierarchy of their portfolio and to navigate instantly between records.

bread-crumbs

Thousands Separator

For those countries with high currency amounts, all input fields now support the thousands separator during data entry so values can be input quickly without any errors.

thousands-separator

Mifos Executable War

Michael Vorburger is proud to finally bring to v1.0 completion his Mifos Executable WAR project that he’s been working on since the legacy Mifos 2 codebase several years back. For customers looking to evaluate Mifos or even for small production deployments, they can avoid the lengthy install process by using this executable WAR based on Michael’s Java embeddable MySQL package named MariaDB4j and Spring Boot. No need to install or configure TomCat and MySQL, simply  run java -jar mifos.war, and the Mifos back-end/platform is up and running. Michael is working to include the AngularJS community app UI as well so stay tuned!  Read up on all the other technical benefits from the Executable WAR on Michael’s blog.

Community Contributors

Join us in thanking all the contributors across the community who made this release possible: Vishwas Babu, Pramod  Nuthakki, Avik Ganguly, Nayan Ambali, Markus Geiss, Michael Vorburger, Chris Dalzell, Subramanya Shimoga Nagarajaiah, Binny Gopinath Sreevas, Ishan Khanna, Gaurav Saini, Rishabh Shukla, Chandrika Mohith, Sughosh Bharadwaj, Awesh Mandal, Sander van der Heyden, Sunil Mundra, and more!