Payroll Is the Wrong Place to Move Fast and Break Things
A founder's case for correctness-first payroll engineering: why a bug is someone's rent, why a wrong remittance is a regulator's penalty, and why our AI drafts but never decides.

"Move fast and break things" is the most quoted line in software. It built some of the largest companies on earth. And in payroll, it is close to malpractice.
I say that as someone who loves shipping. But payroll is not a photo feed. When a feed has a bug, a picture loads slowly. When payroll has a bug, someone's rent is short on the 28th, or a pension remittance goes to the wrong account, or a filing is late and a regulator sends a bill. The blast radius of a "small" mistake is a real person and a real penalty. So we built AnooreHR on a different mantra: move deliberately and prove things.
The asymmetry nobody prices in
Most software has symmetric errors. A wrong recommendation and a right one cost about the same to fix — you patch, you redeploy, you move on. Payroll errors are asymmetric. A rounding bug that overpays staff is awkward to claw back. A rounding bug that underpays them erodes trust you spent years building. And a bug in a statutory calculation is not just a code fix — it is a compliance event.
Consider what the Nigeria Tax Administration Act 2025 does to a late or missed PAYE remittance. Tax that stays unpaid past the deadline attracts a 10% penalty plus interest at the CBN monetary policy rate, and failure to file the required return carries an administrative fine of ₦100,000 in the first month and ₦50,000 for every month it continues (Banwo & Ighodalo). Those provisions took effect on 1 January 2026 and are administered by the Nigeria Revenue Service, the renamed FIRS. Confirm the current figures with the NRS before you rely on them — but the shape is clear enough to make the point.
A UI bug costs you a re-deploy. A payroll bug costs you 10% plus interest plus a monthly fine plus the phone call to your accountant. The error is not symmetric, so the engineering cannot be either.
What correctness-first actually means
"Correctness-first" is easy to say and expensive to mean. For us it shows up in three concrete decisions.
Tax logic lives in data, not code. Every rate, band, threshold and statutory rule sits in a country profile pack — versioned JSON — rather than hard-coded in a function somewhere. When the NTA 2025 abolished the Consolidated Relief Allowance and replaced it with a Rent Relief of min(20% × annual rent, ₦500,000), that was a data change with an effective date, not a frantic code rewrite the night before payroll. A rule you can read, diff and date is a rule you can prove.
One ledger, one truth. Payroll posts straight into the double-entry general ledger on the same shared ledger the rest of finance uses. There is no nightly export, no reconciliation spreadsheet, no window where two systems disagree about what was paid. When numbers can only live in one place, they cannot silently drift apart in two.
We test the boring paths hardest. Proration for a mid-month joiner. A leaver's final run. The employee who sits exactly on a band boundary. These are the cases where "move fast" quietly ships a defect, because they are tedious and rare — right up until the month one of your people is that edge case.
Human-in-the-loop, on purpose
Here is the part that gets me the most pushback, usually from people who love AI: we deliberately built our AI assistant to draft, never to decide.
The assistant can chat your books in plain language, flag an anomaly — "this month's PAYE jumped 40%, here is why" — and draft a journal entry, a filing summary or a payslip note. What it cannot do is move money or file with a regulator on its own authority. Nothing that touches a bank or a tax office happens because an AI decided it should. A human reviews the draft and approves it.
That is not timidity about AI. It is respect for what AI is good at. Large language models are superb at reading messy context, spotting the outlier, and drafting the first version fast. They are not accountable. When the NRS sends a query, "the model was fairly confident" is not a defence. A named person who reviewed and approved the run is. So we put the AI where it removes drudgery and the human where the liability lands. Speed on the draft, deliberation on the decision.
The honest version of this trade-off: it makes some flows one click slower than a fully autonomous system would be. I think that is the right click to keep. Autonomy is cheap to add and very expensive to unwind the first time it wires a wrong payment.
The worked example nobody wants
Say a fast-and-loose payroll tool ships a bug that misclassifies a bonus, understating PAYE by ₦120,000 across a 30-person company for one month. On a "move fast" system, that ships Friday and nobody notices until the return is due.
| What happens | Cost |
|---|---|
| Underpaid PAYE | ₦120,000 owed |
| Late-payment penalty (10%) | ₦12,000 |
| Interest at MPR until settled | accrues monthly |
| Late/incorrect return fine | ₦100,000, then ₦50,000/month |
| Staff trust when payslips are re-issued | not on any invoice |
The "small" bug is now a multi-hundred-thousand-naira event and an awkward conversation with 30 people. A correctness-first system aims to make that bug hard to ship in the first place — versioned rules, one ledger, a human check before the run goes out — and cheap to trace when it does, because every figure has a source you can read.
The honest limit
Deliberate does not mean slow for its own sake, and it does not mean perfect. No payroll system is bug-free, ours included. What correctness-first buys is not the absence of errors — it is that errors are contained, traceable and reversible before they reach a bank or a regulator, instead of discovered afterward in a penalty notice. That is the promise I am willing to make. "We never make mistakes" is not a promise anyone in this business should believe.
Does AnooreHR handle this?
This philosophy is the product, not a footnote to it. AnooreHR keeps every tax rule in a versioned, dated country profile pack — Nigeria live today, more on the roadmap — posts payroll straight into a double-entry ledger, and puts a human approval step in front of anything that moves money or files a return. The AI drafts and flags; you decide and sign off. If you want to see how the draft-not-decide model works on a real run, book a quick demo and bring your messiest edge case.
Related reading: One system for HR, payroll and finance on one ledger, Country profile packs: a tax engine in JSON, Chat your books with the AI assistant
AnooreHR is free for teams up to 3.
PAYE, Pension, NHF, NSITF, ITF — all handled. No setup fee, no card.
Get started freePan-African payroll, HR, and accounting specialists. Every rate and rule is checked against the primary regulator before it ships.
More about our editorial team

