Case Study: Merchant Residuals Calculator

The Challenge

This project is for a Fortune 500 leader in banking and payment technologies.

When the leaders of their Merchant Services (credit card processing) division made plans to grow, they knew that new software systems would need to be put in place to facilitate the growth.  One of the systems that would need to be built was a residuals (commission) calculator.

The residuals calculator is responsible for taking input data from the credit card processing companies, combining that information with payee profiles, and finally calculating the income, fees, and net payout for each merchant and payee in the system.  When the customer first came to Level 12, that process was handled manually in Excel spreadsheets.  But, they knew that process would not scale and a fully automated system would need to be created.  In addition, they wanted their customers (the payees) to be automatically notified by email when residuals reports were ready and to be able to login to the web application to download their monthly payout statements.

In addition to the core functionality requested, the application would need to conform to a number of corporate IT policies that covered:

  • the handling of Non-Public Information (NPI)
  • user login and passwords policies and expiration
  • encryption standards for sensitive information
  • expiration of sensitive data

It would also need to have a flexible permission system to accommodate different user types and have hierarchy aware access to residuals and payee data.

The Solution

Due to our prior experience building software for the merchant services industry, we were able to jump into the project quickly and begin working on a Minimum Viable Product (MVP) of the residuals calculator system.  That MVP included:

  • refining and further documenting the specification of how residuals were calculated in the then-current manual system
  • automated and encrypted transfer of data files from the customer’s servers to ours
  • parsing of multi-line, fixed-width record format input files (holdovers from the mainframe era)
  • creation of payee profiles and related payment settings for all payees
  • creation of the residuals calculator engine
  • generation of payee residuals reports

After the MVP was delivered, we started to validate the system’s residuals calculations against the data that was being calculated manually in Excel.  All discrepancies were noted and fixed and this process was repeated for several months to ensure that all variations in the residuals input data were accounted for in the new calculator engine.  This iteration was necessarybecause our customer did not have a formal specification for how to calculate residuals.  The residuals calculation process was very ad-hoc and had been created over time.  Therefore, it took several months of running the calculator against live data to find the many edge cases.

Approximately six months into development, the calculator reached a stable state and was able to replace the manual process in use at the time for calculating residuals.  We then got to work on building out the customer facing side of the application, enhancing reporting, and implementing the rest of the features that were needed for corporate IT compliance prior to the application being made generally available.

About nine months into this project, our customer awarded us three additional projects for the following year.

Project Screenshot

Industry
Industry:
Financial: Merchant Services


Wallet
Size:
$500K – 750K


Calendar
Time Frame:
18 Months


Calendar
Testing:
1,650+ Tests
93% Code Coverage


TECHNOLOGY STACK

Bootstrap
Flask
HTML5
NginX
PostgresSQL
Python
SQL Alchemy
Ubuntu Linux OS

Other Technology: Celery, WTForms, py.test
3rd Party Services: CircleCI, CodCov, Sentry, Mailgun