Test 3 - Paid After Termination

In our last test, Paid Before Hired, we looked for any employees who might have been paid before their official hire date. Not surprisingly, we didn't identify any issues. Today, we're going to be looking for a much more common issue: employees paid after their termination date. In our data, the final paycheques are issued on the pay date (last working day of each month) following the termination date. So, we can create a computed field that looks for any issues where an employee was paid after the month that they were terminated in.

Calculating the date of the last day of each month could get tricky, but, luckily, we can use the EOMONTH( ) function to identify the first of the month following the employee's termination date. Then, we can look for any issues where the employee was paid on or after the first of the month following their termination date.

Risk

Employees are paid after their termination date.

Objective

Identify employees who were paid in the month following their termination date.

Preparing Data

If you've been with us since the last episode in our Payroll Series, you've already related the Empmast table with the Payroll table, using the Employee Number as the key field. If you're just joining us now, ensure that you create this relationship.

Analyzing Data

  1. We're only interested in the terminated employees, so we'll apply a filter to so that we're left with only the employees who have a termination date and extract them to a new table, t_TermEmps. Ensure that you use the Fields option, and select all of the fields from the Payroll table as well as the Empmast table.

    • Empmast.termination_date <> `19000101`
  2. In our t_TermEmps table, we'll use the EOMONTH( ) function to create a computed field, c_MonthAfterTerm, to identify the first of the month following the employee's termination date:

    • EOMONTH( termination_date ) + 1
  3. Now we can apply our computed field, c_MonthAfterTerm, as a filter to identify employees paid on or after the first of the month following the employee's termination date, and extract the results to a new table, r_EmpPaidAfterTerm:

    • paydate >= c_MonthAfterTerm 

Conclusion

If employees receive pay after their termination, it could be a sign of fraud, or a lack of communication between the Human Resources and Payroll departments. Quite often, when employees switch departments, a new employee number is created for them, so their old employee number may show up as "terminated." It's important to keep potential false positives like this in mind, particularly if they may be indicative of process flaws. 
  
Beyond genuine mistakes, there is the possibility of collusion. Consider a current employee who colludes with the terminated employee to postpone their termination date in the system in order to allow payments to continue. The terminated employee becomes a phantom (ghost) employee. Why would an employee make this agreement? It could be for any number of reasons, but, most commonly, they're receiving a cut of the continued pay. If this is the case, the termination date may be set to several pay periods in the future. An excessive number of days between today and the termination date is a possible indicator of this form of fraud. 
 
On the other hand, there might not even be a termination date, which would make the phantom employee much more difficult to find. Stay tuned for more phantom employee tests!