Early Repayment of Fees

Early Repayment of Fees

Release:

2.1

Current Owners:

Kay Chau

Status (Draft, In Review, Stable, Approved)

Stable

Introduction

Our new customer MFI in Kenya, PAWDEP, has a business need to assign penalties to savings accounts and have them due when applied.  What PAWDEP does is that whenever a client withdraws money from their savings, they must pay 10ksH for doing the withdrawal.  This is not possible in Mifos right now as you cannot assign fees or penalties to savings accounts, nor can you have fees applied to client accounts due when they are applied (can only be due at meetings).  We need to implement a way to meet their business need.

Goals

  • Ability to apply payment of penalties before or on meeting date to the client
  • Allow partial payment of fees and penalties

Non-Goals

The following items will not be addressed in this release:

  • Decoupling of Fees schedule from Meeting Schedules
  • Only applicable to Clients, Groups and Centers - no Fees related to Savings or Loans.

Definitions and Terminology

Term

Definitions

 

 

  • Mandatory fields will be preceded by *
  • Links are italicized
  • Buttons are Button

Related Documents

Early Repayment of Fees

This will update existing Fees/Penalties functionality at the client, group, and center accounts.

User Stories and Scenarios

Priority

Size

User Stories / Scenarios

1

 

MFI is able to apply some sort of 1 time, upfront fee at any time.  They are also able to apply payment on it immediately instead of having it due on the next meeting.  The fee is just added to the open balance, but can be paid off before the next meeting.  Essentially you are allowed to make payments towards your fees balance at any time now instead of restricting to the next meeting. Same as prepaying.

Applying a fee ON a client's meeting date attaches the fee to TODAY's meeting IFF the meeting hasn't been paid yet.
Applying a one-time fee BETWEEN 2 meeting dates attaches the fee to the NEXT meeting
Recurring fees do not factor into "fees balance"
New recurring fees behave the same way.

2

 

Also needed but the ability to make Partial Payment - Can pay off less than balance, but then payment is applied in a certain order:

Payment is paid off in order applied.

* Overdue charges
* One-time fee
* Recurring Fee

No overpayments allowed.

Example Use Case

Branch Staff applies a one-time fee to a client with no other fees due on client's meeting date and then applies payments through CSE

Client needs to a pay a penalty for savings withdrawal.  At the meeting, LO collects a payment of 10ksH for the penalty.  During data entry in Mifos. Branch Staff needs to note that a penalty of 10ksH has been applied to the client.  Then they want to go into CSE and note all payments that were collected.

Actors

  • Branch Staff

Preconditions

  • Client has no recurring fees and no fees due at their next meeting date currently.
  • Client meets on the 5th of every month.

Basic Flow

  1. Branch Staff logs onto Mifos on the 12/5 and navigates to client.
  2. Branch Staff applies a charge of 10ksH to the client. He wants to apply payment on it immediately (before next meeting date).  Client has no other fees or penalties due.
  3. Branch Staff navigates to Collection Sheet Entry runs a collection sheet for 12/5.  Under A/C column, amount of 10ksH is listed for the client.  Branch Staff completes CSE and applies exact payment.

Post-conditions

  • Balance of client account is 0.

Validations

  •  It used to be that this charge would not show up until 1/5.

Alternate Flow

  1. At Step 3 of Basic Flow, Branch Staff applies payment of 4ksH in CSE.  CSE completes.  Balance of client account is 6ksH.

Branch Staff applies a one-time fee to a client with no other fees due on client's meeting date and then applies backdated payments through CSE

MFI staff will usually enter these after their meeting days.

Actors

  • Branch Staff

Preconditions

  • Client has no recurring fees and no fees due at their next meeting date currently.
  • Client meets on the 5th of every month.

Basic Flow

  1. Branch Staff logs onto Mifos on the 12/6 and navigates to client.
  2. Branch Staff applies a charge of 10ksH to the client. He wants to apply payment on it immediately (before next meeting date).  Client has no other fees or penalties due.
  3. Branch Staff navigates to Collection Sheet Entry runs a collection sheet for 12/5.  Under A/C column, amount of 0 is listed for the client.  Branch Staff completes CSE and applies a payment of 10ksH.

Post-conditions

  • Balance of client account is 0.

Validations

  •  Client should not be allowed to overpay

Alternate Flow

  1. At Step 3 of Basic Flow, Branch Staff applies payment of 4ksH in CSE.  CSE completes.  Balance of client account is 6ksH.

More Scenarios

Pre-Conditions

  • One-Time Charge = 10ksH
  • If Recurring Fees = 6ksH
  • Monthly meetings on the 5th of every month

Scenario #

User Applies the One-Time Charge of 10 ksH on:

Are there existing Recurring Fees?  (see Pre-Cond)

User wants to apply Payment through CSE or Individual Payment

