An ERP UAT sign-off document is the short, signed record of what was tested, in which cycles, what passed, which defects are still open with agreed workarounds, and whether each acceptance criterion was met. Process owners, key users, finance and the project sponsor sign it before cutover starts. Without it, "UAT is done" is an opinion.
What UAT is, who tests and how to write scripts is in What Is User Acceptance Testing (UAT) in ERP?. This piece is the paperwork: the sign-off document in full, measurable acceptance criteria, a defects register, and twelve accounting test scripts with expected figures. Both templates also come as CSV files.
The UAT sign-off document, section by section
Keep it to two or three pages plus attachments. These are the nine sections I check for on projects.
Document control. Project name, system and version, the UAT environment and the date its data was copied, document version and date.
Scope tested. The processes in scope (order to cash, procure to pay, inventory, record to report), the integrations included (bank file, e-invoicing, online shop), and, written just as clearly, what was not tested and why.
Test cycles and dates. Cycle 1, cycle 2 and any retest cycle, each with start and end dates, the testers by name, and the data set used (for example, "migrated test load of 30 September").
Pass and fail summary by process. For each process: scripts planned, run, passed, failed and blocked in the final cycle.
Open defects by severity. Every defect still open, with its ID, severity, agreed workaround, owner and fix date. Closed defects stay in the register, not here.
Acceptance criteria: met or not met. Each criterion agreed before testing, with the evidence and a plain "met" or "not met".
Conditions of acceptance. What must happen before or after go-live for the acceptance to stand: "DEF-014 fixed and retested by 14 November".
Decision. One of three: accepted, accepted with conditions, or not accepted.
Sign-off block. Name, role, process area, decision, signature and date for each process owner, each key user, the finance lead and the project sponsor. The implementer signs to acknowledge receipt, not to accept.
Attach the script list with results, the defects register export, and the trial close reconciliation. A pass and fail summary in section 4 might read like this (example figures):
Order to cash: 14 planned, 14 run, 13 passed, 1 failed (severity 3, workaround agreed).
Procure to pay: 11 planned, 11 run, 11 passed.
Inventory: 9 planned, 9 run, 8 passed, 1 failed (severity 2, fix date agreed).
Record to report: 12 planned, 12 run, 12 passed.
Acceptance criteria you can actually measure
"Works to the satisfaction of the business" cannot be met or failed, so it turns sign-off into a negotiation. Agree criteria like these before the first script runs:
100% of in-scope scripts run in the final cycle, and at least 95% passed.
Every requirement in the fit-gap register covered by at least one passed script.
Zero open severity 1 defects.
Every open severity 2 defect has a written workaround, a named owner and a fix date, accepted in writing by the process owner.
No more than an agreed number of open severity 3 defects (on SME projects I usually agree a ceiling of around ten), each with a workaround.
A month-end trial close in the new system balances to the old system for the same month: trial balance, receivables and payables ageing, and stock valuation agree, with any difference explained.
GST report figures for the test period agree to a manual calculation from the source documents.
Opening balances agreed and signed by finance.
Testers ran their scripts with their own production user rights, not an administrator login.
Each key user confirms they can train and support their team.
Teams most want to drop the trial close. I insist on it: it is the only test that proves the whole accounting setup works together.
Defect severity 1 to 4: agree the definitions first
End-of-UAT arguments are usually about severity. Write the definitions into the UAT plan:
Severity 1, critical. A process is blocked, a financial or tax figure is wrong, or data is lost, with no workaround. Must be fixed and retested before go-live.
Severity 2, major. The process completes, but a key step is wrong or needs a manual workaround. Go-live only with a written workaround, an owner, a fix date and the process owner's acceptance.
Severity 3, minor. An inconvenience with an easy workaround, a rare scenario, or a report layout issue. Can go live, listed in the sign-off.
Severity 4, cosmetic. Labels, spelling, colours. Logged for after go-live.
These map to the critical, major and minor levels in the UAT explainer, with cosmetic split out. Anything nobody asked for during design is not a defect at any severity. It is a change request. The tester proposes a severity, the process owner confirms it, and the implementer cannot downgrade one alone.
The ERP UAT defects register template
One row per defect, with these columns:
ID, such as DEF-014, plus the date raised and who raised it.
Process and test script ID, including the step number where it failed.
Steps to reproduce, specific enough for someone else to repeat.
Expected result and actual result, both as figures or exact behaviour.
Severity, 1 to 4, using the definitions above.
Cause, once investigated: configuration, data, custom code, training, or change request.
Owner, the person fixing it, and the fix target date.
Status: open, in progress, ready for retest, closed, reopened, deferred, or rejected as not a defect.
Workaround, if one is agreed.
Retest date and retested by.
Evidence: the screenshot file name and the document number in the test system.
An example row: DEF-014, procure to pay, script ACC-05 step 4. Expected: a supplier bill for 100 units against a receipt of 90 is blocked from payment. Actual: the bill posted and appeared in the payment run. Severity 2, cause configuration, owner the implementer, workaround "AP checks receipts manually before each payment run", fix by 14 November, evidence BILL-00087 and a screenshot.
Three rules keep it honest: one row per root cause, no closing without a retest by the person who raised it, and change requests moved to scope control the day they are spotted.
12 accounting test scripts for ERP UAT
For the accounting side, every script ends in the ledger and a report, with expected figures worked out before the test. Example figures, at the 9% GST standard rate:
ACC-01 Opening balances. Load the opening trial balance, open receivables, open payables, stock and the fixed asset register. Expected: the trial balance agrees line by line with the old system after account mapping, and each sub-ledger total agrees to its control account. See opening balances in an ERP migration.
ACC-02 AR invoice to GST report. Invoice 10 units at S$200. Expected: S$2,000 revenue, S$180 output GST, S$2,180 receivable; the GST report shows S$2,000 in Box 1 and S$180 in Box 6.
ACC-03 Credit note. Credit 2 of those units. Expected: a credit note of S$400 plus S$36 GST, linked to the invoice; Box 1 and Box 6 reduced by S$400 and S$36; customer balance S$1,744.
ACC-04 Customer receipt and bank reconciliation. Import a bank statement line of S$1,744 and match it. Expected: the invoice and credit note show as fully paid, and the reconciled bank balance equals the statement closing balance.
ACC-05 AP bill with three-way match. Order 100 units at S$50, receive 90, enter the supplier's bill for 100. Expected: a quantity variance of 10 units (S$500) flagged and the bill blocked; once corrected to 90, S$4,500 plus S$405 GST posts. The logic is in three-way matching.
ACC-06 Payment run. Select bills due by a date. Expected: blocked and unapproved bills excluded, the bank file total equals the payment journal, and the bank file format is accepted by your bank's test or validation tool.
ACC-07 Foreign currency revaluation. Raise a USD 10,000 export invoice at 1.35 (S$13,500, zero-rated, Box 2). Revalue at month end at 1.30. Expected: an unrealised loss of S$500, reversed on the first day of the next month. Receive the money at 1.32: a realised loss of S$300.
ACC-08 Accruals and prepayments. Accrue a S$3,000 fee at month end with automatic reversal, and spread a S$12,000 annual prepayment over 12 months. Expected: the accrual reverses on day one, S$1,000 a month is expensed, and S$11,000 remains prepaid after month one.
ACC-09 Fixed asset depreciation. An asset in the opening register cost S$36,000, straight line over three years, nil residual value. Expected: the depreciation run posts S$1,000 for the month and net book value drops by S$1,000.
ACC-10 GST F5 figures. Run the GST report for the test period and compare it with a manual calculation. From ACC-02, 03 and 07 alone the expected values are Box 1 S$1,600, Box 2 S$13,500 and Box 6 S$144, plus S$405 in Box 7 from ACC-05 and any other test bills. IRAS asks for net realised exchange gains or losses in Box 3 (S$300 here) and generally not unrealised ones, so check where your system puts the ACC-07 entries.
ACC-11 Month-end close. Run the full close checklist in the new system: bank reconciliations, depreciation, accruals, revaluation, sub-ledgers against control accounts, then lock the period. Expected: everything agrees, and posting into the locked period is refused.
ACC-12 Trial close against the old system. Process one real past month in the new system. Expected: trial balance, P&L, receivables, payables and GST figures agree with the old system for that month, and every difference is explained in writing. The parallel run and go-live checklist covers how far to take this.
What to do when sign-off is refused
A specific refusal is useful; a vague one is expensive. When a process owner or finance will not sign:
Ask for the refusal in writing against the criteria. Which criterion is not met, and which defect IDs are behind it.
Sort the items into three piles. Real defects go back to the implementer with a retest date. New requirements go to change control. Gaps in confidence or training go to the key users and the training plan, not the system.
Agree a remediation plan. Owners, fix dates and a date for a short retest cycle covering the failed scripts and anything the fixes touch.
Move the cutover date if you have to. Going live on a refused sign-off moves testing into your first month of real transactions. The cutover plan should have a go/no-go point for exactly this.
Escalate to the sponsor only for decisions, not to overrule. The sponsor can accept a risk in writing, defer a process or change the date. A sponsor signing over finance's objection to a wrong GST figure is a classic warning sign.
If a payment milestone is tied to sign-off, a refusal against agreed criteria protects you commercially. One against criteria nobody wrote down protects no one.
The two templates as CSV files
Both templates come as plain CSV files for Excel or Google Sheets:
uat-sign-off-checklist.csv follows the nine sections above, one row per item, with columns for what to record, evidence, status, owner and comments. Each acceptance criterion is its own row.
uat-defects-register.csv has the register columns above and two example rows, one open and one closed. Delete them before you start.
FAQ
What should an ERP UAT sign-off document include?
Scope tested, test cycles and dates, a pass and fail summary by process, open defects by severity with workarounds, each acceptance criterion marked met or not met, conditions of acceptance, a decision, and signatures from process owners, key users, finance and the sponsor.
What is an ERP UAT defects register?
A single list of every failure found in UAT, with the script it came from, expected and actual results, severity, cause, owner, status, retest date and evidence. It drives the fixes and becomes an attachment to the sign-off.
What are good UAT sign-off acceptance criteria for defects?
Zero open severity 1 defects, every severity 2 defect with a written workaround and fix date, an agreed ceiling on severity 3 items, and all in-scope scripts run with at least 95% passing in the final cycle.
How do you do UAT testing for an accounting ERP system?
Write scripts that end in the ledger and the reports, with expected figures calculated first: invoices to the GST report, credit notes, receipts and bank reconciliation, three-way match, payment run, revaluation, accruals, depreciation, opening balances and a full trial close.
Can you go live with open UAT defects?
Yes, if none is severity 1 and every severity 2 item has a workaround, an owner and a fix date that the process owner has accepted in writing.
About to start UAT and want a second pair of eyes on your scripts and acceptance criteria? I do a free 20-minute systems review. No pitch, just your questions answered.
The figures in the test scripts and the pass and fail summary are illustrative examples, not from a real project. GST treatment is general information as published by IRAS in October 2026; check the current guidance for your own situation.
I'm Sayed. I help business owners automate their operations and set up the systems behind them: ERP, accounting, inventory, CRM and workflows. I write The Gantry about what actually works.




