Most audit reports fail for the same reason: they are organised around how the work was done rather than around the decision the client has to make. The findings are correct, the document is thorough, and nobody acts on it.
Here is a structure that survives contact with a budget holder.
Lead with the number, not the method
The first thing on the page should be what this costs the client per year, and what it would cost to fix. Not your methodology, not the scope, not a contents page.
A budget holder reads the first paragraph and decides whether to read the rest. If that paragraph explains how you gathered the data, you have spent your only guaranteed attention on the least interesting thing in the document.
Put the method in an appendix. It matters enormously — it is what makes the findings defensible — but it is reference material, not the argument.
Structure it around decisions
Group findings by what the client would have to do, not by which part of the portal they came from. A section called “Users & Teams” describes your workflow. A section called “Seats you are paying for and nobody uses” describes theirs.
For each finding, four things and no more:
- What is true. The specific, countable fact.
- What it costs. In their currency, per year, or explicitly marked as not directly priceable.
- What to do. A concrete action, not a principle.
- How to check. Where in their own portal they can verify it.
That fourth item is the one people leave out and the one that does the most work. A finding a client can independently verify stops being your opinion.
Price what can be priced, and say so when you cannot
Some findings have a clean number attached: seat waste, marketing-contact tier. Others are real problems with no defensible price — a workflow notifying nobody costs something, but any figure you attach is invented.
Do not invent it. Report those findings in their own section, described in terms of consequence rather than currency: this workflow has notified nobody since March, so whatever it was supposed to trigger has not been happening.
A report that prices everything is a report a sceptical reader will stop trusting the moment they find one number they can argue with. And they will look, because a total that seems too good is the first thing anyone tests.
Name what you could not measure
This is the section that separates a defensible report from a sales document, and almost nobody includes it.
Every audit has blind spots. Some signals do not exist on smaller HubSpot tiers. Some require scopes you were not granted. Some depend on data the portal does not retain. A report that quietly omits these presents a partial picture as a complete one — and if the client later discovers a category you did not cover, every other number in the document becomes suspect.
So state them plainly: here is what was checked, here is what was not, and here is why. Two sentences each.
The counter-intuitive part is that this section makes the report more persuasive, not less. A document that admits its own limits reads as the work of someone who is not selling you something. It also protects you: a finding you flagged as unmeasurable cannot later be held against you as a miss.
If a signal was excluded because the client’s portal tier does not support it, that is worth saying explicitly too. It is genuinely useful information and it costs you nothing.
Show your working
Every number should trace back to something checkable. In practice that means the appendix carries the API calls made, the window measured, and the definitions used — particularly the definition of “active”, which is the one that decides most seat findings and the one a client is most likely to dispute.
Writing the definition down before you run the audit, and holding it for every user including the ones the client likes, is what makes the seat recommendations survive a meeting.
Be careful with the health score
A single composite score is attractive because it is easy to talk about and it trends nicely across engagements. It is also the fastest way to lose an argument, because a client who disagrees with the score can dismiss the whole report without engaging with any individual finding.
If you use one, make it clearly derived from the underlying findings and never let it be the headline. The number that leads should be the money, which is not a matter of opinion.
What to cut
Three things that add length and subtract trust:
Generic best-practice advice. “Review your data quality regularly” is not a finding, and its presence signals that you ran out of real ones.
Screenshots of settings pages. They pad the document and date it instantly. A count is more useful than a picture of the screen the count came from.
Recommendations you cannot deliver. If the answer to a finding is a piece of work you do not do, say so and say who does. Recommending something you happen to sell, immediately after finding the problem it solves, is the pattern clients are most alert to — and being the one firm that does not do it is worth more than the one project you gave up.
Close on the trend, not the total
The last page should make the case for looking again. Not as a sales pitch, but as a fact about the portal: every one of these numbers moves. Seats change with every hire and departure, marketing contacts only ever climb, admin grants accumulate, workflows break when people leave.
Whatever you fix this month will have partially undone itself by next quarter, and the client should know that before they decide this was a one-off exercise. That is the honest version, and it happens to be the argument for a retainer.