Work Schedules and Overtime

6 min read

TalinoHR manages employee work schedules and overtime computation following Philippine DOLE (Department of Labor and Employment) regulations.

Work Schedule Setup

Each work schedule defines the daily time-in and time-out for each day of the week, plus break duration and an optional grace period.

Schedule Fields

  • Schedule Name: A descriptive name (e.g., "Regular Office Hours", "Night Shift").
  • Monday through Sunday: For each day, set the time-in and time-out. Leave a day blank to mark it as a rest day.
  • Break Minutes: The daily break duration in minutes (default: 60 minutes). This is subtracted when computing work hours per day.
  • Grace Period Minutes: Optional per-schedule grace period override. If set, this overrides the company default grace period for employees on this schedule.

Creating a Schedule

  1. Navigate to Time & Leave → Schedules (/attendance/schedules).
  2. Click "Add Schedule" or "New Schedule".
  3. Enter the schedule name.
  4. Set time-in and time-out for each working day.
  5. Leave rest days blank (no time-in/time-out).
  6. Set break minutes (default 60).
  7. Optionally set a grace period override.
  8. Save the schedule.

Assigning Schedules to Employees

  1. Navigate to HRIS → Employees (/employees).
  2. Open the employee's profile.
  3. In the employment details section, select the work schedule.
  4. Save changes.

The assigned schedule affects:

  • Attendance: Rest days are determined by which days have no scheduled time-in.
  • Absence detection: The system only creates absence records for scheduled work days.
  • Payroll rate calculation: Work days per month and work hours per day are derived from the schedule.
  • Grace period: The schedule's grace period override takes effect for attendance processing.

Schedule-Derived Payroll Parameters

The payroll engine derives key rate parameters from the employee's work schedule:

  • Work Days Per Week: Counted from how many days have a non-null time-in field.
  • Work Hours Per Day: Calculated from the first working day's time-in to time-out minus break minutes.
  • Work Days Per Month: Computed as (work days per week x 52) / 12, rounded.

If no schedule is assigned, the system falls back to company-wide defaults (workDaysPerWeek and workHoursPerDay from company settings).

Examples

ScheduleDays/WeekHours/DayDays/Month
Mon-Fri, 8am-5pm, 60min break5822
Mon-Sat, 8am-5pm, 60min break6826
Mon-Fri, 7am-4pm, 60min break5822
Mon-Fri, 9am-6pm, 30min break58.522

Grace Period

The grace period determines how many minutes after the scheduled time-in an employee can clock in without being marked as late.

  • Company default: Set in company settings. Applies to all employees without a schedule-specific override.
  • Per-schedule override: If gracePeriodMinutes is set on the work schedule, it overrides the company default for employees on that schedule.
  • Example: If the schedule time-in is 8:00 AM and grace period is 15 minutes, clocking in at 8:14 AM is on time, but 8:16 AM is 16 minutes late.

Rest Day Configuration

Rest days are automatically determined by the work schedule. Any day of the week with no time-in set is a rest day.

  • Common setup: Saturday and Sunday as rest days (Mon-Fri schedule).
  • Alternative: Sunday only as rest day (Mon-Sat schedule).
  • The attendance system marks records on rest days with isRestDay: true.
  • Working on a rest day entitles the employee to rest day premium pay.

Overtime Rules

DOLE Day-Type Multipliers

Overtime pay is computed using DOLE-mandated multipliers based on the day type:

Day TypeOT MultiplierDescription
Ordinary day1.25x125% of hourly rate
Rest day1.69x130% x 130% = 169%
Special non-working holiday1.69x130% x 130% = 169%
Special non-working holiday + rest day1.95x150% x 130% = 195%
Regular holiday2.60x200% x 130% = 260%
Regular holiday + rest day3.38x260% x 130% = 338%

The multiplier is applied to the employee's hourly rate: OT pay = hourly rate x multiplier x OT hours.

Night Shift Differential (NSD)

Night shift differential applies to hours worked between 10:00 PM and 6:00 AM.

  • NSD rate: 10% additional on top of the applicable day-type rate.
  • NSD stacking: NSD is computed on the day-type multiplied rate, not the base rate alone. For example, on a regular holiday (2.0x), NSD = hourly rate x 2.0 x 10% x night hours.
  • NSD formula: NSD pay = hourly rate x day-type multiplier x 0.10 x night hours.

NSD Stacking Examples

ScenarioBase RateDay MultiplierNSD Additional
Ordinary night shiftP100/hr1.00P100 x 1.0 x 10% = P10/hr
Rest day night shiftP100/hr1.30P100 x 1.3 x 10% = P13/hr
Regular holiday night shiftP100/hr2.00P100 x 2.0 x 10% = P20/hr

Overtime Filing and Approval Flow

Employee Files OT (ESS)

  1. Employee navigates to ESS → Overtime (/ess/overtime).
  2. Clicks "File Overtime".
  3. Enters: date, number of hours, reason.
  4. System checks for duplicate OT requests for the same date.
  5. OT request is created with status PENDING.

Manager/HR Approves OT

  1. Manager or HR navigates to Overtime (admin view).
  2. Reviews pending OT requests.
  3. Approves or rejects each request.
  4. Approved requests update OvertimeApplication.status to APPROVED.
  5. Rejection stores the reason in the remarks field.

OT in Payroll

The payroll engine reads OvertimeApplication records directly (not AttendanceRecord.overtimeMinutes). Only APPROVED overtime applications within the payroll period are included in the computation.

For each approved OT:

  1. The engine determines the day type (ordinary, rest day, holiday, or combination) based on the OT date.
  2. The appropriate multiplier is applied.
  3. OT pay = hourly rate x multiplier x hours.
  4. All OT amounts are summed into the total overtime pay for the payroll item.

Important Notes

  • Overtime must be APPROVED before it affects payroll. Pending or rejected OT is not included.
  • The OT approval step writes overtimeMinutes to the AttendanceRecord for display purposes, but the payroll engine reads from OvertimeApplication directly.
  • Holiday + rest day combinations stack the highest multiplier (e.g., regular holiday falling on a rest day = 3.38x).
  • NSD is computed from actual clock-in/out times, not from OT applications.
  • Semi-monthly payroll captures OT only for the dates within each pay period.
  • Work schedule must be assigned for accurate absence detection and rest day determination.