Below is a list of concepts and conditions that you may come across when using the Rules feature in QuickBooks Online Advanced Payroll powered by Employment Hero.
- All rules are in the format
- All rules are executed sequentially, from top to bottom
- As the rules are executed, the shift will be broken up into segments that match particular rules. The general process is that pay categories will be assigned to these shift segments
- Allowances may be added to a shift
- All rules are written in the format of "when _____ , then _____ ."
- All rules are executed sequentially from top to bottom.
- All rules must be met in order for an action to be carried out.
- As the rules are executed, the shift will be broken up into segments that match particular rules. The general process is that pay categories will be assigned to these shift segments.
- Allowances may be added to a shift.
This condition will always return the entire shift. It is useful for rules that should always be executed (for example ‘Always apply a break of 30 minutes for every 5 hours+30 minutes worked’).
This condition will return the ‘union’ of shift segments for all of the conditions added to it.
For example, let’s suppose there is a shift – Sunday 9pm – Monday 5am. If one of the sub-conditions returned Sunday 9pm – Monday 1am and the other sub-condition returned Monday midnight – Monday 3am, then the result of this combined condition would be Sunday 9pm – Monday 3am.
This condition will return the ‘intersection’ shift segments for all of the conditions added to it.
For example, let’s suppose there is a shift – Sunday 9pm – Monday 5am. If one of the sub-conditions returned Sunday 9pm – Monday 1am and the other sub-condition returned Monday midnight – Monday 3am, then the result of this combined condition would be Monday midnight – Monday 1am.
This condition checks the duration of the shift. If the duration exceeds the specified parameters, the entire shift is passed to the action. (i.e. NOT just the part of the shift that exceeds the specified parameters)
This condition checks the public holiday calendar of the business to determine if the shift (or part thereof) lies on a public holiday. The matching shift segments will be passed to the action. There is also the option to match where the majority of the shift lies on a public holiday, which matches the entire shift if 50% or more of the shift lies on a public holiday.
Day of the Week
This condition matches the (parts of) the shift that occur on the specified days of the week. The matching shift segments will be passed to the action. There is also the option to match where the majority of the shift lies on a particular day, which matches the entire shift if 50% or more of the shift lies on the chosen day.
Time of day
This condition matches the (parts of) the shift that occur on the specified time of the day. The matching shift segments will be passed to the action.
This condition matches the specific hours worked in a shift. For example it could be configured to return hours 0-3 (i.e. the first 3 hours of a shift). It could also be configured to return hours 8+ (i.e. all of the shift after the first 8 hours). The matching shift segment will be passed to the action.
Time period worked
There are some pay conditions that enforce that if an employee works, for example, more than 152 hours in a month then any subsequent hours are paid at overtime rates. The pay condition rule set configuration page allows you to configure what the ‘period’ is for the purposes of rules like this (eg: weekly, fortnightly, monthly).
Only the part of the shift that exceeds the specified amount will be passed to the action.
Time since previous shift
This condition tests that the time since the previous shift is less than (or greater than) a specified amount. If the condition passes, the entire shift will be passed to the action.
First shift of the day
This condition tests that this shift is the first shift of the day. It can be useful for rules that only apply once per day. If the condition passes, the entire shift will be passed to the action.
This condition checks the work type that is associated with the shift. If the condition passes, the entire shift will be passed to the action.
It can also be used to test whether a work type is linked to a pay category or to a leave category.
This condition checks the location that is associated with the shift. If the condition passes, the entire shift will be passed to the action.
This condition checks the employment type of the employee that is performing the shift. If the condition passes, the entire shift will be passed to the action.
This condition checks the pay category that is associated with the shift segments. Any segments that have the specified pay category assigned will be passed to the action.
Note: Any rules that check for a pay category should be moved to late in the rule set to allow earlier rules to actually assign a pay category.
This condition will try and match shifts that do or don't have this feature first, and then will only use those if it can't find a preference.
Shift spans midnight
If the shift spans midnight (eg: 9pm - 4am), this condition will match the part of the shift after midnight (eg: in this case, midnight - 4am)
This condition can check whether an employee has one or more tags associated with them. If the condition passes, the entire shift will be passed to the action.
This condition checks whether the employee is working at a higher classification for (part of) the shift. Employment agreements are given a rank and a higher rank indicates a higher classification.
A higher classification can be specified for an employee in the timesheet entry page. Please note, in order to specify a higher classification for only part of a shift:
- enter two separate timesheet lines. For example: 9am-11am at standard duties and 11am-4pm at higher duties.
- configure the shift consolidation rules so that the rules engine treats the two timesheet lines as a single shift.
This condition allows you to perform actions for when the time worked in a day, or in a week or in the shift period is greater (or less than) a specified amount.
This condition will check for split shifts - that is, shifts on the same day where there is less than a specified time between the shifts.
Shift start time
This condition matches the entire shift if the shift start time is within the specified parameters. For example, if the rule is "Shift start time is between 4am and 7am", a shift from 6am-12pm would match whilst a shift from 2am-12pm would not match.
Apply pay category
This action will assign a specified pay category to the matching shift segment. If the pay category is specified as [NONE], the shift segment will be, effectively, discarded and will not be paid. This can be useful in cases such as re-allocating overtime to a ‘time in lieu’ leave category.
Apply minimum time
This action will adjust the effective duration of the shift to a specified amount, if the shift duration is less than the specified amount. An example of where this might be used is if a casual is paid for a minimum of 3 hours work, even if their shift is less than 3 hours.
Apply shift breaks
This action will enforce unpaid breaks in the shift. An example of how this is configured would be: “Apply a 30 minute break for every 5 hours and 30 minutes worked”.
This means that, for example, a shift that was entered as 9am – 5pm would be broken up into:
- work from 9am – 2pm
- a break of 30 minutes from 2pm – 2:30pm
- work from 2:30pm – 5pm
This action basically signifies to the rules engine to stop processing any more rules for this shift. An example might be to have any ‘leave category’ related rules at the top of the rule set and to stop processing if the work type is linked to a leave category.
This action adds an allowance to a shift. The action may be configured to limit the number of allowance units; either per day or per week.
Add Leave accrual
This action allocates an amount of a specified leave category to the employee working the shift. An example of where this may be used is employees banking time-in-lieu rather than being paid overtime.
This action allows you to apply multiple actions for a specified condition.
Set rate multiplier
This action allows you to set the rate multiplier for the matching shift parts. In most cases, this is not the preferred method to assign rates to shifts. Rather, the recommended method is to assign pay categories through rules and then use pay rate templates to govern the rates paid for different pay categories.
Apply tiered overtime
This action allows multiple levels of overtime to apply to matching shift parts. For example
- For the first 2 hours, apply pay category "time and a half"
- For the remaining time, apply pay category "double time"
When this is used as part of the 'Time Worked' condition, the tiers are reset each day from the start of each shift. That is, the matching parts of Monday will have 2 hours at time and a half and the remaining at double time, then the matching parts of Tuesday will have 2 hours at time and a half and the remaining at double time.
Apply classification to whole shift
This action is only available as part of a 'Time Worked' condition. The usage is, for example:
- WHEN: Time Worked in a shift WHERE Employee is working at a higher classification is greater than 2h
- THEN: Apply classification to whole shift
Add remaining time
This action is only available as part of a 'Time Worked' condition (and should only be used with a 'less than' duration). This action will extend the effective time of the last shift to make up the remaining time. For example:
- WHEN: Time Worked in a shift WHERE Work Type is Ordinary Hours is less than than 8h
- THEN: Add remaining time
This action is only enabled for the 'Time Worked' condition. Where the time worked condition will (potentially) match a series of shift parts, the conditional action can apply different actions based on conditions.
- WHEN: Time Worked in a shift period WHERE Work Type is Ordinary Hours is greater than than 152h
- THEN: Conditional:
- If the day is Monday-Saturday, apply M-S Overtime
- If the day is Sunday, apply Sunday Overtime
Add split shift allowance
This action is only enabled for the 'Split Shift' condition. It allows you to add an allowance either to the first shift in the split shifts or to any of the split shifts that are over a certain duration.
Take higher of earnings or ordinary+loading
This action is useful for shift workers who are entitled to whatever is higher - their shift value or ordinary hours plus leave loading. It should only be used for shifts that have a work type linked to a leave category with
For this action to work correctly, rules in the rule set that assign pay categories (e.g.: time of day, day of week) should also consider this work type.
Once all of the rules have been applied, the interpreter will determine which is higher - the value of the shift as it stands with the rules applied or the amount the employee would have been paid with ordinary hours plus leave loading.
Treat breaks as paid time
Generally, breaks that are associated with a shift are not considered as paid time. In some situations though, they should be. This action will let the rule interpreter know to treat breaks as paid time. All subsequent rules will treat the breaks as a paid part of the shift and be able to assign pay categories as per normal.
Convert units to start/end times
This action is useful if you have a work type where units are entered instead of a start and finish time. This action will convert that timesheet into a shift with a notional start and finish time, allowing that shift to be subsequently used by more pay conditions e.g. hours worked, shift duration.
No break recorded
This rule is designed to be used in an "automatic meal break" rule - it will check the entire shift for breaks before adding a mandatory break, as opposed to simply adding a break if one hasn't been taken by a certain time.