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.
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.
| Field | Purpose |
|---|---|
| salfrom | Lower bound of the bracket (inclusive). |
| salto | Upper bound (inclusive). |
| empshare | Employee contribution for this bracket. |
| emprshare | Employer 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).

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.

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.

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:
| Field | Purpose |
|---|---|
| Name | Holiday label (e.g. "Araw ng Kagitingan"). |
| Date | Specific calendar date. |
| Type | Regular / Special Non-Working / Special Working. |
| Company | Which 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.

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.

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).