We are often asked if we really do full pay compares each release for ALL customers, and the answer is YES! If we make a change that affects the pay compute code, then we run pay compares for that release. Since pay compares are something that I happen to know inside and out, I thought I would take a few minutes to describe the process. First, we work with customers to get a copy of their production database restored to their test SQL server. This becomes the target database which is running the current release of software. Then using stored procedures, we roll the most current pay dates back to a status of Open. Normally, we will use a mid-month and end-of-month pay date for each customer, but it depends on each customer’s setup. Once the pay dates are at a status of Open, we compute pay. Next, we make a copy of this target database, creating a new database for the test release. We then run a database script on the new test release db with all of the pay compute changes, and compute pay again for the same pay dates used in the target database.
Finally, once pay has been computed on both the target and test release databases, a query is run that compares the data on both databases. The results are then evaluated for differences for each and every customer. We look at these differences and determine if the change in pay, which may only be $0.01, is expected and acceptable due to a CR change. If the change is not expected, the scenario is sent to development for a fix and the process is run again and again until we are happy with the results.
Our query looks for differences across the board in payroll – net pay, gross pay, retirement pay rates, retirement earnings, contribution and deduction amounts, benefit amounts, and payroll errors, just to name a few. The process is not quick. Depending on the types of changes in a given release, we may have to look at hundreds of differences for each customer, but making sure the changes we make to pay compute doesn’t negatively affect our customers based on their payroll setup is extremely important to us!