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

  1. Go to Payroll Settings in the sidebar.
  2. Click the Policies tab.
  3. Click Edit Policy on your active policy (or create a new one).
  4. 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.
  5. Set the Unpaid Leave Basis separately if your company uses a different rule for leave deductions.
  6. 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:

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

  1. Go to Company Settings in the sidebar.
  2. Click the Organization tab and scroll to the Work Schedules section.
  3. Click Add Schedule.
  4. Give it a descriptive name such as "Standard Office", "Factory Shift A", or "Admin Half-Day Saturday".
  5. 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.
  6. Check the weekly total shown at the bottom of the grid. Save when correct.
  7. 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.