Skip to content

Repository files navigation

🌏 Southeast Asia Payroll Knowledge Base

Every figure is transcribed from — and cited to — the primary government document (the actual circular, gazette, or regulation), not a summary site. Government issuances across SE Asia are often scanned image PDFs that AI tools can't reliably OCR; this hand-verified, QA-gated reference is both faster and more accurate than fetching the source.

Covers 6 countries — Philippines, Singapore, Malaysia, Thailand, Indonesia, Vietnam — as human-readable markdown and typed JSON (data/). Each country: income tax tables, mandatory contribution rates, labour law (hours, leave, severance), and minimum wages. Philippines adds a linked catalog of 894 BIR issuances (2022–2026) and 142 SSS circulars.

Built so an AI agent (Claude, ChatGPT, Gemini, …) answers a SE Asia payroll question correctly in one or two hops — without scraping government sites or OCR-ing PDFs.


🗺️ Countries covered

Country Income tax Contributions Labour law Min wage Machine-readable data/
🇵🇭 Philippines ✅ TRAIN/BIR ✅ SSS · PhilHealth · Pag-IBIG ✅ DOLE ✅ NWPC ✅ 9 JSON tables
🇸🇬 Singapore ✅ IRAS ✅ CPF · SDL ✅ MOM ✅ LQS/PWM ✅ 2 JSON tables
🇲🇾 Malaysia ✅ LHDN MTD/PCB ✅ EPF · SOCSO · EIS · HRD Corp ✅ EA ✅ RM1,700 ✅ 2 JSON tables
🇹🇭 Thailand ✅ Revenue Dept PIT ✅ SSF · Workmen's Comp ✅ LPA ✅ provincial ✅ 2 JSON tables
🇮🇩 Indonesia ✅ PPh 21 + TER ✅ BPJS TK · BPJS Kesehatan ✅ PP 35/2021 ✅ UMP/UMK ✅ 2 JSON tables
🇻🇳 Vietnam ✅ PIT Law 109/2025 ✅ Social · Health · Unemployment ✅ Labour Code 2019 ✅ 4-region ✅ 2 JSON tables

Each country has an answer router ({cc}/INDEX.md) that maps any question to the exact file — 2 hops maximum.


⚡ Quick answers (Philippines, 2025–2026)

You need… Headline figure File
SSS employee contribution 5% of MSC (MSC ₱5,000–₱35,000); ₱25k salary → ₱1,250/mo ph/sss/contribution_table_2025.md
Income tax / withholding (2023+ TRAIN) 0–35% graduated; first ₱250k exempt; ₱500k → ₱42,500 ph/bir/income_tax_table_2025.md
PhilHealth premium 5% of basic (2.5% employee + 2.5% employer); floor ₱10k / ceiling ₱100k ph/philhealth/contribution_rate_2025.md
Pag-IBIG contribution 2% + 2%; max ₱200 each (MFS ₱10k) ph/pagibig/contribution_table_2025.md
13th-month pay tax-free up to ₱90,000 ph/benefits/13th_month_pay.md
Minimum wage by region NCR ₱695/day (WO NCR-26) ph/min-wage/by_region_2025.md
Premium pay (OT / holiday / night-diff) OT +25%; regular holiday worked 200% (260% if also a rest day); night +10% — full matrix in file ph/labor/premium_pay.md
Leaves (maternity / paternity / SIL …) Maternity 105 days; SIL 5/yr; paternity 7 ph/labor/leaves.md
Final pay / separation pay Final pay within 30 days; COE within 3 ph/labor/final_pay.md
A specific BIR issuance (RR/RMO/RMC, 2022–2026) 894 catalogued, each with the official PDF ph/bir/issuances/INDEX.md

Full question→file router: ph/INDEX.md — maps any question to the one file that answers it.

💸 Worked example — monthly net pay, ₱50,000 salary

Gross SSS PhilHealth Pag-IBIG Withholding tax Net pay
₱50,000 −₱1,750 −₱1,250 −₱200 −₱4,568.40 ₱42,231.60

Employee-side, non-MWE, no other bonuses. Computed from the rate files and validated against the tables so it can't drift — see data/examples.json (also ₱25k and ₱80k).

🧩 Machine-readable — data/sss_2025.json

{ "comp_min": 24750, "comp_max": 25249.99, "msc": 25000,
  "employee": 1250, "employer": 2500, "ec": 30, "total_incl_ec": 3780 }

Typed, source-cited, all 61 brackets — fetch() it instead of parsing the markdown table. See data/.

Install it (Node):

npm install philippines-payroll-data
import { sss2025, premiumPay } from 'philippines-payroll-data';
sss2025.brackets.find(b => b.msc === 25000).employee; // 1250

Every table conforms to schemas/payroll-data.schema.json (JSON Schema 2020-12), enforced on every push.


