Nowhere to see the numbers
Like most owner-run groups, Sunbird saw its full figures once a year, in the annual accounts. The CEO knew the business. He wanted the numbers to match what he knew, every week, without waiting a year.
My first version read the bank statements: 22,786 transactions, every statement balanced to R0.00. But the group keeps its books in Xero, so he could end up with two cash numbers. When there are two, you trust neither. So I rebuilt it to read Xero and nothing else.
22,786
Transactions read from the bank statements
R0.00
Difference on every statement
What the CEO sees
A dashboard and a Monday email, both from the same Xero figures.
- Up to date every morning
- Both companies’ books are read from Xero overnight, and again whenever the CEO presses Refresh.
- One group, counted once
- Trading between the two companies is taken out, so nothing is counted twice. If the two companies’ records of that trading don’t match, the difference shows on its own line.
- Checked to the cent
- Each month’s profit and loss, added up for the year, has to match Xero’s own figure for the whole year, to the cent.
- Last good figures
- If a night’s read fails or a check doesn’t pass, the CEO sees the last good figures under a red “data as at” banner. If a figure can’t be checked, it doesn’t go on the screen.
- Monthly bank check
- Once a month, the Lockhart Cashflow Review checks Xero’s cash against the bank statements. The dashboard shows each company as “agrees”, or shows the difference.
- Against last year
- Every figure sits beside the same period last year. The group’s financial year runs from 1 March to the end of February.
- Management report
- Three pages, downloaded from the dashboard as a PDF.
- Monday briefing
- One phone screen of headlines, laid out to read properly in Outlook.
- On a phone
- Built for a phone first. The CEO signs in with a one-time code sent by email, so there’s no password to remember.
On the phone, and in the inbox
Every screen here is drawn by the dashboard’s own code.




How it runs
-
02:00
Every night, both companies’ books read from Xero
-
07:30
Every Monday from 26 October 2026, the email to the CEO
-
587
Checks the system runs on itself. No change goes live until every one passes.
I built it from 21 to 23 October 2026. It hasn’t run long enough to say what it has changed.
