Microfinance loan instalment rounding testing checks that a loan system calculates, displays, collects and posts small repayments according to the product's defined precision and rounding rules. It verifies the rounded instalment amounts, any residual balance, repayment allocation and resulting account balances across the loan lifecycle. Expected results depend on the configured currency, product rules and applicable requirements.
Define the rounding rules before testing
Record the rules that determine the expected result for each product. Establish the currency's minor unit, the precision retained during intermediate calculations, the point at which amounts are rounded, and the rounding method. Common methods include half-up, half-even and truncation. Confirm whether the system rounds interest, fees and principal separately or rounds only the final instalment amount.
The timing of rounding affects the schedule. Rounding each instalment independently can produce a different total from calculating the schedule at higher precision and rounding the aggregate. Requirements should state how the system handles any residual on the final instalment, including whether it adjusts that instalment or leaves a separately managed balance.
Use decimal arithmetic or integer minor units for the reference calculation. Binary floating-point calculations can represent some decimal fractions approximately, which can introduce errors at rounding boundaries. Check the application, customer statement, collection interface and ledger against the same documented rule.
Build targeted test cases
Include ordinary schedules alongside boundary and failure cases. Give particular attention to small amounts, where a minor-unit difference can be a material share of a repayment.
- Use amounts that fall below, exactly on and above a rounding midpoint.
- Test a schedule whose exact instalment amount has recurring decimal places.
- Check whether a very small interest or fee rounds to zero, and whether the product permits that result.
- Test the first and final instalments, early repayment, arrears and partial payments.
- Repeat calculations after a configuration change, with existing loans and newly originated loans.
Vary the repayment path as well as the schedule. Confirm that a partial payment reduces the correct components under the allocation rules, and that a missed or late payment does not create extra rounding differences when charges are applied. These cases fit into [loan amortisation schedule testing] and [loan repayment allocation testing].
Worked example: a residual on the final instalment
Assume a test product has a total amount due of 10.00 currency units, split into three instalments. The documented rule calculates the exact instalment first, rounds the first two instalments to two decimal places, then sets the final instalment to the remaining amount due.
The exact instalment is 10.00 divided by 3, or 3.333… The first two instalments are 3.33 each. The final instalment is therefore 10.00 − 3.33 − 3.33 = 3.34. Assert that the schedule total remains 10.00, the displayed amounts match the schedule, and payments of those three amounts close the balance to zero. If the product specifies a different residual rule, use that rule for the expected result.
Verify postings and failure behaviour
Trace each scheduled amount through the customer channel, collection process, loan servicing records and accounting entries. Assert that the amount presented for collection matches the amount accepted, and that principal, interest and fees are allocated as specified. Reconcile the loan balance and relevant ledger totals after each payment and after the final payment.
Include negative cases: unsupported precision, an amount below the minimum permitted repayment, a payment exceeding the outstanding balance, and a retry after a timeout. Confirm that validation or idempotent processing prevents duplicate postings and that rejected or reversed transactions leave balances consistent. These checks connect calculation tests with [banking rounding and precision testing] and wider [financial software testing].
Keep test data reproducible by recording the product configuration, currency, dates, rates and rounding settings used. When settings change, test both newly created schedules and existing loans according to the system's approved migration or servicing behaviour. Capture the calculated schedule, transaction details and ledger evidence so that any one-minor-unit difference can be traced to a specific calculation or posting step.
Frequently asked questions
Should cash collection rounding change the loan balance?
Only if the product rules explicitly treat the denomination adjustment as part of the amount owed. Otherwise, record and reconcile a cash difference separately from the contractual repayment and loan balance.
How should a reversed repayment be tested after a rounding-rule change?
Verify that reversal entries cancel the original transaction's posted amounts and retain a link to it. Recalculating the reversal under a newer rounding configuration can leave a residual, so test the system's documented reversal behaviour.
Can a spreadsheet serve as the expected-results oracle?
It can support a reference calculation if it uses documented decimal precision and rounding rules independently of the application. Validate the spreadsheet logic with reviewed examples, since shared formulas or assumptions can reproduce the same defect.
