How the AI visibility score is measured, and what it does not mean.
For each project, enspire asks AI assistants the questions a prospective buyer would ask before they know the product exists, then uses a second model to extract whether the product is recommended, in what position, who is recommended instead, and a short excerpt. We also retain the citation, grounding, or search-result links returned by the provider. We do not scrape consumer chat UIs or store the complete provider answer.
Each configured engine included in a scan is queried through the vendor’s official API with web search or grounding turned on:
API answers are a stand-in for what a person sees in the app. Published comparisons show meaningful differences between API and UI answers (different length, sometimes different picks), so treat the score as a consistent, repeatable proxy rather than a screenshot of one person’s chat. We prefer the official APIs because they provide a consistent integration surface and are within each vendor’s terms.
For a public website check, questions are generated from readable HTTPS homepage text. For a public repository check, they come from the README and package metadata. In the workspace, the owner confirms or edits the product description and final question set. Suggested formats include “best X for Y”, “X vs Y”, problem-phrased and persona-phrased questions, and long-tail questions with a specific constraint. The product’s own name never appears in a question. The set is frozen after the first scan so scores are comparable over time; you can add or retire questions, and the history notes when the set changed.
AI answers are non-deterministic: the same question asked twice can name different products. Paid plans ask each question × engine 3 times per scan. The headline score is the average; the range shown next to it is the lowest and highest score across those runs. If the range is wide, the answers are unstable for your category and single-run tools are showing you noise.
Each answer contributes 1.0 if the product is the first recommendation, 0.7 if it is in the top three, 0.4 if it is mentioned lower, and 0 if it is absent. The visibility score is the mean across all question × engine × run answers, times 100. Per-engine scores use the same formula on that engine’s answers only. A page’s before/after uses the same formula restricted to the question the page targets.
We keep the URLs the provider returns as citation, grounding, or search-result metadata, capped in the public report. These are not equally strong evidence: some are inline citations, some are search results, and some engines return redirect links or only a domain title. For frequently returned sources we fetch the page and check whether it names the product (“listed” / “not listed”). Links that cannot be checked show as “unchecked”.
No model calls: we fetch robots.txt, sitemap.xml, the homepage and llms.txt. The robots result is a root-path heuristic for GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, Bingbot and CCBot; it does not prove that another URL is crawlable or indexed. Failed, unauthorized, rate-limited, and server-error robots fetches are shown as unknown rather than allowed. We also check for readable server-rendered text and read the JSON-LD types on the homepage. llms.txt is reported as optional; finding the file does not prove that an assistant used or cited it.
It is not traffic, not revenue, and not a promise. It is a repeatable measure of whether the assistants buyers use name your product for the questions you care about. Use it to pick what to ship next, and read the before/after on merged pages as the real signal.
Questions? FAQ · support@enspire.co