A merchant processing company had retained us to build and maintain their residual (commission) reporting system since early 2008.
As time went on, the system was regularly expanded to handle additional calculations and logic related to the payment residuals. Unfortunately, the way the system was originally built was not ideal for the volume and complexity of calculations that were eventually asked of it.
As the system aged and the size of data grew, the calculations began to take longer and longer and the server resources used grew larger and larger. In addition, the needs of the customer were changing. Their monthly residuals process involved manually editing the Excel reports after they were generated to handle edge cases that the residuals calculator didn’t know about or didn’t have the data to handle. This meant that the actual residuals amounts paid to the customer would vary between the file and that data in the database, leading to difficulties when trying to report on residuals.
As time progressed, our customer desired to extend their residual reporting with more complex pricing options than the original system could support. In addition to this, their residuals team was constantly stretched to complete their monthly reporting cycle due to the amount of manual intervention needed. Reducing this workload was a priority, and would require a new reporting process. The need to be able to ensure that the calculated residuals numbers were correct, as well as the reports themselves, also rose in importance.
In 2014, after years of recommending an overhaul of this system, our customer was able to allocate the funds necessary to begin working on the project. The top priorities were:
- All residuals related calculations had to happen in the system. No more edits to the Excel reports after they were generated.
- The final residuals calculations would need to be stored in the database for easy reporting.
- Performance would need to be increased significantly.
- Feature enhancements that would make the calculation process more accurate and prevent or detect errors.
- Add non-bankcard payment products to the residuals reports.