Payroll: Back Pay


This article explains what Back Pay functionality in Adonis is used for and describes the needed setup and process of doing a Back Pay.


Description

Back Pay functionality allows you to "recalculate" historical wages, and find and pay out the difference into the current payroll period in a case when pay rates (in Payscale or Personal Rates) have changed for the periods that are already closed. This is usually needed when it happens so that the unions start annual negotiations of CBAs and provide employers with the new contracts saying that these new pay rates are in effect from 2 months ago.

Basically what the back pay routine does - is find out the difference in the end result amount between the historical entry calculated by the old rate - and the new rate calculation. You can preview the generated back pay entry and check that the amount found is correct - and then pay out or not.

See also https://adonishr.atlassian.net/wiki/spaces/KB/pages/3209199909 article to find out how to update the pay rates without losing the history.

Previously it was only possible to generate and pay out back pay only on employee amount, and from release v.2020.10 it is now possible to create back pay for all calculated amounts on the entry (which are 11), i.e. it is now also possible to calculate out back pay on the employer amount too.

Step-by-step guide

Setup in payroll scripts

Every entry code, that you want to pay out back pay with, requires a special payroll script setup.

When you generate back pay, the back pay entry re-calculates all amounts of an entry (1..11) and writes the calculated out back pay amounts into the fields of these 11 amounts (L1101 to L1111), which can be used in the script during calculation for further handling. When you do pay out of back pay, you need in the payroll script to set the main calculated amount of an entry code is L61 (employee amount) equal to L1101 - amount 1 generated by back pay. If you need to have the back pay on the employer amount too - you set L62=L1102, and so on. Usually, we set L22 (Days) to 0, since back pay entries do not give any new payroll days to a person.

So you can see what of the 11 amounts are calculated on the Entry Code on the Calculation tab.

Then in the main script of the entry code at the very top - before the rules for the calculation start - write the following rules for back pay.

//If it is a backpay entry, then it should ignore the script and just pay out/deduct the amount set in L21 (L1101), L1102...L1111

IF L11="Y" THEN //L11 is set to Y when the entry code is generated from the BackPay routine

L61=L1101

L62=L1102

L22=0

ELSE

Then scroll down to the bottom of the script and add a closure to the above rule as:

ENDIF

For customers with Norwegian Payroll. If the EC is setup to report days to A-melding, for example, Overtime EC, then in the script L22 should be set to 1 as reporting of 0 days is not allowed.

The script should be as follows:

IF L11="Y" THEN //L11 is set to Y when the entry code is generated from BackPay routine

L61=L1101

L62=L1102

L22=1

ELSE

Then scroll down to the bottom of the script and add a closure to the above rule as:

ENDIF

As mentioned above, before v.2020.10 it was only possible to back pay on employee amount L61. And back pay entry contained the calculated out amount in the L21 field, so in the old scripts, the rules for back pay were L61=L21. With the new implementation of backpay fields L1101..1111, to keep the functionality compatible with the existent customers using back pay, we still maintain the back pay employee amount in the L21 field in addition to the L1101 (the new field). So, the below sample scripts would still work for the existing customers.

Back Pay process

The Back Pay process consists of 2 steps:

  1. Generate Back Pay

  2. Pay Out Back Pay

Step 1. Generate Back Pay.

The routine examines the payroll history, calculates the difference between what has been paid out, and what should have been paid out for the relevant period based on the change in Personal or Payscale Rates. If Entry Code calculation rules include reading both Personal Rates and Payscale Rates, then Personal Rates have priority and will be checked first - if no changes in amounts and they are not 0, then no back pay will be generated, even if Payscale Rates have a change. 

If a person only worked during part of the period, the back pay will be calculated accordingly. In those instances where back pay should take place from a date other than the 1st of the month, the program will calculate accurate back pay based on the From and To dates for each entry (only for payroll entries that have been generated automatically from activities). If such dates can not be found, the program will calculate back pay for the part of the month which is within the back pay period.

