Here’s a no-nonsense, practice-oriented explainer (Philippine context) on the overtime pay formula when work is done on a legal (regular) holiday—including how to stack rest-day, overtime, and night-shift premiums, plus edge cases like “double holidays.” I’ll also show clean formulas you can drop into your payroll sheet.
quick disclaimer: General information only. Implementation details can differ by CBA/company policy, but statutory minimums below must be met for non-exempt employees. Managerial employees, field personnel, and others excluded by law are typically not entitled to OT premiums.
What counts here
- “Legal holiday” in PH payroll practice means a regular holiday (e.g., New Year’s Day, Araw ng Kagitingan, Independence Day, etc.).
- Special (non-working) days follow different (lower) premiums. I include a cheat sheet at the end for comparison.
Core definitions & base rates
Let:
- BDW = employee’s basic daily wage (8 hours)
- HR = hourly rate on an ordinary day = BDW ÷ 8
On a regular holiday:
- First 8 hours (worked): pay is 200% of BDW → per hour = 2.00 × HR
- If the regular holiday also falls on the employee’s rest day: first 8 hours = 260% of BDW → per hour = 2.60 × HR
- Overtime (work beyond 8 hours on that day): add 30% of the hourly rate on said day per OT hour
- Night Shift Differential (NSD): add 10% of the hourly rate on said day for work between 10:00 p.m. and 6:00 a.m. (whether within or beyond 8 hours)
“Hourly rate on said day” means the already-enhanced rate for that situation (holiday, or holiday+rest day), not the plain HR.
The quick formulas (regular holiday)
A) Regular holiday (not a rest day)
- First 8 hours:
Holiday pay (8h) = 2.00 × BDW
- Each OT hour (beyond 8h):
OT hour rate = (2.00 × HR) × 1.30 = 2.60 × HR
- Night work inside first 8 hours (10pm–6am):
Add
NSD per night hour = (2.00 × HR) × 0.10 = 0.20 × HR
- Night OT hour (beyond 8h AND 10pm–6am):
Night-OT hour = (2.00 × HR × 1.30) + (2.00 × HR × 0.10) = 2.60HR + 0.20HR = 2.80 × HR
B) Regular holiday that is also a rest day
- First 8 hours:
Holiday+RestDay pay (8h) = 2.60 × BDW
- Each OT hour:
OT hour rate = (2.60 × HR) × 1.30 = 3.38 × HR
- Night work inside first 8 hours:
Add
NSD per night hour = (2.60 × HR) × 0.10 = 0.26 × HR
- Night OT hour:
Night-OT hour = (2.60 × HR × 1.30) + (2.60 × HR × 0.10) = 3.38HR + 0.26HR = 3.64 × HR
Double-check with a worked example
Assume BDW = ₱800, so HR = ₱100.
Scenario 1: Regular holiday (not a rest day)
Worked 10 hours, with 1 hour falling between 10pm–6am.
- First 8 hours:
2.00 × 800 = ₱1,600
- 1 OT hour (daytime):
2.60 × 100 = ₱260
- 1 Night OT hour:
2.80 × 100 = ₱280
- Total = 1,600 + 260 + 280 = ₱2,140
- First 8 hours:
Scenario 2: Regular holiday + rest day
Worked 9.5 hours, all daytime.
- First 8 hours:
2.60 × 800 = ₱2,080
- 1.5 OT hours:
1.5 × (3.38 × 100) = 1.5 × 338 = ₱507
- Total = 2,080 + 507 = ₱2,587
- First 8 hours:
“Double holiday” (two regular holidays on the same calendar day)
When two regular holidays coincide (it happens occasionally), the typical treatment:
- First 8 hours: 300% of BDW → per hour = 3.00 × HR
- Each OT hour:
OT hour = (3.00 × HR) × 1.30 = 3.90 × HR
- Night hour inside first 8:
NSD = (3.00 × HR) × 0.10 = 0.30 × HR
- Night OT hour:
3.00HR×1.30 + 3.00HR×0.10 = 3.90HR + 0.30HR = 4.20 × HR
- If also a rest day: multiply the base hourly rate on said day by an extra 30% before applying OT (many payrolls treat first 8 hours as 390% of BDW, per hour 3.90HR; then apply OT and/or NSD as above).
How to get HR (hourly rate) correctly
- If you maintain daily-paid workers, HR = BDW ÷ 8.
- If monthly-paid, convert to a daily (and then hourly) rate using your company’s established factor (e.g., Monthly ÷ 26 ÷ 8, or another lawful divisor per policy/CBA). The key is consistency and compliance.
Who is (and isn’t) entitled
Covered: Rank-and-file, non-exempt employees who actually perform work during the holiday. Commonly excluded (by law): Managerial employees; certain supervisory roles; field personnel whose hours cannot be determined with reasonable certainty; and others specifically exempted. (Your CBA or policy can be better than the law, not worse.)
Common stacking mistakes to avoid
- Applying 30% OT to the plain HR instead of to the hourly rate on said day. Always enhance the base first (holiday/rest-day), then apply OT/NSD.
- Compounding NSD on top of the OT-enhanced amount. NSD is 10% of the hourly rate on said day, not 10% of the OT-inflated rate. In formula terms, Night-OT hour = (Hourly on said day × 1.30) + (Hourly on said day × 0.10).
- Forgetting rest-day premium when the holiday falls on the employee’s scheduled rest day. The first 8 hours should be 260% of BDW (not 200%).
- Counting unworked hours as OT. Overtime applies only to hours worked beyond 8 on that day.
Quick comparison: Special (Non-Working) Day (not a “legal/regular holiday”)
Because payroll folks often ask:
Worked, first 8 hours: 130% of BDW (per hour = 1.30 × HR)
If also a rest day: 150% of BDW (per hour = 1.50 × HR)
OT hour: add 30% of hourly rate on said day
- Special day OT (not rest day):
1.30HR × 1.30 = 1.69HR
- Special day + rest day OT:
1.50HR × 1.30 = 1.95HR
- Special day OT (not rest day):
NSD: add 10% of hourly rate on said day to the applicable hour(s)
(Again, these are not the same as regular-holiday numbers.)
Payroll-ready formula blocks (copy/paste into your sheet)
Let HRS8 = MIN(8, hours_worked_that_day)
and OT_HRS = MAX(0, hours_worked_that_day − 8)
; NSD_HRS8
= night hours within the first 8; NSD_OT
= night hours beyond 8.
Regular Holiday (not rest day)
Base8 = 2.00 × BDW
OT_Pay = (2.00 × HR × 1.30) × OT_HRS
NSD_First8 = (2.00 × HR × 0.10) × NSD_HRS8
NSD_OT = (2.00 × HR × 0.10) × NSD_OT
- Total = Base8 + OT_Pay + NSD_First8 + NSD_OT (Adjust Base8 if <8 data-preserve-html-node="true" hours actually worked per policy, but the statutory rule ties 200% to actual work on the day up to 8 hours.)
Regular Holiday + Rest Day
Base8 = 2.60 × BDW
OT_Pay = (2.60 × HR × 1.30) × OT_HRS = (3.38 × HR) × OT_HRS
NSD_First8 = (2.60 × HR × 0.10) × NSD_HRS8
NSD_OT = (2.60 × HR × 0.10) × NSD_OT
- Total = Base8 + OT_Pay + NSD_First8 + NSD_OT
Double Regular Holiday (guide)
Base8 = 3.00 × BDW
(or 3.90 × BDW if also a rest day per common practice)OT_Pay = (3.00 × HR × 1.30) × OT_HRS = (3.90 × HR) × OT_HRS
NSD add-ons = (3.00 × HR × 0.10) × (NSD_HRS8 + NSD_OT)
Bottom line
- On regular holidays, pay the first 8 hours at 200% of BDW (or 260% if it’s also a rest day).
- Overtime hours on that day are paid at 130% of the hourly rate on said day (giving 2.60×HR on a plain regular holiday; 3.38×HR when it’s also a rest day).
- Night work adds 10% of the hourly rate on said day to the relevant hours—including night OT hours.
- Always enhance the base first (holiday/rest-day), then apply OT and NSD correctly.
If you want, tell me your BDW (or monthly), hours worked, and whether it was a rest day and/or night shift. I’ll compute the exact payable with a tidy breakdown you can paste into payroll.