When setting up your payroll system, two configuration areas often cause confusion: Payroll Policy and Duty Schedules (Shifts). Both affect how employees are paid, but they control very different things. This guide explains both clearly, with step-by-step setup instructions and real examples.
The Core Difference
| Payroll Policy | Duty Schedule (Shift) | |
|---|---|---|
| Controls | How money is calculated — rules for dividing salary when an employee does not work a full month | How the employee is expected to work — which days and how many hours per day |
| Governs | Salary proration for new joiners, unpaid leave deductions, the divisor used in calculations | Working days, rest days, OT threshold, attendance classification |
| Think of it as | The financial rulebook | The physical work timetable |
| Set up in | Payroll Settings → Policies | Company Settings → Organization → Work Schedules |
A simple analogy: the Payroll Policy decides how much to pay per day. The Duty Schedule decides which days the employee is expected to show up and for how long. You need both working together for accurate payroll.
Part 1: Payroll Policy
What Does Payroll Policy Actually Do?
In Malaysia, when an employee joins mid-month or takes unpaid leave, you cannot simply pay them a flat amount — you must prorate their salary according to a specific formula. The Payroll Policy defines the rules for that formula.
The standard formula under the Employment Act 1955 is:
Salary Payable = (Monthly Salary ÷ Divisor) × Days Worked
The key question is: what is the divisor? That is exactly what the Payroll Policy sets.
The Three Divisor Options
Employee example: monthly salary RM 3,000, joined July 20, worked 12 days in July.
| Option | Divisor Used | Calculation | Amount Paid | Best For |
|---|---|---|---|---|
| Fixed Days (Default) | Number you set — commonly 26 per EA 1955 | 3,000 ÷ 26 × 12 | RM 1,384.62 | Most Malaysian companies. Consistent and predictable every month. |
| Calendar Days | Actual days in the month (28–31) | 3,000 ÷ 31 × 12 | RM 1,161.29 | Companies that prefer to count every calendar day including weekends. |
| Working Days | Mon–Fri days in the month | 3,000 ÷ 23 × 9 | RM 1,173.91 | Fully office-based companies where only working days are counted. |
The Employment Act 1955 specifies 26 days as the standard divisor for most calculations. Unless your company has a specific reason to use calendar or working days, Fixed Days (26) is the safest and most legally recognised choice.
Payroll Policy Also Controls Unpaid Leave
When an employee takes unpaid leave, the daily deduction uses the same formula:
Deduction = (Monthly Salary ÷ Divisor) × Unpaid Leave Days
| Employee | Monthly Salary | Unpaid Leave Days | Divisor | Deduction |
|---|---|---|---|---|
| Example A | RM 4,000 | 2 days | 26 | 4,000 ÷ 26 × 2 = RM 307.69 |
| Example B | RM 4,000 | 2 days | 30 | 4,000 ÷ 30 × 2 = RM 266.67 |
| Example C | RM 4,000 | 2 days | 31 (July) | 4,000 ÷ 31 × 2 = RM 258.06 |
The unpaid leave divisor can be set separately from the proration divisor — some companies use 26 for proration but calendar days for unpaid leave deductions, depending on their HR policy.
How to Set Up Payroll Policy
- Go to Payroll Settings in the sidebar.
- Click the Policies tab.
- Click Edit Policy on your active policy (or create a new one).
- Set the Salary Proration method. If you choose Fixed Days, enter the number in the Fixed Days field (e.g. 26). If you choose Calendar Days or Working Days, the system calculates it automatically each month.
- Set the Unpaid Leave Basis separately if your company uses a different rule for leave deductions.
- Save. The policy takes effect on the next payroll run.
Note: changing the divisor mid-year will affect all future payroll runs but will not recalculate past payslips that have already been finalised.
Part 2: Duty Schedules (Shifts)
What Does a Duty Schedule Do?
A Duty Schedule defines the working pattern for a group of employees — which days they work and how many hours per day they are expected to be present. The system uses this information to:
- Determine rest days — any day with 0 hours is automatically a rest day
- Calculate overtime (OT) — hours worked beyond the schedule threshold are classified as OT
- Classify attendance records — whether a day is a normal working day, rest day, or public holiday
- Determine break minutes — derived from the employee profile when no shift override is present
How the Schedule Grid Works
Instead of specifying a start time and end time, our system uses a simple per-day hours model. You enter how many hours are expected each day. Any day set to 0 is automatically treated as a rest day.
| Day | Hours Set | Meaning | Attendance Effect |
|---|---|---|---|
| Monday | 8 | Working day | Hours beyond 8 = OT |
| Tuesday | 8 | Working day | Hours beyond 8 = OT |
| Wednesday | 8 | Working day | Hours beyond 8 = OT |
| Thursday | 8 | Working day | Hours beyond 8 = OT |
| Friday | 8 | Working day | Hours beyond 8 = OT |
| Saturday | 4 | Half-day | Hours beyond 4 = OT |
| Sunday | 0 | Rest day | All hours = Rest Day OT |
Common Schedule Examples
| Schedule Name | Mon | Tue | Wed | Thu | Fri | Sat | Sun | Weekly Total | Rest Days |
|---|---|---|---|---|---|---|---|---|---|
| Standard Office | 8h | 8h | 8h | 8h | 8h | 0 | 0 | 40h | Sat, Sun |
| 5.5-Day Factory / Retail | 8h | 8h | 8h | 8h | 8h | 4h | 0 | 44h | Sun only |
| 6-Day Operations | 8h | 8h | 8h | 8h | 8h | 8h | 0 | 48h | Sun only |
| Admin Short Friday | 8h | 8h | 8h | 8h | 6h | 0 | 0 | 38h | Sat, Sun |
How to Set Up a Duty Schedule
- Go to Company Settings in the sidebar.
- Click the Organization tab and scroll to the Work Schedules section.
- Click Add Schedule.
- Give it a descriptive name such as "Standard Office", "Factory Shift A", or "Admin Half-Day Saturday".
- Click the day circles to toggle each day on or off. A coloured circle means a working day — enter the hours in the box below it. A grey circle means a rest day (0 hours). Any attendance on a rest day is automatically classified as rest-day overtime.
- Check the weekly total shown at the bottom of the grid. Save when correct.
- Assign the schedule to employees: go to Employees → Edit Employee → Employment Details, and select the schedule from the Work Schedule dropdown.
You can create one schedule per working pattern your company uses. Office staff on a 5-day schedule and warehouse staff on a 6-day schedule can both be managed simultaneously — each employee is assigned their own schedule.
How They Work Together — A Real Example
| Detail | Value |
|---|---|
| Employee | Sarah |
| Joining date | July 14, 2025 |
| Monthly salary | RM 3,500 |
| Duty Schedule | Standard Office — Mon–Fri 8h, Sat/Sun rest days |
| Payroll Policy | Fixed Days, divisor = 26 |
| July events | Worked 1 Saturday (8 hours), took 1 day unpaid leave |
| Step | Calculation | Amount |
|---|---|---|
| 1. Proration (joined July 14, worked 18 days) | 3,500 ÷ 26 × 18 | RM 2,423.08 |
| 2. Unpaid leave deduction (1 day) | 3,500 ÷ 26 × 1 | − RM 134.62 |
| 3. Rest Day OT (Saturday, 8 hours worked) | Shift says Sat = 0h = rest day → all 8h = Rest Day OT rate | + OT amount |
| Result | Prorated Basic − Unpaid Leave + Rest Day OT | = Final Gross |
The Payroll Policy determined the ÷26 divisor used in steps 1 and 2. The Duty Schedule determined that Saturday is a rest day, making those 8 hours rest-day OT instead of normal hours.
Quick Reference
| If you want to… | Go to… |
|---|---|
| Change how salary is divided for new joiners or resignees | Payroll Settings → Policies |
| Change how unpaid leave is deducted | Payroll Settings → Policies |
| Define which days are working days vs rest days | Company Settings → Organization → Work Schedules |
| Set how many hours per day triggers overtime | Company Settings → Organization → Work Schedules |
| Assign a work pattern to a specific employee | Employees → Edit Employee → Employment Details → Work Schedule |
| Create different schedules for different departments | Company Settings → Organization → Work Schedules (add multiple) |
Frequently Asked Questions
Can an employee have a different schedule from their department? Yes. Schedules are assigned per employee, not per department. Two employees in the same team can have different schedules if their working hours differ.
What if an employee has no schedule assigned? The system falls back to the employee's individual Standard Hours Per Day field and Work Off Days setting on their profile. If neither is set, it defaults to 8 hours per day with Saturday and Sunday as rest days.
Does changing a schedule affect past payroll runs? No. Payslips that have already been generated and finalised are not affected by schedule changes. Only future payroll runs will use the updated schedule.
Does the Payroll Policy affect EPF, SOCSO, and EIS? Yes — indirectly. Unpaid leave deductions reduce the gross salary, which lowers the statutory contribution base. EPF, SOCSO, EIS, and PCB are all calculated on the adjusted gross after unpaid leave is deducted.
Can I use 30 days as my divisor instead of 26? Yes. In Payroll Settings → Policies, select Fixed Days and enter 30. Note that 30 gives a lower daily rate than 26, which means smaller deductions for unpaid leave but also smaller proration payments for new joiners.