Skip to content

Payroll — EOFY / STP finalisation

Manual test plan for the End-of-Financial-Year STP finalisation screen (/payroll/eofy) — where employees' year-to-date figures are declared final to the ATO so their income statements show "Tax ready" in myGov. Read How testing works first.

This lodges a final STP report to the ATO

Finalisation sends an STP Update carrying the Final Event Indicator. Use the test / EVTE environment only; ATO responses in the 🔧 cases are simulated by a developer. Getting the financial year or the declaration wrong misreports real income to the ATO.

You will need: a payroll company with employees who have year-to-date pay in the selected FY, and a developer for the ATO-response cases.


A. The finalisation screen

A1 — Financial-year selector

Steps 1. Go to Payroll → STP Finalisation. Change the financial year.

✅ Pass if the roster, history, and finalisation target all follow the selected FY; the wording distinguishes the current FY ("pay runs up to today") from a prior FY ("full financial year").

❌ Fail if the roster or finalisation targets the wrong FY — 🔴 Blocker (misreports to the wrong year).

A2 — Search the roster

Steps 1. Type an employee name in the search box.

✅ Pass if the roster filters by name and resets to page 1.

❌ Fail if search returns the wrong employees — 🟠 Major.

A3 — "Show employees with no pay this year"

Steps 1. Toggle Show employees with no pay this year.

✅ Pass if zero-pay employees appear/disappear; a "hidden count" hint shows when they're hidden.

❌ Fail if the toggle has no effect — 🟡 Minor.

Steps 1. Click Full report →.

✅ Pass if it opens the YTD earnings report.

❌ Fail if the link is broken — 🟡 Minor.

A5 — YTD figures per employee

Steps 1. Read each employee's Gross / Tax / Super YTD.

✅ Pass if they match the employee's income statement / pay history for the FY (AUD).

❌ Fail if a YTD figure is wrong — 🔴 Blocker (money).


B. Selecting & finalising

B1 — Select employees (row + select-all)

Steps 1. Tick individual employees, then use the select-all header checkbox.

✅ Pass if only employees with YTD activity are selectable (no-activity rows show "—"); select-all toggles all selectable rows (tri-state). Already-finalised employees stay selectable (for amendments).

❌ Fail if a no-activity employee can be selected, or select-all misbehaves — 🟠 Major.

B2 — Finalise button states

Steps 1. With none selected, then some selected, look at the footer Finalise button.

✅ Pass if it's disabled with "Select employees to finalise" at zero, and shows "Finalise selected (N)" when some are selected. It's hidden entirely when there are no rows.

❌ Fail if you can open finalisation with zero selected — 🟠 Major.

B3 — Declaration dialog 🔴

Steps 1. With employees selected, click Finalise. In the dialog, review the warning, enter the declarer name, tick the declaration.

✅ Pass if the dialog explains it lodges an STP Update with the Final Event Indicator (income statement in myGov 1–2 days, can't be undone from the software) and requires the declaration before submitting.

❌ Fail if you can finalise without the declaration — 🔴 Blocker.

B4 — Lodge-as-client (accountant) 🔴

Steps 1. As an accountant acting for a client, toggle lodge as the client business in the dialog.

✅ Pass if the toggle is enabled only in a practice→client context.

❌ Fail if it appears for a normal user — 🟠 Major.

B5 — Finalisation uses the correct pay/update date 🔧 Needs developer setup

Steps 1. Finalise a prior FY on a date in the new FY (e.g. finalise 2024-25 in July 2025).

✅ Pass if the finalisation is dated to the FY being closed (min(today, 30 June of that FY)) — not today — so it lands in the correct financial year at the ATO.

❌ Fail if the finalisation lands in the next FY at the ATO — 🔴 Blocker.


C. Result & polling

C1 — Accepted finalisation 🔧 Needs developer setup

Steps 1. Ask a developer to make the ATO accept the finalisation.

✅ Pass if a success toast appears ("ATO accepted the finalisation"), the employees show as STP finalised, and the overview counts update.

❌ Fail if an accepted finalisation isn't reflected — 🟠 Major.

C2 — Rejected finalisation 🔧 Needs developer setup

Steps 1. Ask a developer to make the ATO reject it.

✅ Pass if the error message is shown (or "ATO returned N errors — see the pay run detail") and employees are not marked finalised.

❌ Fail if a rejected finalisation shows as successful — 🔴 Blocker.

C3 — Pending / still-processing 🔧 Needs developer setup

Steps 1. Ask a developer to leave the ATO response pending.

✅ Pass if an info toast shows ("Submitted to ATO — waiting…") and the screen polls, then reports the outcome (or "ATO is still processing — refresh in a minute").

❌ Fail if a pending result is shown as accepted/rejected prematurely — 🟠 Major.


D. Drift & re-finalisation

D1 — Drift indicator after a change 🔧 Needs developer setup

Steps 1. Finalise an employee, then (ask a developer / adjust) change their YTD figures so they drift from what was reported.

✅ Pass if the employee shows a "changed since finalisation" delta chip with a "Last sent: $X" tooltip and a needs-resend status.

❌ Fail if drift isn't detected/shown — 🟠 Major.

D2 — "Send update" re-finalises a drifted employee 🔴

Steps 1. On a drifted, finalised employee, click Send update.

✅ Pass if it opens the declaration dialog pre-selected for that employee and re-finalises (amendment) through the same declaration path.

❌ Fail if re-finalisation doesn't send the corrected figures — 🔴 Blocker.

D3 — Finalisation history

Steps 1. View the finalisation history list for the FY.

✅ Pass if it lists prior finalisation submissions for the selected FY.

❌ Fail if the history is missing or shows the wrong FY — 🟠 Major.