Override a blocking issue (Lead approval)
Who does this: Payroll Lead only When: A blocking validation issue is correct in form but does not apply to this specific cycle, and you've satisfied yourself that proceeding is the right call Result: The issue is closed with an override reason on the audit trail. The cycle can advance toward export.
Override is the escape hatch for cases where the validation rules flagged something legitimate, but the rule doesn't fit the reality of this client/cycle. It's deliberately scoped to Payroll Lead only — Payroll Executives can resolve issues by providing the missing artifact, but they cannot bypass a rule. Every override carries a free-text justification that survives in the audit log.
If a normal-shaped resolution path exists (upload the document, ask the client), use Resolve a blocking issue instead. Override is the last resort.
Before you start
- [ ] You have the Payroll Lead role. (Payroll Executives, Platform Admins, and other roles cannot override — see the RBAC matrix. The action is
OVERRIDE_ISSUEin the permission model.) - [ ] You can articulate, in one or two sentences, why the rule doesn't apply. This goes verbatim onto the audit log; assume an external auditor will read it.
- [ ] You've checked there's no normal resolution path. Specifically:
- For missing documents: confirm the document genuinely doesn't exist (e.g. a contractor leaver doesn't need IR21 because they were never on a work pass).
- For variance breaches: confirm with the client that the salary or payroll movement is intentional and you have written confirmation.
- For OCR confidence: confirm you've manually verified the field by looking at the source document.
WARNING
Override is logged with your name, the timestamp, and your justification text. Singapore audit / IRAS reviews can pull this. Keep the reason factual and complete — "client confirmed by email 24 Apr 2026" is good; "approved" is not.
When override is appropriate
| Issue code | Override is appropriate when… |
|---|---|
| FOREIGN_LEAVER_IR21 | The leaver was a Singapore citizen / PR despite being flagged foreign in the source data, OR was a contractor never on a work pass and IR21 is genuinely not required |
| NS_DOCUMENTATION | The NS claim has been withdrawn by the client, OR the documentation has been verified out-of-band and you've recorded the verification |
| DUPLICATE_RECEIPTS | The client confirms two near-identical files are intentionally separate (e.g. two months of the same recurring claim) |
| SALARY_DELTA_THRESHOLD | The client confirms the salary change is intentional (promotion, market adjustment, role change) and you have it in writing |
| PAYROLL_VARIANCE_THRESHOLD | The client confirms the aggregate movement is correct (bulk hiring, large bonus month, restructure) |
| CPF_AW_CEILING | The client has explicitly elected to cap or to proceed; recorded in writing |
| OCR_LOW_CONFIDENCE | You've manually verified the extracted field against the source document |
Override is not appropriate for ATTENDANCE_REQUIRED or DOCUMENT_REQUIREMENTS_MET — those need actual artifacts. If a client truly has no attendance for the month (e.g. all-salaried with no time tracking), the right fix is the document rules configuration, not an override.
Steps
- Open the cycle in the staff dashboard, go to the Issues tab.
- Click into the issue you intend to override. The card shows the rule, the linked employee/change (if any), and the plain-language reason.
- Click Resolve on the issue card.
- In the resolve dialog, set the reason code to POL_APPROVED (Payroll Lead approved — override).
- In the Reason text field, write your justification. Be specific. Examples of good text:
- "Contractor leaver — never on a work pass, IR21 not applicable. Confirmed with client by email 24 Apr 2026."
- "25% salary increase reflects promotion to Senior Manager effective 1 Apr 2026. Letter of appointment on file (uploaded as Files tab evidence)."
- "Aggregate variance reflects 8 new joiners onboarded mid-month per workforce plan. Client headcount confirmation attached."
- Click Resolve.
The issue closes immediately. The cycle re-validates; this issue won't be re-raised because it now has an active override on file.
NOTE
If you uploaded a supporting file (e.g. an appointment letter, an email screenshot) before clicking Resolve, you can attach it as the override's evidence using the file picker in the dialog. Recommended for any override that's not self-explanatory.
How to know it worked
- The issue card shows status CLOSED, override badge, your name, and the justification text inline.
- The Activity log for the cycle records
issue.overridden(note the distinct event type vsissue.resolved) with the full justification text and a link to the file you attached, if any. - The cycle status moves on once the last open BLOCKING issue is closed — see Resolve a blocking issue for the post-resolve flow.
- The Generate Export button becomes available after you click Confirm Review on the cycle header.
What the client sees
Override is an internal action. The client is not notified. If the override stems from something they confirmed with you (a salary increase letter, a bonus authorization), they've already done their part — no further email is needed.
Common situations
| If you see… | It means… | What to do |
|---|---|---|
| POL_APPROVED option is missing from the resolve dialog | You're signed in as a role other than Payroll Lead | Hand off to a Payroll Lead, or have your role corrected by a Platform Admin |
| You override and the issue immediately re-flags | The validation engine thinks new data triggered the rule again | Re-read the issue card — it may be a different employee triggering the same rule. Check the Linked employee tag |
| Auditor asks for justification on a closed cycle | The audit log has it | Cycle detail → Activity log → filter to issue.overridden. Export the log via the Activity log export action |
| You overrode in error | Override events are immutable | Resolve isn't reversible. The cycle moves on; if it reaches the client and is genuinely wrong, raise a revision request after they review |
Related runbooks
- Resolve a blocking validation issue — the standard path
- Request more info from a client — if the artifact really is missing
- Generate the Infotech export — what comes next once issues are clear
- Validation rules reference — what each rule checks
- RBAC matrix — exactly who can override