AI Tools for Payroll: What a Small Bureau Can Automate and Must Check

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Tools for Payroll: What a Small Bureau Can Automate and Must Check.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Tools for Payroll: What a Small Bureau Can Automate and Must Check.

Automate the sorting and drafting around payroll: triage client queries, chase missing information, flag odd hours and large variances, and summarise reports. Keep the pay calculation, tax settings, bank-detail changes, payment totals and every approval manual or system-checked, with a named person signing off. Never let an assistant calculate pay that nobody recomputes.

The dividing line is simple. AI may read, sort, flag and draft; payroll software calculates; people approve. Rules for pay, tax and statutory entitlements differ by jurisdiction and change often, so the tables below tell you what to verify and how, never what the rate or entitlement is. Wherever a check needs a figure, it comes from the payroll system's own loaded tables, not from a model's memory.

Follow me on Instagram@sagnikteaches

Three buckets for every payroll task

Before choosing any tool, put each task your bureau does into one of three buckets. A task that will not fit stays manual until it does.

Connect on LinkedInSagnik Bhattacharya
BucketWhat it meansExamplesWho signs
AutomateAI does the work and a person samples itSorting inbound queries; drafting replies from approved snippets; drafting chasers; formatting reportsWeekly sample reviewer
AssistAI flags or summarises and a person decides every flagged itemOdd hours; variance explanations; year-end mismatches; lists of missing fieldsThe preparer
NeverNo AI role, or a role only after the result has been verifiedCalculating gross to net; setting tax or withholding codes; changing bank details; releasing payments; approving a runNamed approver

Client queries: the triage checklist

Query triage is where most bureaus find their first hour back, and it is also where a wrong category can hide a missed payment. Work down this list before turning anything on; for the wider picture of where bureaus find time, see how payroll bureaus use AI to cut errors and queries.

Subscribe on YouTube@sagnikteaches
CheckWhy it mattersHow to verify
Categories come from a written list: payslip copy, pay date, leave, new starter, leaver, change of details, deduction or tax question, payment problem, complaintFree-form categories drift and bury urgent itemsReview the list quarterly; "other" above 10% of messages means a missing category
Urgent categories are hard-wired: "not paid", "paid wrong" and "bank details changed" jump the queueA missed payment query is the costliest one to leaveSeed the test set with urgent emails; none may be missed
Routine replies come only from approved snippets with merge fieldsFree-text answers about pay or tax can state a rule wronglyName an owner for the snippet library and date every change
A person sends every reply that touches amounts, deductions, entitlements or datesThe assistant cannot see the client's configurationThe reply log shows who approved each one
Bank-detail change requests are never actioned from the message itselfAn email asking to change bank details is a known fraud route for diverting payCall back on a number already on file and log the call
Complaints, disputes and distressed messages go to a senior personTone and liability matter more than speedKeyword list plus a weekly sample

The sums, on assumptions you should replace with your own. A bureau serving 40 clients receives about 150 client emails a week, and 60 of them are routine.

  • Sorting by hand at 1.5 minutes each: 150 x 1.5 = 225 minutes, 3.75 hours.
  • With AI proposing a category and priority and a person glancing at 20 seconds each: 150 x 20 = 3,000 seconds, about 0.8 hours.
  • Routine replies from scratch at 3 minutes each: 60 x 3 = 180 minutes, 3 hours. From approved snippets checked at 45 seconds: 60 x 0.75 = 45 minutes, 0.75 hours.
  • Weekly saving: (3.75 - 0.83) + (3 - 0.75) = about 5.2 hours, or about 4.2 hours after an hour of weekly sampling.

Here is a realistic miss and how it would show up. The assistant tagged "My pay is short again, can you check before Friday?" as a payslip copy request, perhaps because "pay" and "check" resemble the wording of a copy request, and a snippet went out with a copy of last month's payslip. The fix is two rules: a phrase list for urgent categories ("short", "not paid", "wrong", "missing") that overrides everything else, and a priority field that a person reads before the category. A routine snippet, for comparison, is deliberately dull: "Hi [first name], your payslip for [period] is attached. If anything looks different from what you expected, reply and we will check it with [client]." It states no amount and promises nothing.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Before the run: input checks an assistant can flag

Inputs are where an assistant earns its keep, because the job is comparison, not judgement. It flags; you or the client decide. The method for hours in particular is worked through in catching timesheet errors before payday.

InputWhat the assistant flagsWhat a person does
Hours importDuplicates, more than 24 hours in a day, negative hours, hours far outside the person's last three runsResolves each with the client in writing; never edits silently
New startersMissing fields: start date, pay basis, tax details, bank details, the identity and eligibility documents your rules requireChases the client; nobody is paid until the record is complete
LeaversLeaving date against final pay items and leave balanceCalculates final pay in the payroll system and has it checked
Pay rate or element changesChanges that are not on the client's authorised change listRejects them, or gets written confirmation from the client
Employee record changesBank, address or tax-setting changes since the last runVerifies bank changes by call-back on a number already on file
HeadcountEmployees paid against the last run and the client's headcount noteExplains each difference line by line

