Note: This approach has been put on hold for now, the current quick fix is illustrated at https://openmf.mybalsamiq.com/mockups/869600.png?key=8378039401411518f98b27a2068867a9e1895716

1         The Problem

The current approach to accounting would work for smaller MFI’s and is simple to setup. However, larger MFI's have custom requirements when it comes to automated system posting, a few requirements from Grameen Koota and Musoni illustrate some of the possible customizations that might be required

1.1         Grameena Koota

1.2        Musoni Requirements

2         Verbiage Guide

Term

Comments

Product default posting rules

Refers to the default posting rules assigned at the time of product creation (See https://mifosforge.jira.com/wiki/display/MIFOSX/A+Possible+accounting+Spec)

Accounting rule

A rule that identifies the account to be credited and the account to be debited

 

3         Proposed solution

Add a set of additional "Events" to which Accounting rules may be mapped. While this would involve a significant amount of one time configuration, it gives larger organizations the ability to handle any custom automated system posting requirements

 

3.1        Overview

      

Every accounting event happens within a particular context. This context includes the following

Based on the Context, different accounting events would be available.

Some events might have further attributes associated with them, which would allow fine-grained control over the accounting rule to be invoked based on the event attribute

 

Event

Event Attributes

Comments

Disbursement

Cash Transaction

 

Check Transaction

 

Receipt

 

Wire-Transfer

 

Mobile Money

 

Interest Applied (star)

 

 

Fee Applied (star)

 

 

Penalty Applied (star)

 

 

Principal repayment

Cash Transaction

 

Check Transaction

 

Receipt

 

Wire-Transfer

 

Mobile Money

 

Interest payment

(Same attributes as principal repayment)

 

Fee payment

(Same attributes as principal repayment)

 

Penalty payment

(Same attributes as principal repayment)

 

Interest waiver (star)

 

 

Fee waiver (star)

 

 

Penalty waiver (star)

 

 

Principal write-Off

Non-payment

 

 

Member Death

Needed by GK for posting to Insurance related accounts

 

Spouse Death

Needed by GK for posting to insurance related accounts

 (star)= applicable only when the products use accrual based accounting

 

An accounting rule can be attached to an Event (and optionally Event Details) occurring in a given context

3.2        Priorities for resolving posting rule Conflicts

Event driven automated postings are meant to optionally override the default Product default posting rules. The Order of priority the system would use for Interest posting would be as follows

 

ID

Context

Event

Event Attribute

Accounting Rule

Branch

Product

Fee/Penalty

Debit

Credit

1

All

All

N/A

Disbursement

M-Pesa disbursal

Loan Portfolio

mpesa

2

Bangalore

All

N/A

Disbursement

M-Pesa disbursal

Loan Portfolio-bangalore

mpesa-bangalore

3

Bangalore

IGL

N/A

Disbursement

M-Pesa disbursal

Loan Portfolio-IGL

mpesa-bangalore

4

Bangalore

All

Processing Fee

Fee Payment

Any

Bank-Bangalore

Income from processing fee

 

An English translation of these event driven postings are as follows:

Now consider the following scenarios

3.2.1        Example 1

An IGL loan is disbursed in Bangalore using M-Pesa

The actual event and the context in which it was triggered can be represented as follows:

Context

Event

Event Attribute

Branch

Product

Fee/Penalty

Bangalore

IGL

N/A

Disbursal

M-Pesa

 

The event driven postings that are a match for this event are

 

Of the possible matching rules, the most specific rule is ID 3, hence “Loan Portfolio-IGL” is debited and “mPesa-bangalore” is credited

3.2.2        Example 2

A cash payment for processing fee is made for a Loan of Type “Emergency Loan” in Tumkur

The actual event and the context in which it happened can be represented as follows:

Context

Event

Event Attribute

Branch

Product

Fee/Penalty

Tumkur

Emergency Loan

Processing Fee

Fee Payment

Cash

 

No event driven posting rules match this event, hence the “Product default posting rules” will apply

3.2.3        Example 3

A cash payment for processing fee is made for a Loan of Type “Emergency Loan” in Bangalore

The actual event and the context in which it happened can be represented as follows:

Context

Event

Event Attribute

Branch

Product

Fee/Penalty

Bangalore

Emergency Loan

Processing Fee

Fee Payment

Cash

The event driven postings that are a match for this event are

Since only one posting rule matches this event, “Bank Bangalore” is debited and “Income from processing fee” is credited