An AI visibility score measures how often a brand appears in a defined set of AI-generated answers. The number is meaningful only when its unit, denominator, prompt set, engines, reporting period, and brand-matching rule are stated. For example, if 42 of 100 eligible prompt runs across ChatGPT, Gemini, and Perplexity mention a brand during October, the prompt-run visibility rate for that scope is 42%.
That rate is not the same as citation rate, competitor share of voice, sentiment, engine coverage, or business impact. HubSpot currently describes its brand visibility score as the percentage of tracked prompts in which a brand appears. That is a vendor definition, not a universal industry standard. Its AEO setup and usage guide describes prompt-level tracking and related reporting, but it does not establish one scoring formula for every measurement program.
This guide turns that narrow definition into an auditable measurement design. It covers prompt versions, repeated runs, engine-level reporting, citation and mention records, duplicate handling, human review, and cautious connections to referrals and pipeline.
A score is comparable only when its prompt set, eligible denominator, engine scope, time period, and brand-matching rule are visible.
What an AI visibility score measures
The headline measure should answer one specific question: in what proportion of eligible answer observations did the intended brand appear?
Prompt-run visibility rate = eligible prompt runs with a brand mention divided by all eligible prompt runs
A prompt run is one execution of one prompt on one engine or available model variant at a particular time. If the same prompt is run repeatedly, each run is a separate observation. Repeated runs capture answer variability, but they also give more weight to prompts that are executed more often.
Counting unique prompts answers a different question: how many distinct questions produced at least one brand appearance during the period? Choose one unit for the headline KPI and label it. Do not compare a unique-prompt rate with a prompt-run rate as if they measured the same event.
HubSpot’s current documentation also describes visibility, citations, sentiment, and competitor comparisons. Those measures can sit beside a headline presence rate, but they should not be silently added together. A composite score requires published normalization, weights, treatment of missing data, and intended interpretation.
Choose the denominator before choosing a score
Write the denominator before collecting results. At minimum, record the reporting period, prompt-set version, engines, geography where relevant, competitor population, eligibility rules, and matching method. Exclude failed or unavailable runs consistently, and report them rather than hiding them inside a smaller denominator.
- Prompt-run visibility: eligible prompt runs with at least one qualifying brand mention divided by all eligible prompt runs.
- Citation rate: either eligible prompt runs with at least one qualifying citation to the brand’s domain divided by all eligible prompt runs, or brand-mentioned responses with such a citation divided by brand-mentioned responses. These denominators answer different questions.
- Share of voice: qualifying brand mention events divided by qualifying mention events for the brand and the fixed competitor set in the same prompt population and period. Document whether repeated mentions in one answer count once or multiple times.
- Sentiment: a classification of mention context. Record the labels, classifier or reviewer, confidence rule, and escalation policy.
- Engine coverage: the engines included and the results for each engine. Coverage describes scope. It is not a substitute for a presence rate.
Report the sample size and engine-level rates beside any combined number. An overall rate can hide a strong result on one engine and a weak result on another. HubSpot says its AEO tool tracks prompts across ChatGPT, Gemini, and Perplexity, but engine availability and product features can vary by product, plan, region, or future release. Describe the engines actually measured.
In a hypothetical period, 42 of 100 eligible prompt runs mention the brand, producing 42% visibility. If 9 of those 42 brand-mentioned responses cite the brand’s domain, the conditional citation rate is 21.4%. If citation rate is instead calculated across all eligible runs, it is 9%. Publish the denominator so readers can tell which question each percentage answers.
Do not interpret a citation as a backlink equivalent. A citation record shows that a URL appeared in a recorded answer. It does not prove that the URL caused the answer, transferred ranking authority, generated a visit, or improved rankings.
Build a prompt set that supports fair comparisons
Choose prompts from real audience questions, products or use cases, buyer stage, and relevant geography. Do not select only questions that already produce favorable answers. Start with a manageable cohort, document why each prompt belongs, and expand through a new version rather than quietly changing the comparison set.
A prompt registry can live in an approved spreadsheet, database, or measurement system. Give every prompt version a stable identifier and retain its exact wording. Useful fields include:
prompt_idandprompt_textbuyer_stage,geography, andproduct_or_use_caseprompt_set_version,effective_from, andeffective_toowner,inclusion_reason, andprompt_status
If wording changes, close the old version and create a new one, or mark the scope break in the report. Keep the engine scope, competitor set, brand aliases, and matching rules stable during a comparison. Record model or product variants when available.
HubSpot’s guide recommends looking at trends across several weeks rather than treating one answer as definitive. A single result is an observation, not a permanent statement about what an engine always says. A useful cohort is deliberately selected, stable long enough to compare, and expanded transparently when the business question changes.
Store observations, citations, mentions, and summaries at separate data grains
Keep the prompt registry separate from prompt-run observations. Define one observation row as one execution of one prompt version against one engine or model variant at one run time. A response can contain zero or many citations and can mention several brands, so citations and brand mentions belong in separate child records. Period summaries are aggregates and should not replace the underlying observations.
A proposed implementation design might use these grains:
- Prompt registry: one row per logical prompt version.
- Prompt-run observation: one row per prompt version, engine, model or product variant, run timestamp, and measurement method.
- Citation record: zero or more rows linked to one observation through
observation_id. - Mention record: zero or more brand or competitor rows linked to one observation.
- Period summary: one aggregate for a declared period, prompt-set version, engine scope, competitor scope, and methodology version.
Obtain results only through an authorized source path, retain the prompt version and exact run context, review classifications, and calculate summaries in a reporting layer. This is a proposed implementation design, not a HubSpot schema. The reviewed HubSpot documentation describes dashboards and daily prompt tracking, but does not document a public AEO API, webhook, export schema, or exact raw-response contract. Confirm available access for the customer’s product and edition before planning automated ingestion. For help reviewing HubSpot configuration and operating requirements, see HubSpot systems consulting.
For each observation, retain the prompt version, engine, model or product variant when available, timestamp, source identifier if supplied, methodology version, response reference or approved storage location, and review status. A compact illustrative record is:
{
"observation_id": "ingest-8f31",
"prompt_id": "pricing_comparison_v2",
"prompt_set_version": "2026-10",
"engine": "ChatGPT",
"model_or_variant": "record_if_available",
"run_timestamp": "2026-10-14T10:00:00Z",
"brand_mentioned": true,
"methodology_version": "1.0",
"review_status": "pending"
}
The values are hypothetical. Store citation records separately with fields such as citation_id, observation_id, original URL, normalized URL, domain, citation position, and verification status. Preserve the original URL when normalizing it, record redirects separately when relevant, and distinguish a link to the brand’s site from an unlinked brand mention.
Prefer a stable source run ID when one is available, and enforce its uniqueness with a database constraint. If no stable source ID exists, assign an ingestion UUID and use a normalized response hash only to flag possible duplicates for review. Do not rely on lookup followed by insert. Concurrent workers can both pass the lookup. Use a database-enforced unique constraint and transactional upsert where concurrent ingestion is possible.
The uniqueness rule must match the declared row grain. A source run ID should be unique within its source system. If no source ID exists, a proposed observation identity should retain the engine, model or variant, prompt version, run timestamp, methodology version, and a run sequence where multiple executions can share a timestamp. Never use only prompt_id and date when multiple runs can occur on the same day. Never use response text alone, because identical text can occur across separate engines or runs.
Calculate and interpret supporting measures
Use deterministic rules for date windows, eligibility, known aliases, domain matching, URL normalization, deduplication, required fields, and aggregation. AI classification can help with ambiguous entity matches, mention context, or sentiment, but it should return bounded fields such as a proposed label and confidence. Validate allowed values and confidence thresholds, then send uncertain or consequential classifications to a person. The classifier should not set the reporting-period score.
For share of voice, freeze the competitor set and prompt population for the reporting period. Decide whether multiple mentions of one brand in one answer count once or produce multiple events, then apply that rule consistently. For citations, count citation-level records only after deciding whether the metric is based on prompt runs, responses, or brand mentions. For sentiment, retain the classification method, label, confidence, reviewer, and review status.
A compact hypothetical scorecard might read:
- Prompt-run visibility: 42 of 100 eligible runs, or 42%.
- Brand-domain citation rate: 9 of 100 eligible runs, or 9%, using the eligible-run denominator.
- Conditional citation rate: 9 of 42 brand-mentioned responses, or 21.4%.
- Share of voice: 24 of 100 qualifying brand and competitor mention events, or 24%, using the documented event rule.
- Context: sentiment method, engines, sample size, competitor set, prompt-set version, and methodology version.
These values are illustrative, not benchmarks. HubSpot documents citation analysis and competitor comparison, but its public pages do not establish a universal citation-rate or share-of-voice formula. Set and retain local rules. Do not interpret citation rate as a replacement for backlink metrics.
Turn a visibility finding into a measured action
Use low-visibility prompts to identify an information gap, not as an instruction to publish more pages automatically. Review the answer, its citations, the user question, and the intended entity. Then decide whether to improve an existing page, create a genuinely useful resource, clarify public brand information that the organization controls, or investigate a third-party source. Assign an owner and a remeasurement date against the unchanged prompt cohort.
Clear answers, useful supporting detail, crawlable pages, and internal links are sensible editorial practices. Google’s guidance discusses people-first content, crawlability, and internal links for its own Search features. It does not establish a universal opening-paragraph length rule for all answer engines. Likewise, Google says accurate structured data should match visible page content and can help its systems understand pages or determine eligibility for supported features. It does not guarantee rankings, AI inclusion, or citations from ChatGPT, Gemini, or Perplexity. See Google’s guidance on generative AI features, its AI features documentation, and its structured data policies.
For a materially inaccurate brand claim, capture the exact engine, prompt, timestamp, answer, and affected statement. Verify it against authoritative owned and public sources, correct information where the organization has control, and recheck later. Escalate regulated, legal, medical, financial, or materially misleading claims for human review before any public response or CRM update. Do not assume that changing a profile, public knowledge source, or markup will automatically change an answer-engine response.
Report trends without claiming causation
Use a monthly like-for-like report for the core trend and a less frequent competitive review when the prompt set and competitor scope are stable. More frequent checks are useful when they answer a defined experiment or investigate a material change, not merely to generate more observations.
HubSpot’s current guide says its tracked prompts run daily. That is vendor-documented product behavior, not real-time monitoring or a guarantee of identical behavior across every plan or region. HubSpot’s AI Search Grader is presented as a one-time check, which is different from ongoing prompt tracking.
Before publishing, include the reporting period, prompt-set version, engines, competitor set, eligible runs, missing and failed runs, metric denominators, methodology version, and known instrumentation changes. Compare engine-level rates before combining them. If the prompt cohort, matching rules, or engine coverage changed, mark the scope break rather than presenting the difference as a clean trend.
- Confirm that the prompt-set version, competitor population, matching rules, and engine scope match the comparison period.
- Show engine coverage and per-engine rates beside any aggregate.
- Reconcile eligible, missing, failed, duplicate, and reviewed runs.
- Publish each numerator, denominator, aggregation rule, and methodology version.
- Define AI referral traffic separately from visibility, branded search, conversions, and pipeline.
- Name the reporting owner and next review date. Label pre and post movement as correlation unless a suitable causal method supports more.
Track AI referral sessions, branded search, conversions, and pipeline as separate measures. Define what qualifies as an AI referral, document the attribution window, and filter invalid traffic under your analytics rules. A person may see a brand in an AI answer and later search for it elsewhere. Without a controlled design or defensible attribution method, do not assign that outcome to the answer. For CRM field ownership and attribution definitions, see CRM systems consulting.
Frequently asked questions
What is a good AI visibility score?
There is no verified universal threshold. Interpret the result against the same prompt set, engines, category context, and your own trend. A percentage without its scope, denominator, and sample size is not a useful benchmark.
Can I compare visibility across ChatGPT, Gemini, and Perplexity?
You can report results across engines, but retain engine-specific observations and rates. Differences in outputs, product variants, coverage, and run behavior can make an unsegmented aggregate misleading. State which engines were measured and avoid treating a combined number as equal performance everywhere.
How many prompts are needed?
There is no universal minimum that makes a score valid. Use a deliberately selected cohort large enough to cover the business questions that matter, then report the prompt count, repeated-run policy, missing runs, and confidence or uncertainty treatment where appropriate. A larger but unstable or biased cohort is not automatically better.
Does structured data improve Google rankings or third-party AI visibility?
Google says AI Overviews and AI Mode use ordinary Search eligibility and SEO fundamentals, with no special AI schema requirement. Accurate structured data must match visible content and may support understanding or eligibility for supported Search features, but it does not guarantee rankings or AI-answer inclusion. Third-party answer-engine presence is a separate measurement.
Does an AI citation count like a backlink?
No. Citation rate is useful for tracking which URLs appear in recorded answers, but it is not a direct substitute for backlink metrics. Track citations, backlink measures, and referral traffic separately.
Can the score prove AI-generated pipeline?
No. A visibility change and a pipeline change may occur in the same period without one causing the other. Use documented referral classification, self-reported discovery, controlled experiments, or another defensible attribution method. Preserve the source observation, attribution definition, lookback window, and review status separately from CRM contact or deal events.
A practical decision rule
Use the same prompts, engines, eligibility rules, and brand-matching method to assess change over time. Publish the headline prompt-run rate with its denominator and supporting measures, and treat business outcomes as separate evidence. If a prompt, engine, model variant, competitor set, or matching rule changes, create a new scope or label the break.
An AI visibility score is most useful as a transparent operating measure. It can show where a brand appears, where it is absent, and which answers deserve review. It becomes misleading when a narrow presence rate is presented as a composite authority score, a backlink substitute, or proof of pipeline impact.