When ordering back pay data, you need to select:

  1. Period - select historical payroll periods that need to be calculated for back pay.

  2. Entry Code - you can select one or more Entry Codes. To select more than 1 Entry Code hold down the Shift or Control buttons on your keyboard and make a selection.

  3. "Day" selection - by default it is set to "1". It is used to prorate the back pay amount according to the input day. We can think of it as the back pay start date (based on the input Day) in the period. For example, an entry has Datefrom=2020/01/01, DateTo=2020/01/20 and you have the input Day=10: the back pay amount will be prorated per day from 2020/01/10 to 2020/01/20.

  4. Payscale Table that should be used to find historical entries linked to it and recalculated, i.e. the Payscale Table where you've updated the pay rates. The historical entries will be still found an recalculated for back pay if the person's current Payscale Table has changed (promotion, etc.) The list here includes both Active and Passive Payscale Tables.
    Option to "Use current Payscale for Backpay Calculation" means that the historical payroll entries linked to the selected Payscale Table will be recalculated with the person's current Payscale Table in Personal Details (in case it has changed).

  5. Crew selection for the routine

  • Current Org. Unit - includes in back pay recalculation crew members employed (in Personal Details > Employment > Organization section) by the current opened client and company units beneath it in the organization tree.

  • Entire Crew Selection - includes all crew members listed in the currently opened crew list view.

  • Tagged Persons - includes all tagged crew members from the currently opened crew list view.

  • UnTagged Persons - includes all not-tagged crew members from the currently opened crew list view.

  • Selected Person - includes only currently selected in crew list person.

The "Debug" option is seen in this window only if you are using "Debug Mode" for your user account (can be turned on/off in User Options)

If any differences in pay amounts are found - the program will generate back pay entries and you will see them on the Back Pay tab with the details of Period of Back Pay, Entry Code number, and each amount recalculation result - Amount column shows employee amount (in the script would be L21, L1101), Amount2 column shows employer amount (L1102), etc. By default, the routine recalculates all 11 amounts of an entry, however, what amounts are to be paid out is defined in the Entry Code script as described at the beginning of this article.

If the record Is Paid column is set with flag N on this screen, it means that Back Pay entries have only been generated, but not paid out, i.e. they are not in the person's payroll yet and not included in the Payroll Entries screen.

In this screen, you can delete the generated entries if needed. To delete the entry select it and right-click, Delete option will appear, then you will be asked to confirm the action.

Note that if you've found that you've updated a pay rate wrongly, you don't need to delete the back pay entries, which have not been paid out yet, to generate a new backpay. The system will overwrite these non-paid back pay entries to generate new ones according to the updated rate.

Step 2. Pay Out Back Pay

To process the generated back pay entries to a person's current month payroll, close the Payroll module window (if you forget - no worries, the system will give you a warning to close it) and go to Back Pay > Pay Out Back Pay. You will be asked if you want to continue, as soon as you agree, the system will create back pay entries in the Payroll Entries screen for all crew who have back pay entries generated and not paid out yet. You will see the progress bar and receive a message as soon as this process is completed.

Important You need to take a calculation for all crew to make the back pay entries be calculated and included into person wages.

The back pay entry amounts will be balanced in accounting in the same way as the original entries. Their "Text" column will show that they are back paid period, this comment can be displayed on the payslip too, so that the employee knows what these amounts are for.

You will see that the status of entries in the Back Pay screen has changed from "N" to "Y" in the "Is Paid" column. You can hide the paid-out records using the respective highlighted option.


You can customize the color of the back pay entries in the Payroll options.

Reports

There are several reports that you can use to get a list of Back Pay entries only.

  • There is a Back Pay report located under Back Pay > Generate Back Pay > Report. It has a selection of periods and an option to show paid and non-paid back pay entries

     

  • You can create a separate report for back pay by selecting the 'Back Pay Entries' option whilst ordering a 'Selected Entries List' report located in Payroll > Reports > Current & Historical.