Periodic Accrual for Loans
Overview
Financial Institutions may close their accounting books periodically and hence want to know the status of the accrued incomes and expenses as of the particular date.
Today, for Accounting Type as "Accrual (Periodic)", the accrual accounting happens in Mifos on the date a payment is due. This will be enhanced so that the organization can
a) recognize income/expenses periodically for loans (as specified as a configuration):
OR
b) recognize income/expenses as on a particular date for loans (which will be manually specified when invoking the accrual job).
Mifos will continue to accrue income/expense for loans on the dates on which they fall due. There will not be any change to this functionality.
Background and strategic fit
This feature will allow Mifos to cater to standard accounting procedures followed by larger Financial Institutions and move towards making Mifos a more accepted core banking solution.
Requirements/User Stories
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Set accrual accounting frequency | As a head accountant, I wish to specify how frequently accrued income and expenses will be recognized in accounting | Must have | |
2 | Automatic periodic accrual | At the frequency specified by the head accountant, Mifos internally invokes a batch job that will take the current date as input and recognize all unrecognized income and expenses for loans till this date | Must have | |
3 | Manual accrual | As a head accountant, I wish to manually invoke the accrual job as on a specific date to recognize all income and expenses for loans till this date | Must have |
Business Rules
The definition of periodicity of accrual will be applied to the whole Mifos installation (i.e. it is organization wide and not restricted to specific products).
Mifos should support accrual periodicity of the following:
- yearly - on 31st March
- half yearly - on 30th June and 31st Dec
- quarterly - on 31st March, 30th June, 30th Sep and 31st Dec
- monthly - on last day of month
- on 25th of every month
- fortnightly, on second Thursdays
- weekly on Saturdays
- daily
Attributes
The following attributes will be captured for "Accrual Setup" (under Accounting)
Attribute | Description | Notes |
---|---|---|
Accrual Type | Automatic or Manual | Automatic - means will be invoked automatically on specified periodicity Manual - will be invoked by an accountant or head accountant by manually specify a date and invoking the accrual job This is set for the organization and not for a specific product. Defaulted to Manual. |
Accrual Periodicity | Monthly, weekly, quarterly etc. | Only specified when Accrual Type = Automatic Should support above frequencies |
Security and Permissions
New permissions to be introduced for:
- Manually invoking the "Period-Ending Accrual for Loans" job
- Maintaining the Accrual Set-up parameters
Mifos Functionality Enhancements
New Screens
- Accrual Setup (under Accounting) - to maintain the above attributes
Changes to Existing Screens
None
Changes/Enhancements to Batch Jobs
Existing "Add Accrual Transactions" batch job to continue as it is. No changes to this.
A new batch job which will do the following for all active loans:
- Calculate the apportioned unpaid income for:
Period start: Last time any income was recognized
Period end: date which is given as input (includes the date given) - Pass journal entries for recognizing this income - the entries will remain the same as what is specified under: Accrual Accounting- Techno functional Spec (under section "Basic Scenario" under "Automated System Accrual Event")
- Nothing to be done for expenses - since the only expense associated to a loan account is the loans written off which can't be accrued (till the time Mifos starts supporting automatic loan loss provisions - which is envisioned to be done manually as of now)
- If the income to be recognized changes due to any backdated entries made - then the job will cancel existing accounting entries that recognize income and will pass new entries with corrected amounts
This new batch job will be invoked at the frequency specified in the "Accrual Setup" (under Accounting)
Changes/Enhancements to Accounting Entries
None
User interaction and design
TBD
Exception Handling
- If income was recognized already for a loan account on or after the date specified, and there is no new backdated transaction for this account, then the batch job will skip this loan account.
- It should be possible to re-run the batch job for a given date (for example: after making back dated entries, accountants wants to re-run the job for a given date)
Reporting
None
APIs
An API to maintain the "Accrual Setup" attributes
An API to invoke the periodic accrual batch job as on a specified date
Notes
Accrual Type to be defaulted to "Manual" during upgrades
Database changes
Modifications to Loan Account(“m_loan”)
Column Name Data Type Description accrued_till Date to identify till which date accruals are done
Use cases:
- calculate accrual amount till specified date
- system will calculates accrual amount per one day first
- then apply this to number of days between last accrued and till the date specified/periodic date
- if days on month set as 30, then in calculation 30 days will be consider even for 31 days(on 30th day and 31st day accrual amount will be same)
- batch job, which accrues based on periodicity mentioned in batch job settings
- API for capturing accruals till the date specified(Manual) . date must not be in future.
- if there is any difference in amount because of back dated entry, system will do accrual or reversal of accrual for that varied amount.
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|
Confirm that the handling of backdated transactions as described above is accurate from an accounting perspective | TBD |