thinkhard.SI

Prompt repository Finance & accounting

Check a payroll run against the last one before approval

Before payroll is approved, you want every change from last period found and explained, so errors are caught before people are paid.

Registry no.
FIN-023
Collection
Finance & accounting
Laid out for
Any chat model
Score
10 out of 10
Blanks to fill
5
Added

Finance & accountingAny chat

The prompt

Score 10 of 10, Excellent

Use it when Before payroll is approved, you want every change from last period found and explained, so errors are caught before people are paid.

  • {{approver}}
  • {{previous_register}}
  • {{current_register}}
  • {{known_changes}}
  • {{threshold}}
Full prompt and why it works
Prompt
Compare this period's payroll with the last one and list every difference that needs a check, for {{approver}} to review before approving the run. The goal is to catch errors (a missed leaver, a wrong rate, an overtime typo, a duplicate payment) before money leaves the account.

Last period's payroll register (employee or ID, hours, rate, overtime, gross pay, deductions, net pay):
"""
{{previous_register}}
"""

This period's payroll register, in the same layout:
"""
{{current_register}}
"""

Known changes this period (new starters, leavers, pay rises, bonuses, unpaid leave): {{known_changes}}
Our threshold for a change worth checking: {{threshold}}

Produce:
1. Totals: gross pay, total deductions and net pay for each period, and the difference, with the calculation shown.
2. Changes by person: a table with the columns Employee, What changed, Last period, This period, Difference, Explained by a known change (yes, no, or contradicts it). Include everyone who appears in only one register.
3. Needs checking: changes above the threshold that the known changes do not explain or that contradict them, ordered by the amount that could be wrong, each with the question to ask, for example "Overtime went from 4 to 40 hours; is 40 correct, or a typing error for 4.0?" Include any person or payment that may be duplicated.
4. Arithmetic checks: lines where gross pay cannot be explained by the hours, rates and any overtime premium shown, or where gross minus deductions does not match net pay. For salaried staff, compare with last period instead. If the overtime premium is not shown, say so once rather than flagging every overtime line.

Rules:
- Use only the figures in the registers. Do not judge whether tax or benefit deductions are correctly calculated, because that depends on rules and elections not given here; flag large changes in them as questions for the payroll provider or accountant.
- Refer to people only by the name or ID in the registers, and do not comment on anyone's pay level.

Keep the text outside the tables under 200 words. If the two registers use different layouts, or someone appears under two IDs, say so at the top and match lines only where you are sure.

Variables

{{approver}}
Who approves the payroll run, for example "the owner" or "the finance manager".
{{previous_register}}
Last period's payroll register. Use only an AI tool your company approves for payroll data, and replace names with employee IDs if you prefer.
{{current_register}}
This period's payroll register, in the same layout as the last one.
{{known_changes}}
Starters, leavers, rises, bonuses and leave you already know about, or "none".
{{threshold}}
The smallest change you want flagged, for example "any change over 50 or 5%".

Why it works

  • Who it's for. It is built for the last check before approval, so it looks for the errors that matter then: missed leavers, wrong rates, typos and duplicates.
  • What good looks like. Every line's gross and net pay is recomputed, allowing for overtime premiums and salaried staff, so real errors stand out instead of a wall of false alarms.
  • What to avoid. It does not judge tax or benefit deductions, which depend on rules it has not been given, and sends large changes in them to the payroll provider.

How to use it

  1. Press Fill in variables and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/payroll-change-check

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "payroll-change-check"}, or just ask for it by name.