Special Pay is additional pay that is awarded to an employee as a result of a special assignment. This additional pay recognizes the special conditions in which the employee will be working.
For example, an employee who is assigned to work in a place with hazardous conditions may receive a 10% premium in addition to his base pay. The employee’s Base Rate of 15.00/hour will be multiplied by this premium amount and his Special Pay Rate will be 1.50/hour. On a day when the employee works 9 hours, his regular pay will be 15.00/hour * 9 hours = 135.00. The Special Pay for these hours will be 1.50 * 9 hours = 13.50. Note that this example assumes the number of hours for which the employee can receive Special Pay is unlimited. If the employee can only receive Special Pay for a limited number of hours, his Special Pay Rate will be prorated. These scenarios are explained in more detail below.
This section explains how to configure the Special Pay feature.
See Also:
Configure a Pay Policy for Special Pay
Limited and Unlimited Special Pay
Enable the Premium Code Event Prompt
Export the Special Pay Premium Codes
Special Pay premiums are calculated for employees assigned to Pay Policies that have Special Pay enabled. You will need to configure the following settings in a Pay Policy to enable Special Pay:
Check the Special Pay box to enable Special Pay for the Pay Group. When this box is checked, the SPECIAL_PAY service can process records for the Pay Group.
Set the Special Pay Limit, if any.
Special Pay Limit defines the maximum number of hours in the pay week or pay period for which an employee can receive the premium for Special Pay. For example, an employee may work 120 hours in a pay period and when these hours are entered in the timecard, they are all given the Premium Code “D” indicating Special Pay. However, the employee’s Pay Policy has a Special Pay Limit of 80 hours. When the SPECIAL_PAY service runs, it prorates the employee’s Special Pay rate based on this limit.
See Limited and Unlimited Special Pay for more information.
If you want to limit the number of Special Pay hours that can be compensated, select whether the Special Pay Limit will be a Flat Value or the Pay Period Scheduled Paid hours.
If you selected Flat Value as your Special Pay Limit, enter this hours limit in the Special Flat Limit box.
Use the Special Pay Locks field to indicate whether the timecard must be payroll locked and/or signed for the SPECIAL_PAY service to process the transactions.
The Special Pay Range is used by the SPECIAL_PAY service and its PERIOD parameter to select which transactions to process. These settings determine whether Special Pay is calculated for all the transactions in a pay period or for the transactions in a single week of the pay period. See SPECIAL_PAY Service Parameters for more information.
When you enable Special Pay in a Pay Policy, you can define the Special Pay as Unlimited or Limited (based on a Flat Value or the Pay Period Scheduled Paid hours) via the Special Pay Limit field. The Special Pay Limit is used to determine how the Special Pay Premium is applied.
If Special Pay Limit is Unlimited, then all the hours that an employee reports with a Special Pay Premium Code will receive the Special Pay premium.
For example, a person’s Base Rate is 15.00 an hour, the Premium Code amount is 10%, and the person works 9 hours in one day (all 9 hours have the Special Pay Premium Code). The employee’s regular pay amount will be 15.00/hr * 9 hours = 135.00. The employee’s Special Pay amount will be (15.00/hr) * (10% Premium Code) * (9 hours) = 13.50. Likewise, if the Premium Code amount is a flat rate of 10.00, the employee’s Special Pay amount will be 10.00/hr * 9 hours = 90.00.
Note: The Premium Code amount (a percentage or flat rate) is determined by configurations in the Premium Master, Charge Element, and Element Premium/Rate forms. See Define the Premium Codes for more information.
If Special Pay Limit is Flat Value or Pay Period Scheduled Paid, and the number of hours in the pay period that have a Special Pay Premium Code exceeds the Special Pay limit, the Special Pay Rate will be prorated based on this limit.
This Special Pay Rate will be the Special Pay Rate * (Special Pay Limit/Total Hours with Special Pay Premium Code).
For example, the employee’s base rate is 15.00/hour and the employee works 80 hours in the pay period. All 80 hours have the Special Pay Premium Code but the employee’s Pay Policy has a Special Pay Limit of 40 hours.
On a day when the employee works 9 hours:
If the Premium Code Amount is 10%, the Special Pay Rate is calculated as 15.00/hr * 10% * (40/80) = 0.75/hr. The employee’s Special Pay on this day will be 0.75/hr * 9 hours = 6.75.
If the Premium Code Amount is Flat amount of 10.00, the Special Pay Rate is calculated as 10.00/hr * (40/80) = 5.00/hr. The employee’s Special Pay on this day will be 5.00/hr * 9 hours = 45.00.
To define the premium codes used for reporting Special Pay transactions, you need to define the Premiums, define the Premium Code charge elements, and then assign the Premiums to the Premium Codes.
Note: You can also import premium codes by creating a Charge Element import in the Import Definition form.
To define the premiums, use the Premium Master form (Main Menu > Administration > Charge Element > Premium Master). The Premium Master form determines whether the premium will be a flat amount or a percentage; the actual premium amount is defined in the Element Premium/Rate tab of the Charge Element form.
To define the Premium Codes, use the Charge Element form (Main Menu > Administration > Charge Element > Charge Element).
To assign one or more premiums to a Premium Code, use the Element Premium/Rate tab in the Charge Element form.
Example
Employees are assigned to work in an area with high temperatures and aggressive insects (Miami Beach). The employees receive Special Pay premiums for this work.
In the Premium Master form, two premiums are defined for this assignment: SUNBURN (a Percentage premium) and MOSQUITO (a Flat premium).
In the Charge Element form, a PREMIUM_CODE named MiamiBeach is defined.
In the Element Premium/Rate tab of the Charge Element form, the SUNBURN and MOSQUITO premiums are added to the MiamiBeach PREMIUM_CODE. SUNBURN has a (percentage) premium amount of 10 and MOSQUITO has a (flat) premium amount of 5.
A person’s Base Rate is 45.00 an hour and the person works 9 hours in one day (all 9 hours have the MiamiBeach PREMIUM_CODE). For the SUNBURN premium, the employee’s Special Pay amount will be (45.00/hr) * (10% Premium Code) * (9 hours) = 40.5. For the MOSQUITO premium, the employee’s Special Pay amount will be 5.00/hr * 9 hours = 45.
Note that the above example assumes Special Pay is unlimited; if the employee can only receive Special Pay for a limited number of hours, his or her Special Pay Rate will be prorated. See Limited and Unlimited Special Pay for more information.
The Premium Code event prompt (F_SPECIAL_PAY) will prompt a user for a Premium Code for hours that should receive Special Pay. Transactions with this premium code can be processed by the SPECIAL_PAY service.
The Premium Code event prompt can be enabled for any event. By default, the prompt is not included with any event.
You will need to add this prompt (F_SPECIAL_PAY) to any event for which Special Pay will be reported. To do so, use the Prompt tab of the Events form.
To control which persons will see the Premium Code prompt when posting the event, you can use the Person on Add, Person on Modify, Manager on Add, and Manager on Modify options in the Prompt tab.
Set the Valid Value option in the Prompt tab to Premium Code Valid Values. This option will display the available premiums in a drop-down list when the event is posted.
Set the Charge Type and Element Name options in the Prompt tab to PREMIUM_CODE. These options will ensure that the Premium Code event prompt displays Premium Codes in the list box.
The SPECIAL_PAY service is used to process transactions that have a Premium Code for Special Pay.
The SPECIAL_PAY service will only process the transactions of employees assigned to Pay Policies that have Special Pay enabled.
Make sure you run the SPECIAL_PAY service before you run your Payroll Export.
You must configure three parameters for this service:
PAY_POLICY: Select the Pay Policies that will be processed by the SPECIAL_PAY service; make sure these Pay Policies have Special Pay enabled. If no Pay Policies are in the Selected column for this parameter, the SPECIAL_PAY service will process all Pay Policies that have Special Pay enabled. Note that the MAXIMUM_TIME parameter (see below) also determines which of the selected Pay Policies will be processed by the SPECIAL_PAY service.
PERIOD: Select whether the SPECIAL_PAY service will process transactions in the PREVIOUS pay week or pay period or the CURRENT pay week or pay period (as well as earlier periods or weeks). The service selects the transactions to process based on the PERIOD parameter and the Special Pay Range (Period, Week, or Period Incremental Week) in the Pay Policy.
MAXIMUM_TIME: Select whether the SPECIAL_PAY service will process Pay Policies that have Special Pay Limit set to UNLIMITED or to Flat Value/Pay Period Schedule Paid (LIMITED).
You can check to see whether a transaction has been processed by the SPECIAL_PAY service by checking the Transaction Process Status tab in the Transaction Details form. The Process Name SPECIAL_PAY will show a status of R if it is ready to be processed, and C when processing is complete.
When the service finishes processing, the Special Pay rates and amounts will display in the Transaction Duration Detail tab of the Transaction Details form.
To export the Special Pay rates and amounts with your transactions, you need to use the Is Record Type operand in your Export Ruleset. This operand checks to see if a transaction has a specific premium, such as Special Pay.
Example:
The following rule exports the payroll amount for transactions with the Special Pay premium called SP_PREMIUM.
IF:
Is Duration Not Zero( )
And
Is Record Type(SP_PREMIUM )
THEN:
Set Output Double( Get Duration Detail Payroll Rate( ) Multiply Get Duration(
) )
And
Stop Processing( )