๐Ÿ‡ต๐Ÿ‡ญ ๐Ÿ‡ธ๐Ÿ‡ฌ ๐Ÿ‡ฒ๐Ÿ‡พ ๐Ÿ‡น๐Ÿ‡ญ ๐Ÿ‡ฎ๐Ÿ‡ฉ ๐Ÿ‡ป๐Ÿ‡ณ

Southeast Asia
Payroll Knowledge Base

Primary-sourced, QA-verified payroll data for 6 countries โ€” income tax tables, contribution rates, labour law, minimum wages โ€” every figure cited to the issuing government document. Free and open.

โœ“ 6 countries โœ“ 19 machine-readable tables โœ“ 77 source-cited files MIT open data AI-ready (llms.txt)
View on GitHub Browse the data

Countries covered

Use it in code

# Install
npm install philippines-payroll-data

# Import typed rate tables for any country
import { sss2025, sgCpf, myContributions, thSocialSecurity } from 'philippines-payroll-data';

# Philippines โ€” SSS bracket lookup
sss2025.brackets.find(b => b.msc === 25000).employee; // 1250

# Singapore โ€” employee CPF rate at age 35, salary $5,000
sgCpf.rates.find(r => r.age_group === '35_45').employee_pct; // 20

# Or fetch the JSON directly โ€” no install needed
const sss = await fetch('https://cdn.jsdelivr.net/npm/philippines-payroll-data/data/sss_2025.json').then(r => r.json());

All 19 tables conform to JSON Schema 2020-12, validated on every push by CI. Browse all tables: data/index.json.

Built for AI agents

The repo includes AGENTS.md, CLAUDE.md, and llms.txt โ€” navigation contracts for Claude, ChatGPT, Gemini, and any tool following the llmstxt.org convention. Add it to your agent's context once; any SE Asia payroll question resolves in 2 hops without web searches.

# Point your agent at the answer router for any country
ph/INDEX.md  โ†’  maps "what is the SSS rate for โ‚ฑ25k?" to the exact file
sg/INDEX.md  โ†’  maps "what is the CPF OW ceiling for 2026?" to the exact file
my/INDEX.md  โ†’  maps "EPF rate for employee under 60?" to the exact file
# โ€ฆ and so on for TH, ID, VN

# Why this is more accurate than fetching the source:
# Most SE Asia gov issuances are scanned image PDFs โ€” AI OCR has fabricated
# wrong tax tables from them. Every figure here was rendered and verified
# against the primary document by a human, then adversarially QA-checked.

Why you can trust it

๐Ÿ“œ

Primary sources only

Every figure is cited to the actual government issuance โ€” the circular, gazette, or regulation PDF โ€” not a blog or summary site.

๐Ÿ”ฌ

Adversarial QA gate

Each country went through an independent adversarial verification pass before going live. The gate caught real errors in 3 of 6 countries (Thailand min wage, Vietnam PIT reform, Philippines de minimis).

โœ…

Self-describing

Every file carries source_tier, verified_from, and last_verified frontmatter. Absence of a caveat means it was checked.

๐Ÿ”„

Drift-proof data layer

The data/*.json tables are generated from the markdown and validated against it on every push. If a rate file and its JSON drift, CI fails.