Why we build it this way

Attendance is the spine.

Payroll errors are attendance errors that survived long enough to cost money.

Every payroll mistake we have ever been shown started somewhere else. Not in the tax slab, not in the formula, not in the accountant’s spreadsheet. It started weeks earlier, on a factory floor or a site office, in the gap between what happened and what got written down.

Somebody’s punch did not register. Somebody was on site but the machine says otherwise. Somebody’s supervisor vouched for them over WhatsApp at ten at night, and that message is the only record that the day existed at all. By the time those gaps reach payroll they have stopped being attendance problems. They have become money problems, and money problems get argued about.

The month-end reconstruction

So every month, someone rebuilds the truth.

They export from the biometric machine. They chase the supervisors. They open last month’s spreadsheet, copy it, rename it, and start patching. Row 142 gets edited on the 30th and nobody records why. The file becomes the source of truth precisely because it is the only artefact that contains everyone’s corrections — and it is also the artefact nobody can audit, because its history is a chain of overwrites.

This is not incompetence. It is what happens when the system of record does not match the system of reality, and a human is asked to close the distance by hand, under time pressure, once a month, forever.

One employee. One day. Every source, reconciled into a single record.

Reconcile at the source

The alternative is not a better spreadsheet. It is refusing to let the gap open in the first place.

Punches arrive from wherever they arrive — a biometric machine at the gate, a phone in the field with its GPS and a selfie, a browser in the office. Instead of three systems that disagree, they collapse into one timeline per employee per day, and that timeline keeps its evidence. Where a punch is uncertain, it is held for a human rather than guessed at. Where a day needs correcting, the correction is a request with a reason attached, routed to the manager, and anything still pending after forty-eight hours is surfaced as aged so it can be chased.

Nothing approves itself. That is deliberate. A system that silently resolves ambiguity is a system that will silently be wrong, and you will find out in a notice.

Then the rest is arithmetic

Once the day is right, payroll stops being an act of reconstruction and becomes what it should always have been: arithmetic over a record everyone already agrees on.

Freeze the attendance the cycle will pay on. Derive earnings and deductions from components you can point at. Flag the things that look wrong — unusual leave without pay, unusual overtime, a gross that moved too far from last month — while there is still time to fix them. Then produce the paperwork: provident fund, state insurance, professional tax by state, tax deducted at source, and the registers an inspector will ask for.

None of that is clever. It is not supposed to be. The cleverness has to happen earlier, at the moment a punch is recorded, or it does not help you at all.

Why we build it this way

Most software in this category treats attendance as a module — one tab among many, feeding a payroll engine that is the real product. We think that is backwards, and we think the month-end spreadsheet is the proof. If attendance were genuinely solved, nobody would need to rebuild it.

So we build the spine first and hang everything off it. Shifts and rosters because they define what a day was supposed to look like. Leave and approvals because a person has to decide what an exception means. Payroll because it is downstream, and it should read the same record you do.

When the timeline is right, everything after it is right. When it is not, no amount of downstream sophistication will save you — it will only make the wrong number arrive faster, and with more confidence.

That is the whole argument. Everything we ship is a consequence of it.