The method behind the monthly snapshot.
Public reports are only useful if their methodology is auditable. Here's exactly how the AI Share of Voice report is produced - what we count, what we don't, and what would make us change the method.
A stable set of category-defining questions.
The query set is fixed across months. It targets four clusters of category-defining ABA & behavioral-health marketing questions:
- Agency-selection queries - “best ABA marketing agency”, “ABA SEO agency”, etc. The queries Higglo's buyers are asking when they're ready to evaluate.
- Category-question queries - “how do ABA clinics fix intake conversion”, “what is GEO for healthcare”. The queries that surface our glossary and free tools.
- Proof queries - “what are good ABA marketing case studies”. The queries that surface our case study library.
- Comparison queries - “ABA marketing agency vs in-house”. The queries where the entity surface is still being shaped.
Changing the query set without bumping the queryRevision field would break month-over-month comparison. Major revisions are explicit, dated, and called out at the top of the affected report.
Three surfaces, same prompts.
Each query is sent to ChatGPT (gpt-4o-mini), Claude (claude-haiku-4-5), and Perplexity (sonar) with identical system prompts and a temperature of 0.2. The prompts are the same as those used in the ABA AI Visibility Check, so the public free tool produces directly comparable measurements for any other ABA brand.
Google AI Overviews are tracked manually for the agency-selection cluster but excluded from the headline mention-rate number for now - the API access path is too brittle to be auditable. We'll add it once we can produce a reproducible methodology.
How we count a mention.
A mention is counted when the brand name “Higglo” appears as a whole-word match in the response text. We don't count partial matches, brand fragments, or URLs without the brand name itself.
Approximate rank position is computed by counting the number of distinct brand-shaped phrases (capitalized 1–4 word noun phrases) named before our brand, plus one. This is a directional approximation, not a perfect ordinal - “#1” means “named first”, “#3” means “at least two other brands named earlier”.
Brand sentiment is classified as positive / neutral / negative based on a small adjective-window heuristic. Edge cases get manually reviewed before publication.
Monthly. First business day.
Snapshots are produced on the first business day of each month and published the same week. Mention rate moves slowly across LLM training cycles - weekly tracking would add noise without signal. Quarterly tracking would miss inflection points caused by new model releases.
The data file for each month is committed to source control under src/data/share-of-voice/YYYY-MM.js. Anyone can audit the underlying numbers by reading the file.
Each snapshot is produced by an open generator script (scripts/generate-sov-snapshot.mjs) that runs the standing query set against every surface and scores mentions with the exact same brand detector as our free AI Visibility Check - no hand-picking. It opens the month as a pull request so the numbers are reviewed in the open before they publish.
Things we deliberately don't measure here.
- Branded queries (“is Higglo a good agency?”) - trivially we'll be cited; not informative.
- Long-tail location queries (“ABA clinic in Boise”) - measured separately as part of client engagements.
- Image and video AI surfaces - outside the scope of this text-mention report.
- Sponsored or paid placements - this is organic citation rate only.
Run it on your own brand.
The free ABA AI Visibility Check uses the exact same mention-detection logic. Run it on your brand and the result is directly comparable to the monthly snapshots.
