Compensation rules

Updated 1 month ago by Stephan Hale

Overview and use cases

Compensation rules are rules that define a reimbursement an employee is entitled to within Quinyx WFM.

One use case for this is bank holidays where employees should be reimbursed on the bank holiday based on salary types generated in a period before the bank holiday. Another use case is that employees should be reimbursed on the bank holiday based on how many hours they have worked during a period before the bank holiday.

Currently the compensation rules is only supported as outcomes on a bank holiday. Compensation rules can be used together with eligibility rules to be able to define if an employee should be compensated at all for the bank holiday. If parallel agreements are used the bank holidays needs to be specified on the agreement templates to be fully supported.

Average of salary types or worked time

Quinyx supports compensation calculation based on two different options. Calculation is either made based on the average of generated salary types for the defined period or worked time during the defined period. The difference is that 8 hours of worked time can produce very different amounts of salary types depending on agreement settings and rules.

Example 1 : Average of salary types

An employee should be reimbursed an average of selected generated salary types based on worked days in the last 4 weeks leading up to the bank holiday.

The employee in this case has worked a total of 15 days in the last 4 weeks prior to the bank holiday. The employee has had the following salary types generated in that period:

  • Hourly salary - 100 : (Standard code 1000)
  • Hourly salary exceeding schedule - 21 : (Standard code 1001)
  • UT-1 additional compensation - 15 : (Standard code 1050)

In the example above we can break it down into the following parts

  • Selected salary types
    • This allows for defining exactly what salary types should be used in the average calculation. In our example we only want to compensate the average of the Hourly salary and Hourly salary exceeding schedule (1000,1001).
    • NOTE : All salary types in the list will be used as a base for calculation regardless of how they have been generated unless they are generated from an item outside the definition of a working day.
  • Last 4 weeks : This is the definition of periodType (options are days, weeks, full weeks) and periodLength (Depending on 'periodType', number of days or number of weeks).
  • Punched 15 days : The amount of days to calculate the average on.

Definition of days to calculate average salary types

The working day definition of days to divide the amount of salary types are defined as follows:

  • A shift that has a punch that generates at least one of the selected salary types.
  • Day with only a punch  that generates at least one of the selected salary types.
  • Day with an absence that generates at least one of the selected salary types.
    • NOTE : Default NOT used for calculation of a worked day unless:
      • Additional option to define specific absences should be counted as a worked day is used. Then those specific absences counts as a worked day.
      • Additional option to include all absences that count as worked hours is used. Then all absences that are counted as worked hours will be used for calculations.
        • This cannot be used at the same time as specific absences defined to be counted as a working day.
  • A virtual shift that generates at least one of the selected salary types counts as a working day unless:
    • Additional option to have virtual shifts NOT count as worked day is used.
Exception : A day when there is a shift and a "regular" bank holiday rule that generates salary types (even if defined) is NOT used for calculation as a working day.
Outcome on the bank holiday

The outcome in the example above will be that on the bank holiday the following salary types and amounts will be generated for the employee regardless if the employee works or not on this day.

  • Hourly salary - 6.67 (100 / 15)
  • Hourly salary exceeding schedule - 1.4 (21 / 15)

Example 2 : Average of hours

An employee should be reimbursed an average of worked hours based on worked time on the same day as the bank holiday, in the last 13 weeks leading up to the bank holiday. But if the employee works on the bank holiday these hours should be deducted from the compensation.

For this example the bank holiday is on a Friday.

The employee in this case has worked a total of 8 Fridays in the last 13 weeks prior to the bank holiday. The employee is not scheduled to work, or does not work on the bank holiday. And the generated compensation should be salary type 1337. The employee had the following worked time for those Fridays:

  • Punched time : 34 hours
  • Absence hours : 6 hours

In the example above we can break it down into the following parts

  • worked hours : This shows that we need to base the average calculation based on time calculated as worked hours during the period and not generated salary types.
  • Same day as : This means that we only should count the worked hours on those days that are the same weekday as the bank holiday we are defining the compensation on. In this case Fridays
  • Last 13 weeks : This is the period for where we should calculate the worked hours in the Fridays within.
  • Deduct worked hours : This means that if the calculated reimbursement for this day is 5 hours but the employee works 4 hours on the bank holiday. The employee will be compensated with 1 hour from the compensation logic and the worked 4 hours according to agreement and bank holiday settings.

Definition of days to calculate average hours

The definition of days to divide the amount of worked hours is defined as follows:

  • A shift that has a punch where the shift counts as worked hours.
  • Day with only a punch.
  • Day with an absence.
    • NOTE : Default NOT used for calculation of a worked day unless:
      • Additional option to define specific absences should be counted as a worked day is used. Then those specific absences counts as a worked day if they are “count as worked hours”
      • Additional option to include all absences that count as worked hours is used. Then all absences that are counted as worked hours will be used for calculations.
        • This cannot be used at the same time as specific absences defined to be counted as a working day.

Outcome on the bank holiday

The outcome in example 2 above will be that on the bank holiday the following amount will be generated for the employee.

If the employee does NOT works on the bank holiday and the absence is defined as an absence to count as worked hours. the employee will be compensated with salary type 1337 : 5

If the employee works 4 hours on the bank holiday and the absence is defined as an absence to count as worked hours. the employee will be compensated with salary type 1337 : 1

Additional options

There are options that can be selected

  • allowedAbsences : This option allows for definition of absence types that will count as a worked day in the calculation. If left empty NO absences counts as a worked day.
  • fixedNrOfWorkedDays : If this is set it will override the actual number of calculated worked days .
  • percentageOfSummedSalaries: if this is set the calculation will be the amount of salary  hours * (percentageOfSummedSalaries / 100).
    You can’t set both fixedNrOfWorkedDays and percentageOfSummedSalaries at the same time.


How Did We Do?