An agent that prepares each client's BAS the way the practice already does it — same Xero reports, same checks, same sign-off — and only interrupts a human when something doesn't balance.
Take a client's BAS from “period ended” to “lodged” without anyone having to remember it, prepare it, or chase it — the agent detects the due date, reconciles the ledgers in Xero, calculates and cross-checks every label against the ATO prefill, and drives sign-off.
The agent does the preparation and the chasing. Jack keeps the judgement calls and the lodge button — it never lodges on its own.
Five stages, mirroring the practice's existing FigJam flow. Every failure path is a Google Chat message to Jack with enough detail to act on.
Read prior lodgements in Xero to learn the client's cycle (monthly / quarterly), then write period-end and due dates to the agent's data file.
A daily cron waits until 5+ days after period end, then confirms the bank rec is clean (zero unreconciled transactions). Not clean → urgent Chat to Jack.
Print the relevant GLs, confirm each holds only the expected lines (PAYGW, Wages, GST + Sales for quarterly), and check the balance clears to $0 with the current period removed. Any failure → Chat with account + check + figures.
Compute the period's labels — monthly W1 W2; quarterly G1 W1 W2 1A 1B — ATO lines excluded, and compare against the ATO prefill on the draft Activity Statement. Mismatch → Chat with label, both figures, source GL; then apply Jack's call and fill in W1.
Send the draft BAS and any concerns to the director on Chat. Approved → send Jack the Xero link to lodge; a next-day cron confirms it's lodged. Rejected or outstanding → investigate and loop back via Chat.