Messy client spreadsheets are the other input job worth giving to an assistant: it can reshape a client's own hours sheet, with its merged cells and free-text notes, into the layout your import expects. The safeguard is a control total. Before reshaping, record the source's totals: say 31 employees and 1,462.5 hours. After reshaping, the import file must show 31 rows and 1,462.5 hours. If it shows 1,452.5, a row or a half-day entry was dropped or misread, and the 10-hour gap tells you roughly how big the missing item is. Check one more control, the count of rows with zero hours, because an assistant can turn a blank cell into a zero and a zero into a blank. A spreadsheet sum produces both totals in a second, and the sum, not the assistant, decides whether the import goes ahead.

Why AI must never calculate pay unchecked: three answers, one salary

Pay arithmetic looks easy, which is why it is dangerous to hand to an assistant. The trouble is rarely the multiplication; it is the method. Take an employee on a $52,000 salary who starts on the 17th of a 30-day month that has 21 working days, 10 of them after the start. All three of these are defensible, and the right one is whichever your client's contract or policy specifies:

MethodWorkingFirst-month pay
Calendar days$52,000 / 12 = $4,333.33; x 14 / 30$2,022.22
Working days in the month$4,333.33 x 10 / 21$2,063.49
Annual salary over 260 days$52,000 / 260 = $200 a day; x 10$2,000.00

The spread is $63.49 on one starter in one month. Across 20 new starters a quarter that is up to $1,270 of pay that is either wrong or arbitrary, and underpaid staff notice. An assistant asked for "the pay for this starter" will choose one method without telling you which, state the answer with confidence, and may slip on the arithmetic as well. That is the reason for the rule, and the check that goes with it is short:

  1. Payroll software calculates pay from the client's configured rules. An assistant never produces a figure that goes into a pay run.
  2. Re-perform a sample in a spreadsheet using the method the contract or policy states: every new starter, every leaver and every pay element that changed, plus five other employees chosen at random.
  3. Investigate any difference above a cent. A difference means the software is configured wrongly, the spreadsheet is, or the contract is ambiguous; all three are worth knowing before payday.
  4. Keep the recalculation with the run file, signed by someone other than the preparer.

The same rule covers tax, withholding and statutory pay. Their rates and thresholds come from the tables loaded in the payroll system for the period, never from a model's recollection of what they were. If a client asks "what is the rate this year?", the answer is a pointer to the system's current table or the rule-maker's own published page, drafted by a person.

After the run: report checks, with a variance worked through

A variance report compares this run with the last and asks the assistant to flag what moved. The flagging is useful; the explanations it offers are guesses until a person ties them to a source. Take a client with 38 employees whose gross pay rose from $93,900 to $96,400, an increase of $2,500 or 2.7%. The rule is to flag anyone whose gross moved by more than 10% and more than $200 (illustrative thresholds). This prompt keeps the assistant to flagging and stops it presenting guesses as findings:

Compare the two payroll summaries below (previous run, this run), matched by employee ID.
Flag every employee whose gross pay changed by more than 10% and by more than $200. For each flagged employee give: ID, previous gross, current gross, change in dollars and in percent.
Then list the questions a payroll officer should ask to explain each change. Do NOT state a cause as a fact. Do not use the words probably, likely or seems.
Finally give the total change across all employees and the sum of the flagged changes, so I can see how much of the movement is unflagged.

PREVIOUS RUN
[paste anonymised summary]
THIS RUN
[paste anonymised summary]

Its last instruction hands you the reconciliation for free: total movement, flagged movement and the unflagged remainder. Here is what a run looks like on the example client:

Flagged lineChangeAssistant's suggested causeVerified against
Employee A+$1,150OvertimeApproved hours sheet
Employee B+$640OvertimeApproved hours sheet
Employee C+$2,900New starter, full monthStarter form and start date
Employee D-$3,200Leaver, part monthLeaving date and final pay calculation
Employee E+$1,010"Probably a bonus"Authorised changes list: no bonus listed

The first test is arithmetic: 1,150 + 640 + 2,900 - 3,200 + 1,010 = 2,500, which matches the total movement, so nothing unflagged is hiding in the difference. The second is the last row. The assistant's "probably a bonus" fitted the pattern and was wrong; the cause was a pay-rate change keyed with an effective date earlier than the client had authorised, so one employee was overpaid by $1,010 and the fix happened before the payment file went out. Every flagged line needs a source document, and any line the assistant explained with "probably" gets investigated, not accepted.

