Overtime Pay Formula for Legal Holidays Philippines

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

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

“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

  1. 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.
  2. 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).
  3. 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%).
  4. 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
  • 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.

Disclaimer: This content is not legal advice and may involve AI assistance. Information may be inaccurate.