Holiday shifts
A shift worked on a public holiday, priced at the holiday rate.
Overtime duties
A duty request approved on top of the normal roster.
Shift extensions
Time added before or after a scheduled shift.
Work requests
An ad hoc extra shift, called in on what was a day off.
Each pipeline resolves independently to your own payroll code, including a first-hour premium where a labour agreement pays a higher rate for the first hour of overtime than the rest. That matters because a shift extension worked on a public holiday is not paid like an ordinary shift extension, and a system with one overtime bucket has to fudge the difference. This one doesn't.
Where the boundary falls: day, night, banked, paid
Two more decisions happen automatically on every overtime line. First, the day/night split: any period of overtime that crosses your configured night-shift boundary is split into separate day and night line items, each carrying its own rate, including a shift that runs across midnight. configured
Second, the banked-versus-paid decision. At approval time, the system checks the employee's Bank of Working Hours (BWH) balance. Enough balance to cover the whole extra shift, and it books as banked hours, no overtime. A partial balance splits the shift: part banked, part overtime for the remainder. No balance, and the whole thing books as overtime. Nobody decides which bucket a shift falls into by hand; the balance decides it, though either the employee or their manager can still force a shift onto the pure-overtime path when the contract calls for it.
Compensatory time off, mirrored automatically
For employees whose contract lets them bank time off instead of being paid, every overtime line is automatically duplicated as a Compensatory Time Off (CTO) entry at the configured compensatory rate. You don't reclassify anything by hand. Whether it was paid or banked was decided by the employee's contract and their BWH balance, not by whoever happened to run that week's export.
Meal allowances, computed, not remembered
Every work period is checked against your configured meal-time window. Overlap it for long enough and the allowance applies automatically, with different rules for holidays and normal days and per request type. Nobody has to remember that the 14:00 to 22:00 shift crosses the dinner window and the 22:00 to 06:00 one doesn't.