Who can use this page: HR and the Accountant (payroll access). Find it under Settings → Statutory.

What this is

The government deductions on every payslip — social security, health insurance, housing funds, income-tax withholding — are schemes with versioned rate tables. BareLedger never hard-codes a rate: the figures live as data, each version carries the official source it was taken from, and when an agency changes rates next year a new version arrives with its own effective date. Old payslips keep reproducing exactly, because every payslip line remembers which version and bracket produced it.

Country packs

  1. The platform maintains a registry of per-country schemes. Each is signed off by a human against the official source before it can be used (you'll see "No packs are enabled yet" until then).
  2. In Settings → Statutory, pick your country, Preview (shows exactly what would be added — applying never changes or removes anything you have), then Apply pack.
  3. Your own additions — a union due, a provident fund — live alongside pack schemes and survive every re-apply.

Eleven packs ship (every one disabled until its figures are verified), each with its own page: Statutory Pack: Philippines, Statutory Pack: Singapore, Statutory Pack: United Arab Emirates, Statutory Pack: Saudi Arabia, Statutory Pack: Egypt, Statutory Pack: Australia, Statutory Pack: New Zealand, Statutory Pack: Japan, Statutory Pack: United Kingdom, Statutory Pack: Canada, Statutory Pack: United States.

Mapping schemes to your books

Each scheme needs three accounts (click Map GL):

  • Employee share — liability: money withheld from staff, owed to the agency until you remit it.
  • Employer share — expense: your own cost on top of salaries.
  • Employer share — liability: that same employer amount, also owed to the agency.

In plain terms: approving payroll records "we owe the agency this much"; paying the agency later clears those liability accounts. The optional remittance due day feeds the filing-calendar reminders.

Per-employee registrations

On each employee's record (and in the onboarding form), HR keeps one entry per scheme: the agency-issued ID number (stored encrypted), an effective window, and a status — active, exempt (registered but not deducted, e.g. by treaty), or suspended. Some schemes also take per-employee choices (a voluntary fixed top-up, filing elections); those live on the registration too. An employee is only ever computed for schemes they're actively registered in.

How the computation runs (plain language)

On each payroll run, per employee: contributions are computed first, each on its own base (basic or gross pay, clamped to the scheme's floor/ceiling and annual cap); the pre-tax ones reduce the pay that income tax sees; withholding then runs on what's left. Monthly tables stay correct on semi-monthly or weekly payroll because the engine works month-to-date — the halves always add up to the monthly figure. A minimum-wage earner flag (on the employee's tax profile) suppresses withholding without touching contributions.

Common mix-ups

  • "The pack list is empty." No country has been signed off yet in the platform console — that's deliberate; rates are only usable after human verification.
  • "I applied the pack twice." Harmless — applying is additive and skips everything you already have.
  • "An employee has no deductions." Check their registrations: no active registration in a scheme means no computation for it.