Default Payment Due Listed
(in Payment Box, and in Account Balance displayed on Account)

User applies payment on this date and with this amount:

Was this a full or partial payment?

Open Balance After Payment

Comments

1

On meeting date - 12/5

No

CSE

12/5 = 10

12/5 = 10

Full

0

Currently, can't pay this amount off on meeting date

2

 

No

Individual

12/5 = 10

12/5 = 10

Full

0

 

3

 

Yes

CSE

12/5 = 16

12/5 = 16

Full

0

 

4

 

Yes

Individual

12/5 = 16

12/5 = 16

Full

0

 

5

 

Yes

CSE

12/5 = 16

12/5 = 12

Partial - 12

4 (remains on one-time fee)

 

6

 

Yes

Individual

12/5 = 16

12/5 = 12

Partial - 12

4 (remains on one-time fee)

 

7

Between meetings - 12/15, no backdating, 12/5 meeting already entered

No

Individual

12/15 = 10

12/15 = 10

Full

0

 

8

=> You might want to pay off early in an Import case

Yes - already paid 12/5's

Individual

12/15 = 16

12/15 = 16

Full

0

 

9

 

Yes - already paid 12/5's

Individual

12/15 = 16

12/15 = 12

Partial - 12

4 (remains on recurring fee due next mtg)

 

10

 

Yes - didn't pay 12/5's (overdue amount)

Individual

12/15 = 22

12/15 = 22

Full

0

 

11

 

Yes - didn't pay 12/5's (overdue amount)

Individual

12/15 = 22

12/15 = 12

Partial - 12

10 (remains on one-time fee and then recurring fee for next mtg)

 

12

=> Unlikely to go into CSE on 12/15 since your 1/5 hasn't happened yet so these are for what happens when you go into Mifos on 1/5

No

CSE

1/5 CSE = 10

1/5 CSE = 10

Full

0

 

13

 

Yes - already paid 12/5's

CSE

1/5 CSE = 16

1/5 CSE = 16

Full

0

 

14

 

Yes - already paid 12/5's

CSE

1/5 CSE = 16

1/5 CSE = 12

Partial - 12

4 (remains on recurring fee)

 

15

 

Yes - didn't pay 12/5's (overdue amount)

CSE

1/5 CSE = 22

1/5 CSE = 22

Full

0

 

16

 

Yes - didn't pay 12/5's (overdue amount)

CSE

1/5 CSE = 22

1/5 CSE = 12

Partial - 12

10 (remains on one-time fee and then recurring fee)

 

17

Backdated scenario - 12/6

No

CSE

12/5 CSE = 0

12/5 CSE = 10

Full Balance

0

Error out if you try to enter in more than 10 for 12/5

18

 

No

Individual

12/6 = 10

12/5 = 10

Full

0

 

 

 

No

CSE

12/5 CSE = 0

12/5 CSE = 4

Partial

6

 

 

 

No

Individual

12/6 = 10

12/5 = 4

Partial

6


19

 

Yes - didn't pay 12/5's (not paid yet)

CSE

12/5 CSE = 6

12/5 CSE = 16

Full Balance

0

Error out if you try to enter in more than 16 for 12/5

20

 

Yes - didn't pay 12/5's (not paid yet)

Individual

12/6 = 22

12/5 = 16

Partial - 16 (Full for 12/5)

6 (Recurring Fee for your next mtg)

Error out if you try to enter in more than 16 for 12/5

21

 

Yes - didn't pay 12/5's (not paid yet)

CSE

12/5 CSE = 6

12/5 CSE = 12

Partial - 12

4 (remains on one-time fee)

 

 

22

 

Yes - didn't pay 12/5's (not paid yet)

Individual

12/6 = 22

12/5 = 12

Partial - 12

10 (remains on one-time fee and then recurring fee)

 

 

Early Repayment of Fees Functional Requirements

Fees Applied

FR#

Pri

Description

Comments / Mockups

0.1

P1 

Fees get applied depending on date. 

 

0.2

P1

One time fees get applied to the next meeting.  They are added to the open Fees Balance

 

0.3

P1

The difference is you can now pay off your open balance at any time. 

 

0.4

P1

When an amount is due, we should just see the open balance on the account as of that date

 

Apply Payment flow

FR#

Pri

Description

Comments / Mockups

1.1

P1 

Change Amount field so that it populates to balance on the client account instead of 0 if it is before client's next meeting date.  Date still defaults to today.  See above scenarios for what should be populated.


1.2

P1

Amount field is now editable.  User can apply partial payment

 

1.3

P1

Partial Payment should be applied in following order: Due date of fees (overdue first), and then order in which fee was applied

 

1.4

P1

Balance is running balance.

 

Apply Adjustment flow

FR#

Pri

Description

Comments / Mockups

2.1

P1

Apply Adjustment should continue to work.  If a payment is made on the client account, then you can also adjust the payment after.

 

