The assembly can be automated. The judgement cannot, and should not be. Most practices have it the wrong way round: a tool that formats the report, and the underlying record still rebuilt by hand the night before.
Which is why reporting still costs a whole evening in firms that bought something to fix it.
What a client report is made of
Four parts, and only one of them needs a person.
The figures. What happened in the numbers since last time. Already exists in a system.
Progress against what was agreed. Which commitments moved, which did not. Exists only if somebody wrote the commitments down somewhere they can be read again.
What is outstanding. Actions, documents, decisions waiting on someone. Usually scattered across email.
What it means and what to do. The judgement. The part the client is paying for.
The first three are assembly. In most practices they take three quarters of the time and produce none of the value.
Why it is slow, and it is not the writing
The report is rebuilt rather than updated.
The plan lives in a document from the last planning session. The actions live in the emails that followed. The progress lives in whoever last spoke to the client. The numbers live in the ledger. None of these know about each other, so producing a report means reassembling four sources by hand, and the reassembly is identical every quarter.
A reporting tool that formats the output does not touch this. It makes the last ten per cent faster.
What to automate, in order
The record, first. Commitments, owners and dates in one place that is updated as the work happens rather than reconstructed before the meeting. This is the unglamorous one and it is the one that collapses the time.
The figures. Pulled rather than retyped. Connected to where they actually live.
The outstanding list. Anything waiting on the client should be visible to the client continuously, not revealed quarterly. Half the awkwardness of a review is telling someone about three things they could have known for weeks.
The draft. Assembled from the above into something a person edits. Not sent. Edited.
| Part | Automate | Who decides |
|---|---|---|
| Figures since last review | Yes | Nobody, it is arithmetic |
| Progress against commitments | Yes, if the record exists | Nobody |
| Outstanding actions and documents | Yes | Nobody |
| What it means | No | You |
| What you recommend | No | You |
The thing that goes wrong
A report that arrives automatically, with no judgement in it, trains the client to stop opening it.
This is the real risk and it is not theoretical. A dashboard emailed quarterly with no sentence from a human is read twice and ignored afterwards, and the practice that sent it concludes reporting does not matter to that client. It did. The automation removed the only part they valued.
So the test for any automation here: did it remove assembly, or did it remove the person.
What this does for renewal
Advisory renewal is decided in the gaps between meetings, by whether a client can see progress without asking. A practice that can produce a current position in a minute can send something useful in week six, which costs almost nothing and changes how the relationship feels.
That is only possible if the record is live rather than reassembled, which is the first item on the list above and the one most often skipped.
Where Empiraa sits
Empiraa GPS is a strategy and client delivery platform that helps advisors and consultants manage client plans, demonstrate progress and grow recurring revenue. Each client has a portal holding the plan, the actions, the documents and the history, so a review is written from a live record rather than rebuilt from four places. ANI is built into the platform, and GPS shipped its MCP in version 1.22, so a compatible assistant can draft from that record within your permissions. Xero connects natively for actuals and Xero Practice Manager connects through the MCP.
Related reading: Claude for accountants, what it can and cannot do in a practice, and what goes in a quarterly client report.
What clients see between meetings covers the renewal argument above in full.


