local-ai-visibility
Use when a business serves specific towns, suburbs, or service areas and needs to know where AI recommends it. Produces a town-by-engine presence grid and a ranked list of the gaps where rivals get named instead.
Build the town matrix
List every town the business genuinely serves, not just the head city. Phrase each test question the way a local buyer types it — the service plus the place, in plain words. Ask per town, per engine. Results from the head city predict nothing about the suburb next to it: answer engines assemble local answers from thin, hyper-local evidence, and a brand can be the answer in one postcode and absent one over.
Record the local pack separately
For engines that lean on map results, capture presence in the map pack and presence in the written answer as two signals. They move for different reasons: the pack follows profile completeness, reviews, and proximity; the prose follows mentions, citations, and content. A brand can hold one and not the other, and the fix for each is different work.
Make the gap map
For every town-and-engine cell where the brand is absent, record who is named instead, in the engine's own words. Rank the gaps by demand — the search volume behind the question where it is known, population as the proxy where it is not. The output is a ranked list: town, question, who wins it now, and the quoted evidence.
What good looks like
The expert's tell is the visibility cliff: named consistently across the service area except two towns where one competitor dominates every engine — those two towns are the quarter's work, and the quoted answers explain why. The mediocre version checks the head city once, averages everything into a single local score, and hides exactly the gaps that matter. Good output names towns, names the rivals winning them, quotes the answers, and orders the list so the first row is the most valuable fix.