PH Payroll Bureau — multi-tenant payroll and HR
Multi-tenant Philippine payroll and HR bureau: 2025 statutory engine (SSS, PhilHealth, Pag-IBIG, BIR), tenant isolation, MFA, encrypted 201 records.
Sole engineer · 2026

Problem
Payroll bureaus in the Philippines run payroll for many client companies at once, usually on spreadsheets. The statutory stack is genuinely hard: SSS contribution tables, PhilHealth premiums, Pag-IBIG, BIR withholding under TRAIN, 13th-month, and DOLE premium pay rules — all of which change, and all of which must be exact to the centavo. And a bureau holds the most sensitive employee data there is.
What I built
A multi-tenant web app where one provider runs payroll and HR for many client companies. Next.js 15 with Postgres row-level security, so tenants are isolated at the database layer rather than only in application code.
The heart is a pure, dependency-free payroll engine: every 2025 statutory rule is pinned to a golden test vector — an exact input to an exact output — cited to its source (SSS Circular 2024-006, the PhilHealth UHC schedule, HDMF Circular 460, BIR TRAIN RR 11-2018, PD 851). Payroll runs move through a controlled lifecycle: draft, calculated, approved, paid — with per-employee payslips itemizing every earning and deduction.
Around it, a real HR system: org structure, encrypted 201 records (AES-256-GCM at rest), access-controlled document storage, leave accrual with SIL carryover and cash conversion, onboarding flows, MFA and role-based access, and an append-only audit trail.
Result
Every statutory computation is verifiable against a cited source, and the system converged at 100% of its weighted acceptance suite — business-rule goldens, end-to-end browser journeys, security checks, and accessibility included. Payslips come out to the centavo.
