Payroll, right from formula to bank
Design pay formulas on a drag-drop canvas, run payroll for a whole period, approve it, distribute payslips and export bank transfers — the preview matches the real run exactly.
BS01 = contract.salary × (actual_days / standard_days)One closed-loop payroll engine, from formula to payment
Drag-drop formula canvas
Arrange earning, deduction, tax and contribution components on a canvas; pick a calc type — FIXED, RATE, PERCENT or LOOKUP — per component.
mathjs formula engine
Write expressions like contract.salary × actual_days / standard_days; the mathjs engine computes them precisely and transparently per component.
Preview matches the real run
The preview uses the same engine as the real payroll run, so the number on screen is the number employees actually receive.
Draft → published → archived versions
Every pay template has a clear version lifecycle, so you can edit a draft safely and publish without disrupting a live run.
Bank export with reconciliation
Validate the data, generate files in each bank's format (e.g. Vietcombank) and reconcile before sending the transfer batch.
Anomaly flags
The system flags unusual cases such as a negative net salary, so you can review them before approving and paying.
Capabilities
Set an applicability condition on each pay component, so it only computes when an employee meets the criteria you define.
Override a value for a specific employee through an approval workflow, while keeping the shared pay template intact.
Create a run, auto-calculate via the template, submit for approval, generate payslips, create a payment batch, then export to bank.
Track a run through draft, pending, approved, payment created and paid — you always know exactly where it stands.
Payslip data is frozen and stamped with an integrity hash, with PDF export and email distribution to each employee.
Compute personal income tax on progressive brackets, applying self and dependent exemptions automatically per employee.