Skip to main content

Compliance Tables

Philippine payroll compliance requires four contribution tables (SSS, PhilHealth, HDMF, WHT), a declared-holiday list, and filing policies. ONe-HR stores these as editable models so HR can update brackets whenever SSS/PhilHealth/BIR issue new circulars.

Audience

Compensation & Benefits specialists, MSD administrators. All tables are BU-scoped via ir.rule on company_id.

SSS

HR ▸ Maintenance ▸ Government ▸ SSS

The SSS table (sss_table) is a bracket-lookup — one row per salary range.

FieldPurpose
salfromLower bound of the bracket (inclusive).
saltoUpper bound (inclusive).
empshareEmployee contribution for this bracket.
emprshareEmployer contribution.

At payroll time, the employee's monthly rate is matched against salfrom <= rate <= salto to pick the contribution row. No per-employee amount is stored on the employee form (unlike PhilHealth/HDMF where the HR admin enters amounts directly).

SSS table

Keeping SSS current

When SSS issues new contribution schedules (typically once a year or when the MSC expands), update the table here and the next payroll run picks it up automatically. There is no retroactive adjustment — brackets are applied at compute time.

PhilHealth

HR ▸ Maintenance ▸ Government ▸ PhilHealth

philhealth_table stores the statutory rate schedule. Unlike SSS, PhilHealth's employer/employee shares are not looked up per bracket in the payroll computation — the HR admin enters the computed contribution directly on the employee's Compensation tab (ded_phic_er / ded_phic_ee). The table is maintained as a reference for HR to consult when computing.

PhilHealth table

HDMF (Pag-IBIG)

HDMF has no dedicated table — the contribution is a simple fixed amount (200 PHP default on both employer and employee). It's stored per-employee on the Compensation tab (ded_hdmf_er / ded_hdmf_ee). For voluntary contributions above the minimum, the HR admin overrides the defaults.

Withholding Tax (WHT)

HR ▸ Maintenance ▸ Government ▸ WHT Table

hr.wht_table stores the BIR withholding tax brackets used by payroll for tax computation.

Fields include period (daily/weekly/semi-monthly/monthly), tax code (Z, S/HF/ME, ME1/HF1 through ME4/HF4), and the standard "exemption / base tax / rate over exemption" triple from BIR Annex A.

WHT Table

During payroll, the employee's tax_code (set on the Identifications tab) plus their Project TM (from Compensation) pick the right row. The computed tax flows into the payroll transaction as a deduction.

Declared Holidays

HR ▸ Maintenance ▸ Government ▸ Declared Holidays

Philippine holidays change year to year — new proclamations add special non-working days, and some regular holidays fall on weekends and get moved. hr.declared.holiday records carry:

FieldPurpose
NameHoliday label (e.g. "Araw ng Kagitingan").
DateSpecific calendar date.
TypeRegular / Special Non-Working / Special Working.
CompanyWhich BU(s) the holiday applies to (some BUs celebrate local holidays others don't).

Attendance processing uses this list to mark days as holiday/non-working, which then feeds OT rate multipliers (holiday pay premiums) and leave-with-pay logic.

Declared Holidays list

The res.company.holiday_ids Many2many exposes this list on the company form — an HR admin adds / removes holidays either from the holiday list or from the company card.

Filing Policies

HR ▸ Maintenance ▸ Filing Policies

hr.filing_policy is the rulebook for how employees can file OT/OB/Leave. Typical policy knobs:

  • How many days in advance a leave must be filed.
  • Maximum OT hours per day / per week.
  • Whether OB requires a justification document.
  • Approval SLA expectations.

These are informational — they drive messaging in the mobile app and reporting but do not currently hard-enforce at filing time.

Filing Policies list

Subsidies

Covered in Loans & Deductions — Subsidies. Maintenance lives here in the Government/HR menu for visibility alongside compliance tables.

Error Log

HR ▸ Maintenance ▸ App Error Log

hr.app_error_log captures errors reported by the mobile app — network failures, server errors, validation mismatches. Each row has:

  • The affected employee and device.
  • The error payload.
  • The timestamp.

Not strictly a compliance table, but it lives in the admin section because HR and MSD monitor it for patterns (e.g. a server change breaking the mobile payslip endpoint will show up here as a cluster of errors).