Skip to content

People · Payroll

Payroll with the approvals on the record, not in the mail.

Included from Growth upward.

The run is a spreadsheet, the approval is an email, and the payslip is a PDF somebody made by hand. Six months later nobody can say who signed off which month.

Payroll runs with state, sign-off chain, gross and net

What it does

A run that is approved before it is paid.

  1. 01

    A run with states

    Opened, calculated, approved, released. A run cannot be paid from the 'calculated' state, and the screen shows which one it is sitting in and who it is waiting on.

  2. 02

    The sign-off chain, stored

    Every past run carries the people who approved it, in order, next to its gross and net. That is the audit answer.

  3. 03

    Salary components

    Earnings and deductions defined once and applied across the run, rather than re-derived per person per month.

  4. 04

    Payslips people can fetch themselves

    Each employee reaches their own payslip and nobody else's — self scope, enforced in the query.

For example

Who signed off August?

  1. 1The August run is opened for 34 people and calculates from attendance — no separate import.
  2. 2It reaches “calculated”: ₹26,42,806 gross, ₹25,74,806 net, and the screen says it is waiting for an approver.
  3. 3July shows what happens next: Hari M → Farah C → Dev Iyer, stored on the run in that order.
  4. 4Only then can it be released and paid. A run cannot be paid out of the wrong state.
  5. 5Each of the 34 fetches their own payslip and nobody else's.

Six months later, “who approved August?” is a column on the run — not an archaeology project through somebody's mail.

Payslips by period
Payslips by period

How it runs

In, through, out

Input

The month is opened

Process

Attendance and components calculate it

Output

It is approved, released, and the payslips exist

'Who approved this run?' is a column, not an archaeology project.

It does not work alone

What Payroll is connected to

The point of one set of records is that these are not integrations. They read the same rows.

Problems it solves