Help & Guide

Plain-English explanation of every section. Written for Waseem and anyone reviewing the bookkeeper dashboard for the first time.

Your job in one sentence: The system runs automatically every weekday morning. You review what it found, fix anything it flagged, and sign off.

What runs automatically (you don't need to touch this)

Daily bank rec
7:30am AEST weekdays
Pulls every unreconciled bank transaction from Xero, matches them against known coding rules (PayPal fees → account 405, AusPost → account 321, etc.), and drafts the codings in the approval queue. You then approve or reject from the Runs history page or via Telegram.
Rule learning
manual trigger
Analyses 90 days of transactions you've already reconciled in Xero and proposes new coding rules. Ryan reviews and approves them. You don't need to do anything — but if you notice a supplier being miscoded repeatedly, let Ryan know.

What you review each day

Exceptions Transactions the system couldn't match to a coding rule. These show up as exception on the Bank rec page and in the Telegram message. Each one needs a human to open Xero and code it manually — the system won't touch them.
Low confidence matches The system found a partial match but isn't sure — only 1 of 3 signals lined up. These show as low. Check the proposed account code looks right before approving.
New suppliers If a new supplier appears that the system doesn't recognise, it will hit as an exception. Code it in Xero normally. The rule-learning process will pick it up within 30 days and create a rule automatically.

Confidence levels — what they mean

high 3 signals matched: contact name + reference pattern + amount. Very safe to approve. This is the system at its best — treat it like Xero's auto-suggest green tick.
medium 2 signals matched. Safe to approve in most cases, but worth a quick eyeball to confirm the account code looks right.
low 1 signal matched. Needs a human check. The system took a best guess — it could be right, but verify before approving.
exception No rule matched at all. The system didn't guess — it left it blank for you. Open Xero and code it manually. Common causes: new supplier, one-off payment, bank transfer between accounts.

Each section explained

Dashboard

Overview of today's activity. Shows how many runs fired, whether any failed, and your API cost for the day (the system uses AI to learn rules — this cost is normally under $0.05/day). Quick-action buttons let you manually trigger a bank rec or bills run.

Cashflow

30/60/90-day cash projection. Pulls money owed to you (Accounts Receivable) and money you owe (Accounts Payable) from Xero and projects the net cash position forward. The bar chart shows the daily trajectory — bars going red means the projection goes negative.

What to watch: if the Day 30 card goes red, flag it to Ryan immediately.

Bank rec

The main daily workflow. Shows the result of the most recent automated run: how many transactions were fetched, how each was matched, and what account code was proposed. Use the Approve safe button to approve the high and medium confidence ones in bulk. Exceptions stay here until you code them in Xero.

Note: "Run dry-run now" fetches from Xero and shows you what it would do — it doesn't write anything. It's safe to click any time.

Xero auto-confirm

A browser bookmarklet that automates Xero's own bank reconciliation UI. When Xero has already suggested a green match for a bank transaction (the little green tick), this bookmarklet clicks "OK" on all of them automatically — so you don't have to scroll and click 50 times.

How to use it: install the bookmarklet once (drag the green button to your browser bookmarks bar), then click it on any Xero bank rec page. It processes the current page and tells you how many it confirmed.

What it does NOT do: it won't code anything, create contacts, or touch rows where Xero hasn't already suggested a match. It only clicks the green OK buttons Xero generated.

Reconciled history

Shows bank transactions that have already been reconciled in Xero, and which account codes they were coded to. Useful if you want to check how a supplier was coded in the past, or verify that the rule-learning is picking up the right patterns.

Month-end close

Generates a close pack for a given month: P&L comparison (current vs prior month vs prior year), balance sheet reconciliation, anomaly checks, and an AI-written executive summary. Pick the entity and month, click Generate, and wait ~30-60 seconds.

The green/red banner at the top tells you in plain English whether the month can be closed or what's blocking it. Common blocker: unreconciled bank transactions. The banner tells you exactly which accounts and how many.

This does not post anything to Xero. It's read-only — it reads Xero reports and tells you the state, nothing more.

Bills inbox

Reads supplier invoices from a Gmail label (bookkeeper-bills), extracts the key details from the PDF (supplier, amount, date, due date, line items), and creates draft bills in Xero. You still approve each bill in Xero before it's posted — nothing goes through without your sign-off.

To use it: forward or CC supplier invoices to the bookkeeper-bills Gmail label. The system picks them up on the next run.

Runs history

A log of every automated run the system has executed — when it ran, which workflow, what entity, and whether it succeeded. Click "Details" on any run to see the individual operations (transactions it processed) and their current state (drafted → approved → applied).

Operations/applied ratio (e.g. "6/6"): the denominator is how many were drafted, the numerator is how many were actually applied to Xero. A ratio of "6/0" means they were drafted but not yet approved and applied.

Rules

The coding rules the system uses for matching. Each rule says: "when I see a transaction from this contact with this reference, code it to this account." Rules are created by the rule-learning process and reviewed by Ryan before activation. You don't need to manage these directly — but if you see a rule coding something incorrectly, flag it.

Hit count: how many times this rule has been used. A high hit count = well-established rule. A hit count of 0 = new rule that hasn't fired yet.

Settings

System configuration. Shows which integrations are connected (Xero, Gmail, Telegram, Anthropic API) and their status. Also has the global kill switch — if something is going wrong, click "Pause all" to immediately stop the system from writing anything to Xero until the issue is resolved.

Waseem's Xero setup checklist

These three items in Xero unlock the most value from the system. None of them require any code changes — they're standard Xero configuration.

ItemWhat to doWhy it matters
Repeating bills Set up repeating bills in Xero for fixed monthly costs: Xero subscription, Adobe, Apple, Google Ads. Xero → Bills → New Bill → set to Repeating. These costs appear every month. Without a repeating bill, they land as unreconciled bank transactions that need manual coding each time. With a repeating bill, Xero auto-matches them.
Invoice reminders Xero → Settings → Invoice Settings → Reminders → turn on. Set a reminder at 7 days overdue and another at 30 days. Chases overdue receivables automatically. No action needed from you once it's set — Xero sends the reminders.
Hubdoc email Confirm whether Hubdoc is capturing supplier invoices and pushing them to Xero. If it is, check it's working. If not, use the Bills inbox workflow above instead — forward invoices to bookkeeper-bills in Gmail. Prevents double-up bill entry. You want one source of truth for bills — either Hubdoc or the Bills inbox workflow, not both.

Common questions

The system hasn't run today — why? The CRON job fires at 7:30am AEST weekdays only. Check Settings → whether there's a global pause active. If it's a public holiday or the DO server restarted, runs may have been skipped.
Something was coded to the wrong account. What do I do? Fix it in Xero directly — change the account code on the reconciled transaction. Then flag it to Ryan so the rule can be updated or deleted. Don't approve future runs until the rule is fixed.
I see "drafted" operations that never got applied. Is that a problem? It means a run completed but nobody finished the approve+apply flow. Go to Runs history → find the run → click Approve all drafted, then click Apply to Xero. The first marks them safe; the second actually writes to Xero.
I need to stop the system urgently. Settings → "Pause all (global)". This immediately prevents any new Xero writes. The system keeps running (fetching, matching) but won't apply anything until you resume.