2.2

P1

Adjustment will just adjust the amount that was paid previously

 

Client Charges Details Page

FR#

Pri

Description

Comments / Mockups

3.1

P1

Upcoming Charges currently lists meeting date as when upcoming charges are due.  Leave this as is, since they are technically due by the next meeting.  Doesn't mean you can't pay it off now.  If today is meeting date, Upcoming Charges should list today's date.

 

3.2

P1

Waive Charges - you should be able to continue to waive charge as right now - your whole balance would be waived.

 

3.3

P1

Overdue Charges - should work as it does currently.  Any charges not paid as of last meeting date are considered overdue.  Payment should be applied to Overdue Charges first

 

3.4

P1

Remove Recurring Fees -  If today is a meeting date, and you remove a recurring fee today, it should be removed from TODAY's meeting now.

 

Client Account Details Page

FR#

Pri

Description

Comments / Mockups

4.1

P1

Under Amount Due, this should be updated with balance of client account.  See FR#1.1 for what should be listed here

Existing bug

Collection Sheet Entry

FR#

Pri

Description

Comments / Mockups

5.1

P1

Default amount in A/C Collection should be open balance on the account as of that date


5.2

P1

If you are running a previous meeting's CSE, then it will list the open balance on that date which includes what's due at the next meeting.

 

Backdated Transactions

FR#

Pri

Description

Comments / Mockups

6.1

P1

If backdated transactions are turned on, then the user can continue to apply payment for fees in the past.  


6.2

P1

Backdated transactions can only be up to the last meeting date.  It cannot be before the last meeting date.

 

6.3

P1

Reject if you try to overpay what's due.  That means if you try to pay 1/5's recurring fee on 12/5 it will reject it.

 

Import Plugins

FR#

Pri

Description

Comments / Mockups

7.1

P1

If there are import plugins that take in client fees, they should be updated with this behavior


Other Assumptions

  •  

QA Considerations

  •  

Standard Considerations

Security (Permissions, Roles, and Data Scope)

Does the user need to be in a particular user hierarchy to use this feature?

No

Does the office hierarchy affect use of this feature?

No

Are you using any existing permissions to control this feature?

Must have apply fees

Are you adding any new permissions or changing existing permission to control this feature?

No

Are you using any existing activities to control this feature?

No

Are you adding any new activities or changing existing activities to control this feature?

No

Are there any special considerations for upgrade scenarios?  What will be the default value for new permissions?

No

What will be the default values for default roles in a new installation?

No

Impacts to System

Does this feature affect Bulk Loan Creation?  How?

No

Does this feature affect Collection Sheet Entry?  How?

Today's meeting date should allow me to see today's fee applied

Does this feature affect Redo Loans?

No

Does this feature affect Undo Loans?

No

Globalization/Localization

Will this feature support users localizing data that they enter?

No

Does this feature involve any date/time related data, and if so how should conversions be handled?

No

Is there currency or other numeric data ? If so does it require any special handling or validation?

No

Logging

Change Log

Do changes to the data that is collected or stored by the new feature have to be fully logged by the system?

No

Does the administrator configuring the system need the ability to turn on or off logging for this feature?

No

Is the feature currently logged but the structure of the logged records changing?

No

Reporting

Provide any relevant information about reporting requirements for the new features and answer the questions below, providing detail to explain any particular area when necessary.

Does the feature affect any existing reports?

Need to check

Does the feature require adding any new reports?

No

Performance

Will the feature be a high use-case scenario?

No

Will the feature have potential for high concurrency?

No

Does the feature include complex UI or data gathering logic that will be used by a significant portion of the user base?

No

Does the feature contain risks of database connection timeout or page timeout?

No

Will the feature contain any bulk insert/update/delete transactions?

No

Will the feature contain any caching mechanisms or cache refreshing mechanisms?

Unclear

Could the feature result in a large amount of data being sent to the client or between the database and web server?

No

Would users on a low bandwidth connection likely face issues with a part of this feature?

No

Does the feature affect existing batch jobs or require adding any new batch jobs?

Possibly

Setup and Installation

New Installations

Will the feature include demo data?

No

Does the feature require any data to be gathered at setup runtime?

No

Backward Compatibility and Upgrades

Is there any data conversion that needs to be done as part of an upgrade?

No

Will customers lose data or will the way existing data is stored change significantly?

No

Will another feature, workflow or portion of the data model be deprecated as a result of this new feature?

No

Will existing role permissions be changed or impacted by this feature? If so provide details in the security section.

No

Will existing customers need to learn a new UI process or change the way they use the system as a result of this new feature?

No

Hosting Support

Is there anything special for our cloud customers we need to be aware of?

No

 

 

Configuration

Does this feature require changes to configuration files?

No

If so, is this feature enabled or disabled by default?

N/A

Open Questions and Notes

Unanswered|