Three further checks belong after every run, and none of them should rely on AI alone. The payment file total equals the net pay on the report to the cent, and the number of payments equals the headcount paid. Third-party remittances, such as tax and pension contributions, equal the report totals. The payroll journal agrees with the ledger; matching payroll reports to the ledger with AI shows how an assistant can speed that match without taking over the decision.

Year-end prep: what to automate and what to verify line by line

Year-end suits an assistant because it is repetitive and dated, and it punishes errors because corrections reach many people at once. Filing deadlines and statement formats differ by jurisdiction, so keep them in your compliance calendar from the rules your clients are under.

TaskAI's partVerify by
Chasing missing client information: leavers, benefits, correctionsDrafts chasers from a checklistA tick-off log showing each client's reply
Employee year-to-date totals against the ledger and previous submissionsFlags mismatchesA person resolves each one; totals agree to the cent
Year-end statements issued against headcount, including leaversCounts and lists anyone missingA person confirms the list against the client's records
Client covering letters explaining what is attachedDrafts from a templateA person checks every date and amount
Corrections to earlier filingsSummarises what changedA person verifies each against the original filing

A worked mismatch shows the pattern. The assistant compares each employee's year-to-date gross in the payroll system with the postings in the ledger and flags one person: payroll says $48,230.00, the ledger says $47,230.00, a difference of exactly $1,000.00. A round number is a clue, not an answer. The preparer finds a $1,000 bonus paid in the last run of the old year but posted to the new year's ledger, so the ledger needs a timing correction and the payroll figure stands. If anyone had asked the assistant to "make them agree", a plug figure would have hidden the timing error, which is the outcome a year-end check exists to prevent.

The longer version, with the places where AI misleads, is in the payroll year-end checklist.

Rules for data and access when clients' pay data is involved

Pay data is some of the most sensitive information a business holds, and your clients trusted you with it, not with whichever tool is fashionable. Five rules keep the exposure small:

  1. Anonymise before prompting. Use employee IDs rather than names, strip national ID numbers, bank details and addresses, and give the assistant structure and totals instead of full records. Safe prompts that never include pay data shows what that looks like in practice.
  2. Use only approved tools on business plans. Read the plan's terms on training, retention and who can see inputs, and write the answers down.
  3. Tell clients. Your terms say what AI does, what it never does and which tools process their data.
  4. Read-only access. No tool connected to the payroll system can approve a run, release a payment or change a bank detail.
  5. Log it. Record which tool touched which client's data and when, so a client's question can be answered.

Running the checklist: sign-offs, samples and a monthly test

A checklist nobody records is a wish. Four habits turn it into a control:

  • Two people on every run. The preparer and the reviewer are different people, and the sign-off line carries both names and the time. A filled-in line reads: "Run 11, client 27: prepared T.M., reviewed R.K., 14:10, recalculation attached, variance flags 5 of 5 sourced."
  • Full review first. For a new client, or after any change to the tool, review every item for the first three runs before dropping to sampling.
  • Weekly sample. Read 10 triaged emails and 10 drafted replies, and note any miscategorised or off-script item.
  • Monthly test. Run 50 past emails with known categories through triage and score the misroutes, giving extra weight to urgent categories. Repeat it whenever the prompt, the snippets or the tool change, and keep the scores.

Scoring the monthly test is quick if you keep the same layout every time. An illustrative result for 50 past emails:

CategoryEmailsRouted correctlyNote
Payslip copy1212
Pay date66
Leave55
New starter or leaver65One leaver treated as a change of details
Change of details55
Deduction or tax question65One routed as a pay date query
Payment problem (urgent)65"My pay is short" tagged as a payslip copy request
Complaint22
Bank detail change (urgent)22

That is 47 of 50 correct, or 94%, which sounds fine and still fails. The pass rule is about urgent items, not overall accuracy, and one of the 8 urgent emails (6 payment problems and 2 bank detail changes) was filed as routine. Add the urgent phrase list, run the 50 again, and move on only when all 8 urgent emails come out flagged.

A first month for a bureau of this size might go: week one, write the buckets and the category list; week two, build the snippet library and the urgent phrase list and run the 50-email test; week three, switch on triage for one client group with full review; week four, add the input flags and the variance check on one run, and compare the time and the errors caught with the month before. If you would rather map this with someone, that is the kind of job my AI implementation consultation covers.

Further reads

Sources: published guidance and warnings on payroll diversion fraud (verify bank-detail changes through a separate channel using contact details already on file) and standard bureau practice on segregation of duties and variance review. All figures in the worked examples are illustrative calculations.

Want a payroll check routine that holds up?

On a 1:1 call we'll go through how queries, inputs and reports flow through your bureau today, mark which steps need a named approver, and pick the first one to automate.

Book a 1:1 call with me