Nebo · tutorial 12 · run the money

Get payroll ready without running it

A verified, run-ready package two days early, with every outstanding approval chased and every anomaly flagged.

TimeAbout an hour
Rolespayroll-coordinator
Triggerschedule
The hard boundary

This employee never runs payroll. Not gated, not approved, not "once you trust it." Payroll errors reach people's rent, are visible to your whole company, and are miserable to reverse. The employee prepares; a human runs it.

The genuine cost of payroll is not the running, it is the week of chasing managers for approvals and noticing on the morning that someone's hours are missing. That chasing is the job here.

Steps

1

Block the run operation first

Before connecting anything, open Controls and set every payroll execution operation to blocked. Do this first so there is no window in which the capability exists.

2

Define what an anomaly is

Payroll mistakes are usually large and obvious in hindsight. Give it thresholds so they are obvious in advance.

Flag for review: - Any employee's gross changed more than 20% vs last period - Hours over 55 or under 5 for a full-time employee - A new employee with no signed start date on file - A leaver still on the run - Any manual adjustment over £500 - Anyone with no hours submitted at all
3

Have it chase the humans

The highest-value part. Missing approvals are the usual reason payroll slips, and chasing them is nobody's favourite job.

Identify every outstanding approval and who owes it. Send each manager one message listing only what they personally owe, with the deadline. One message per manager, not one per item.

Internal reminders are lower-risk than customer contact, so this is reasonable to allow unattended once you have watched a couple of cycles.

4

Produce a checklist a human can sign

Output a run-ready checklist: employee count, total gross, change vs last period, every anomaly with its explanation, every outstanding approval, and an explicit statement of anything you could not verify. End with: READY or NOT READY, and if not ready, exactly what is missing.
5

Run it two days before, and again the morning of

"trigger": { "type": "schedule", "cron": "0 9 23,25 * *" }

Two runs: one with enough time to fix things, one final check. Adjust the days to your own payroll date.

Verify

  • Run against a completed historical period and confirm the totals match exactly
  • Introduce a deliberate anomaly in a copy and confirm it is caught
  • Confirm the run operation is blocked, by asking it to run payroll and watching it refuse
  • Check manager reminders list only that manager's outstanding items

When it goes wrong

Totals differ from the HR system

Almost always a period boundary or a pending change not yet effective. Have it state the exact period boundaries it used in every output.

It flags the same anomaly every period

A legitimately unusual employee, for example a contractor with variable hours. Add named exceptions to the persona rather than raising the global threshold.

Managers ignore the reminders

One message per manager rather than per item, and name the deadline and the consequence. Five separate notifications get muted.