The most sellable findings in a customer audit are the ones I had to cut
I assumed the hard part of generating a customer-facing audit would be finding things to say. Producing findings turned out to be two API calls and about a second and a half. Deleting them took the rest of the day. I hand-built four audit reports for three UK hair salons on live Google Places data, keeping a note of every claim I wanted to make and could not evidence. The note is longer than any of the reports it belongs to, and nearly every line in it would have helped close a sale.
The most sellable line available to a local-business audit is some version of "you need eleven more five-star reviews to reach 4.5." I could not write it. Google returns a rating already rounded to one decimal place and never returns the underlying distribution. Treating a displayed 4.3 as the exact mean of seventy-eight reviews, which any "you need N more" calculation has to, is an assumption about a number Google has already transformed. The arithmetic would look rigorous and be built on a guess, the same failure that caught me on this project once already, when sensible-looking output turned out to be wrong on the one axis that mattered. What survived is ordinal. Fifth of five on rating, 0.1 behind the salon above. True of the displayed values and of nothing else.
"Your rating is costing you customers" never made it in either, and the pull toward it was structural rather than careless. There is no traffic, impression or conversion data anywhere in this pipeline. Two calls to Places, no analytics, nothing about anyone who has ever looked at the profile. But the report shape wants a consequence clause at the end of every finding, and no defensible one exists for any of them. Every finding across all four reports therefore terminates in an observation, which is the single biggest felt difference between these and a typical agency audit.
Photo freshness is the most natural line in this kind of audit and it does not exist. The photo objects the API returns carry a name, a width, a height, author attributions and two URLs. No date field of any kind. "Your last photo is eight months old" stays unmeasurable from this source no matter how much I want it, so all four reports say so under a heading listing what the audit cannot see. Stating the absence read as more credible than skipping it quietly, which I did not expect.
Photo count looked safe and was not. Thirteen of the fourteen listings compared across the three reports returned exactly ten photo references, Google's cap on that field. A spike across twenty salons and ninety-two nearby rivals found the same at scale: of ninety-nine places returning a photo count, sixty-five returned exactly ten. So "you have seven, they have ten" is a count held against a ceiling. In one report the subject's seven is a real count and genuinely the lowest in the set, and the comparison is still unmakeable, because each of the four tens beside it only means ten or more. I printed the non-comparison rather than dropping the row, because a reader who knows Google shows photos will otherwise wonder why they went undiscussed.
The smaller temptations had one shape between them: a consequence clause bolted onto a measurement that was fine alone. Zero of twenty-six links on one salon's homepage use a tel: scheme, and the first phone number on the page appears 2,657 pixels down a 3,318-pixel screen. That is solid. "So you're losing calls" is not measured, and did not go in. A mobile-format phone number is a fact. "Suggests a smaller operation" is an inference about a business I have never spoken to.
There is revenue on the other side of every one of those refusals, and it shows. What one report is left with, after the cuts, is a Thursday closing time reading 19:00 on Google and 20:00 on the salon's own website, plus a phone number you cannot tap. Two-minute fixes, verifiable by the owner in ten seconds, and not remotely reputational, which is awkward when the thing being sold is reputation work. A second report, on a salon in a different town, concludes honestly that there is no measured gap: complete profile, rating inside the local band, hours matching, booking one tap from the first screen. That report sells nothing. I built all of them by hand before writing anything that generates them, which is the manual pass that tells you where the judgement actually lives.
Where it lives, on this evidence, is almost entirely in the refusals. A generator will meet every one of these temptations on every lead it touches, at about seven cents of API spend an audit, and the incentive at each one points the same way. Prompting more carefully will not hold that line, for the same reason naming a category of work outright beats trusting care in the moment. The rule has to be written down before the sale is in front of you. In the moment, a guess dressed as arithmetic always looks rigorous enough.