The run is a function,
not a spreadsheet.
The engine knows no country; each country plugs in its own rules, filings and files.


Deterministic by design
Testable without a database.
Payroll goes wrong quietly. A component that reads a value at the wrong moment, an override that survives a re-run, a rounding rule that lives in two places. Keeping the calculation pure removes the whole class of problem: the engine takes structured inputs and returns a result, and it cannot reach anything else.
- Inputs are explicitCompensation structure, attendance-derived days, leave without pay, declarations, arrears and one-off inputs. If it affects the number, it is an input, not a lookup.
- Re-runnable, alwaysRecalculate a run as many times as you like before approval. The result is replaced wholesale rather than patched, so there is no residue from the previous attempt.
- Rules carry effective datesA statutory change applies from the date it applies from. Recomputing an older period uses the rules that were in force then.
One employee · one evaluation
Per-country rules
Three localisations on one engine.
The difference matters when the law moves. A formula in a spreadsheet has to be found in every file it was copied into. A rule has one definition, an effective date, and a test that proves what it does at the boundary — and the core engine never carries a country's rules itself.


India
- PF, with the wage ceiling.
- ESI.
- TDS on the new and old regimes, with Form 16.
- Professional Tax and LWF, registered per state.
- Gratuity on the statutory formula.
- Monthly pay.
United Arab Emirates
- WPS SIF salary files.
- GPSSA and ADPF pension for UAE nationals, and the GCC-national pension.
- ILOE unemployment insurance and the Savings Scheme.
- End-of-service gratuity, with unpaid days excluded.
- Overtime.
- Warnings for a missing WPS ID and the Emirati minimum wage.
United States
- Federal income tax withholding, FICA and FUTA.
- State unemployment insurance.
- State income tax for the 41 states that tax wages, and DC, each built from the state's own 2026 guide, with reciprocity.
- Forms 941 and 940, with W-2s reconciled against the quarters.
- NACHA direct-deposit files and the SSA EFW2 file.
- Full SSNs, behind their own permission.
The workspace's country is set when it is created, and it picks the rules and the currency. Pay schedules (monthly, semi-monthly, biweekly, weekly) are set per employee, and a country only offers the frequencies its filings support. India stays monthly, on purpose.
The run lifecycle
Seven states, and each one means something.
A payroll run is not a document that gets edited until it looks right. It moves through states, and the state decides what is still allowed. A locked run cannot be silently changed — a correction becomes arrears in the next run, which is also what an auditor expects to see.
The month is opened with its cut-off dates and its pay date.
Employees in scope are drawn in with their components as of the cut-off.
The engine evaluates every rule and produces a full result set.
Variance against the previous run, employee by employee, with reasons.
A named person signs off. The approval is recorded, not implied.
Payslips are generated, statutory outputs are produced, disbursement lands.
The run is closed. Corrections happen as arrears in the next run.
Variance review before you commit
Between calculate and approve, you see which employees moved against the previous run and why: joiners prorated, an increment landing mid-cycle, someone crossing the PF wage ceiling, overtime falling. You approve a number you can explain.
Payslips are files, not pages
Each payslip is stored per workspace and served through a short-lived signed URL, issued only after the permission check passes. A link that leaves the building expires; it does not become a permanent door.
Off-cycle runs pay one-off items once
A payment that cannot wait for the next period gets its own run: calculated once, paid once, without reopening the regular cycle it sits outside of.


Full and final
The last payslip shows everything and pays each thing once.
A leaver's settlement pulls gratuity, leave encashment, arrears, notice pay or shortfall, loans and clearance recoveries into one statement. Anything the regular run has already paid is still listed, marked as paid through payroll, and left out of the net, so nothing goes out twice.
- Three permissions, three peopleBuilding a settlement, approving it and marking it paid are separate permissions. Draft, Approved, Paid, and each move is recorded against a named person.
- Clearance blocks approvalThe settlement opens the leaver's exit clearance. While a mandatory item is still open, the settlement cannot be approved. An item cleared with a recovery lands on the statement as a deduction.
- Gratuity comes from the country rulesThe core engine knows nothing about India. Gratuity arrives through the localisation's own settlement hook, on the statutory formula, from the joining date.
Settlement · last day 30 Sep
DraftSales incentives
Paid from target achievement, not from a spreadsheet someone emails finance.
An incentive plan is a base amount and a ladder of slabs. Achievement is the weighted average of the employee's KPIs, each capped before it is weighted, so one runaway metric cannot hide two misses. The award becomes a one-off earning in the payroll run.
Achievement · September
cap 150% per KPIUncapped, revenue alone would have carried it to 139%.
The ladder · base ₹20,000
Slabs must meet with no gaps between them. The award keeps a copy of the ladder it was priced on, so editing the plan later does not change what was paid.
Two approvals, in order
The department head approves, then finance. The person who computed the awards cannot be the finance approver on them.
Achievement in bulk
Import KPI achievement from a CSV for the whole sales team, rather than updating two hundred records by hand every month.
Posted to the run
An approved award becomes a payroll adjustment in its period. Payroll reads performance; it never writes back to it.
What it reads
It reads attendance and leave. It never writes back.
Payroll consumes the timeline and the leave ledger at run time and derives what it needs. It does not correct them, mark them, or leave a payroll-shaped flag on an attendance row. Attendance stays the record of what happened; payroll stays the record of what was paid.
- Loss of payDerived from unpaid days on the timeline against the paid-days basis for the period. Not typed in by anyone.
- OvertimeDerived from the approved hours on the timeline, at the rate the policy sets. Hours worked on a weekly off or a holiday get their own line at their own multiplier.
- Mid-cycle joiners and leaversProrated on the same evaluation as everyone else, from the joining or last working date.
- ArrearsA revision effective from an earlier date produces the difference for the months already closed, in the current run.
- Statutory rates, versionedThe engine reads the rates in force for the period. If a workspace's rates drift from the published defaults, they can be restored, with a preview of every change before it runs.
In the product
The run, the rows under it, and the rules.








Book a demo · 30 min
Run a month with us.
Bring one period, your salary structure and the cases that usually break: an arrear, a mid-cycle joiner, a sales incentive, a full and final. We will run it and show you the variance line by line.