Public Holidays
Public holidays affect both time and attendance calculations and payroll. This page covers the legal rules, how AllWage handles public holidays automatically, the metrics you should review, and how to swap or suppress a public holiday when needed.
Legal Framework
The Basic Conditions of Employment Act (BCEA), Section 18 governs how employees must be paid on public holidays. The Public Holidays Act governs which days are public holidays and allows employers and employees to agree to exchange a public holiday for another day.
An employer may not require an employee to work on a public holiday except in accordance with an agreement.
Public Holidays on Regular Working Days
A regular working day is a day that the employee is normally scheduled to work. For most operations this is Monday to Friday, but many industries β particularly retail, hospitality, and continuous operations β include Saturdays and even Sundays as regular working days. What matters is what the employee's schedule defines as a normal working day, not what the calendar says.
If a public holiday falls on a regular working day:
Employee does not work β They must still be paid at least their normal daily wage. The holiday does not reduce their pay.
Employee works β They must be paid at least double their normal daily wage.
Employee works overtime β Overtime hours are also compensated at double the rate.
Example: A public holiday falls on a Wednesday. The employee's normal shift is 8 hours.
Employee doesn't work: Paid 8 hours at normal rate
Employee works 8 hours: Paid 8 hours at normal rate plus 8 hours at normal rate = 16 hours total (double pay)
Employee works 10 hours: Paid 16 hours (double for the regular 8) plus 2 hours overtime at double rate
Public Holidays on Optional Working Days
An optional working day is a day the employee would not normally work β typically a Saturday for Monday-to-Friday employees. In AllWage, these are configured as part of the clock template when certain days are marked as optional.
If a public holiday falls on an optional working day:
Employee does not work β No payment is required. Since they would not have worked that day anyway, the public holiday does not create an obligation.
Employee works β They must be paid at double the rate for all hours worked.
Example: A public holiday falls on a Saturday. Saturday is an optional working day for the team.
Employee doesn't work: No pay for that day
Employee works 6 hours: Paid 6 hours at double rate = 12 hours equivalent
Public Holidays That Fall on a Sunday
When a public holiday falls on a Sunday, the following Monday is also declared a public holiday. Both the Sunday and the Monday are separate public holidays β the Monday is not a replacement for the Sunday.
For operations where Sunday is a regular or optional working day:
An employee who works on the Sunday must be compensated under the normal public holiday rules for that day
An employee who works on the Monday must also be compensated β it is its own public holiday
An employee who works both days has worked two public holidays and must be compensated for each one separately
Example: Freedom Day (27 April) falls on a Sunday. Monday 28 April is declared a public holiday.
A hospitality employee works both days β each day is treated as a separate public holiday with its own pay entitlement
An office employee who only works Monday to Friday is not affected by the Sunday holiday but must be paid for the Monday public holiday as normal
Shifts That Span Midnight
When a shift crosses midnight into or out of a public holiday:
The whole shift is treated as a public holiday shift
Exception: If the greater portion of the shift was worked on the normal day, the whole shift is treated as a normal day
Example: An employee works a night shift from 18:00 on Tuesday to 02:00 on Wednesday. Wednesday is a public holiday. The shift is 8 hours: 6 hours on Tuesday, 2 hours on Wednesday. Since the greater portion (6 hours) was on the normal day, the whole shift is treated as a normal day.
How AllWage Handles Public Holidays Automatically
AllWage knows all South African public holidays. When a public holiday falls on a day that is a required working day for an employee, the system automatically:
Prevents the employee from being marked as absent. Employees cannot be absent on a public holiday.
Displays the public holiday name in the employee's cell on the Employee Overview Report, under the column for that specific day.
Shows the required working hours next to the public holiday name. This indicates the hours the employee is entitled to be paid if they do not come to work.
Lists actual clocked hours separately in the same cell if the employee does work on that day.
No configuration is needed. As long as the employee has a clock template assigned with the correct working days, the system handles it.
Time & Attendance Metrics
When employees work on a public holiday, AllWage calculates the following metrics visible on the Employee Overview Report:
Public Holiday Budget Hours (Required Days)
The hours the employee was required to work if the public holiday falls on a required working day. This is what the employee is entitled to be paid regardless of whether they come to work.
Public Holiday Clocked Hours
The actual hours worked on the public holiday, broken into three metrics:
Normal Hours β Hours worked up to and including the budget hours for that day
Overtime β All hours worked beyond the budget hours. Overtime on a public holiday should always be compensated at double the rate
Total Hours β Normal hours plus overtime combined
Public Holiday Optional Hours
All hours worked on a public holiday that falls on an optional working day. This includes both normal and overtime hours in a single metric, because all hours worked on an optional public holiday should be compensated at double the rate.
Example: Public Holiday on a Required Working Day
Thursday is a required working day. The employee is required to work 9 hours. Thursday is a public holiday. The employee comes to work and clocks 10 hours.
Public Holiday Budget Hours: 9 β The hours they are required to work, paid regardless of attendance
Public Holiday Clocked Normal: 9 β Hours worked up to the budget
Public Holiday Clocked Overtime: 1 β Hours worked beyond the budget
Public Holiday Clocked Total: 10 β Normal + overtime
Public Holiday Optional Hours: 0 β Not an optional day
To calculate the correct pay: the employee must be compensated for the 9 budget hours, plus 9 normal hours worked, plus 1 overtime hour at double the rate. That is effectively 20 hours of pay for that day.
Example: Public Holiday on an Optional Working Day
Saturday is an optional working day. The employee is not required to work. Saturday is a public holiday. The employee comes in and works 6 hours.
Public Holiday Budget Hours: 0 β No budget, the day is optional
Public Holiday Clocked Normal: 0 β Not applicable for optional days
Public Holiday Clocked Overtime: 0 β Not applicable for optional days
Public Holiday Clocked Total: 0 β Not applicable for optional days
Public Holiday Optional Hours: 6 β All hours on an optional public holiday
To calculate the correct pay: the 6 optional hours must all be compensated at double the rate β effectively 12 hours of pay.
Exporting Public Holiday Data
If you do not use AllWage payroll, use the Time & Attendance metrics export and select the relevant public holiday metrics for the period. This exports all values in Excel format for processing in your external payroll system.
Payroll Configuration
When configuring public holiday pay in your payroll templates, ensure that all four metric categories are included:
Budget Hours β So employees are paid for the public holiday regardless of whether they work
Clocked Normal Hours β The additional compensation for hours worked on the public holiday
Clocked Overtime β Must be at double the rate. If overtime hours are already included in another metric, add overtime at a rate of 1 to ensure it totals double
Optional Hours β Must be linked at double the rate for all hours clocked on an optional public holiday
For detailed guidance on setting up public holiday input templates, refer to the payroll input templates documentation.
Exchanging a Public Holiday for Another Day
The Public Holidays Act permits an employer and employee to agree to exchange a public holiday for another day. This is common when a public holiday falls in the middle of the week and the employer prefers to move it to a Monday or Friday.
The exchange must be by agreement between the employer and the employee.
How to Swap a Public Holiday in AllWage
AllWage provides a public holiday override on the employee's hour override page. Because overrides are applied at the employee level, you can swap a holiday for one team without affecting the rest of the company.
Watch our video here:
The override has three options:
Default β No override. The system checks the public holiday calendar as usual.
Public Holiday β The day is treated as a public holiday, regardless of the calendar. A description is required (e.g., "Youth Day β swapped from 16 June").
Normal Day β Any public holiday on that day is suppressed. The day is treated as a normal working day.
Swapping a Public Holiday
Example: Youth Day (16 June) falls on a Wednesday. The employer and employees agree to observe the holiday on Friday 18 June instead.
Step 1 β Suppress the original public holiday:
Navigate to the employee's hour override page
Create an override for 16 June
Set the public holiday dropdown to Normal Day
The employee is now expected to clock in on 16 June as usual
Step 2 β Add the public holiday to the new day:
Create an override for 18 June
Set the public holiday dropdown to Public Holiday
Enter a description: "Youth Day β swapped from 16 June"
The employee will not be marked absent on 18 June, and all public holiday pay rules apply to this day
Step 3 β Apply to all affected employees:
At the top of the Employee Overview Report, each date column has a cogwheel icon. Click it and select Add override for all employees to apply the override to every employee currently shown in the report. If you only need to override a subset of employees, filter the report by team or specific employee first, then use the bulk option.
No changes to pay run templates or input templates are needed. The system automatically adjusts β public holiday metrics will appear on the new day, and the original day will be treated as a normal working day.
Suppressing a Public Holiday Without a Swap
If the employer requires employees to work on a public holiday and has agreed with employees that the day will be treated as a normal working day:
Navigate to the employee's hour override page
Create an override for the public holiday date
Set the public holiday dropdown to Normal Day
The day is treated as a normal working day β the employee is expected to clock in, normal absence rules apply, and no public holiday metrics are generated
To apply in bulk, use the cogwheel on the date column in the Employee Overview Report.
What the Override Changes
When you set an override, the system adjusts everything downstream automatically:
Employee Overview Report β The public holiday name and metrics appear on the overridden day, not the calendar day
Absence detection β The employee is not marked absent on the day marked as a public holiday, and normal absence rules apply on the day marked as a normal day
Leave calculations β Leave is not deducted on a day marked as a public holiday
Pay run templates β Public holiday input templates fire on the overridden day, not the calendar day
Payslip β The public holiday description you entered appears on the payslip for the overridden day
Both steps are needed for a swap. If you only suppress the original day but don't add the holiday to the new day, the employee loses the public holiday entirely. If you only add the new day but don't suppress the original, the employee gets two public holidays.
Last updated
Was this helpful?