⚡ For AI agents — start here

  1. AGENTS.md / CLAUDE.md / llms.txt — how to navigate + the trust & accuracy contract. Same content, three entry points so any tool finds one.
  2. Country answer routers — map any question to the exact file (don't scan the repo): ph/INDEX.md · sg/INDEX.md · my/INDEX.md · th/INDEX.md · id/INDEX.md · vn/INDEX.md
  3. BIR issuance catalog → — every RR / RMO / RMC (2022–2026) with a direct link to the official BIR PDF.
  4. Building software / RAG ingestion? Use the JSON, not the markdown tables: data/ — 19 typed, source-cited rate tables across all 6 countries (generated from + validated against the verified markdown). Plus manifest.json (file index of all 77 files).

Why use this instead of the source? SE Asia government issuances are frequently scanned image PDFs with no text layer — AI OCR has been observed fabricating a wrong tax table from one of these. Every figure here was rendered, read, and transcribed from the primary source, then adversarially QA-verified against that source. The markdown is the more accurate artifact — and far faster to read.


📂 What's inside (Philippines — deep coverage)

Topic File Primary source Verified
Income tax & withholding tables (2023+ TRAIN) income_tax_table_2025 BIR RR 8-2018
How to compute / withhold / remit / file WHT withholding_tax_procedures BIR (1601-C, 1604-C, 2316)
TRAIN law overview train_law_summary RA 10963
SSS contribution table sss/contribution_table_2025 SSS Circular 2024-006
PhilHealth premium philhealth/contribution_rate_2025 PhilHealth Advisory 2025-0002
Pag-IBIG contribution pagibig/contribution_table_2025 HDMF Circular 460 (via DBM CL 2024-2)
13th-month pay benefits/13th_month_pay PD 851 / TRAIN
De minimis benefits & ceilings benefits/de_minimis_benefits BIR RR 11-2018
Non-taxable pay items benefits/non_taxable_benefits NIRC / TRAIN
Minimum wage by region min-wage/by_region_2025 NWPC wage orders
Premium pay (OT / holiday / night-diff) labor/premium_pay DOLE Handbook + Labor Code
Statutory leaves (maternity, paternity, SIL …) labor/leaves RA 11210 / 8187 / 11861 / 9710 / 9262
Final pay, COE, separation pay labor/final_pay DOLE LA 06-2020 / Labor Code
894 BIR issuances (RR/RMO/RMC, 2022–2026) bir/issuances bir.gov.ph catalog + PDF links
142 SSS circulars (2020–2026) sss/circulars.md sss.gov.ph catalog + PDF links

Every file opens with YAML frontmatter (rates, effective dates, source, source_tier, last_verified) and a one-line summary — read those first. Machine-readable index: manifest.json + per-archive JSON.


✅ Why you can trust it

  • Primary sources only — each file cites the actual government issuance (circular/regulation number + direct PDF link), never a summary blog.
  • Self-verifying — frontmatter carries source_tier, verified_from, and last_verified; key files include a Verification & provenance block stating which figures are verbatim from the source vs. computed by us.
  • Honest about limits — anything not fully verified is labelled (source_tier: secondary, heuristic tags marked "confirm"). The absence of a caveat means it was checked.

See CLAUDE.mdTrust & accuracy for the full decision rule on when to use this vs. fetch the source.


🔄 How it stays current

The BIR catalog is maintained by an automated job — tools/bir-capture — a headless-browser crawler that re-reads every BIR issuance page, rewrites these files, and reports new issuances since the last run. Monitoring sources for rate changes (SSS / PhilHealth / Pag-IBIG / BIR / regional wage boards) are listed in SCHEMA.mdGolden sources.


🗺️ Coverage & roadmap

  • 🇵🇭 Philippines — complete (BIR, SSS, PhilHealth, Pag-IBIG, benefits, minimum wage, labor standards + 894 issuances 2022–2026).
  • 🇸🇬 Singapore — core complete (sg/: IRAS income tax, CPF + Skills Development Levy, Employment Act leave/hours/overtime/termination, wage floors) + machine-readable data/sg_*.json. Issuance archive pending.
  • 🇲🇾 Malaysia — core complete (my/: LHDN income tax + MTD/PCB, EPF, SOCSO + EIS, HRD Corp levy, Employment Act, RM1,700 minimum wage) + machine-readable data/ JSON.
  • 🇹🇭 Thailand — core complete (th/: Revenue Dept PIT + PND.1 withholding, SSF + Workmen's Comp, Labour Protection Act hours/leave/severance, provincial minimum wage) + machine-readable data/ JSON.
  • 🇮🇩 Indonesia — core complete (id/: PPh 21 + the TER monthly method, BPJS Ketenagakerjaan + Kesehatan, PP 35/2021 hours/leave/THR/severance, UMP/UMK minimum wage) + machine-readable data/ JSON.
  • 🇻🇳 Vietnam — core complete (vn/: PIT + 2026 personal deductions, Social/Health/Unemployment insurance, Labour Code 2019 hours/leave/severance, 4-region minimum wage) + machine-readable data/ JSON.
  • 🌏 Southeast Asia core set (PH, SG, MY, TH, ID, VN) complete.
  • 🇺🇸 United States — planned (federal payroll taxes, FICA).
  • Extensions: pre-2022 BIR archive, deep full-text ingestion of payroll-relevant digests.

Adding a country? Follow PLAYBOOK.md — the country-agnostic 7-step process distilled from the PH build (golden-source index → verified curated files → issuance archives → answer router → machine-readable data layer → verify → monitor), with reusable tactics, a per-country checklist, and the pitfalls already learned.


License

MIT. The underlying government figures are public information; the license covers the compilation, curation, verification, and tooling.


This repository reorganizes public government information from 6 SE Asia countries for accuracy and machine-readability. For high-stakes decisions, confirm against the cited primary source. Not legal or tax advice.

About

Machine-readable, primary-sourced payroll reference for Southeast Asia (PH, SG, MY, TH, ID, VN) — income tax, contributions, labour law, minimum wages — every figure cited to the primary government document.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages