Methodology
This is the measurement spec. Editorial ranking of generated pages is separate and lives on /about/editorial. Provenance badges live on /trust.
GEO here means Generative Engine Optimization: whether an AI answer names a business. It is not GIS, mapping, or a Google page-one rank. We do not sell a ChatGPT recommendation.
The Live AI Check calls model APIs with two differently worded prompts and keeps the stronger result per engine. Engines in this path: Gemini, ChatGPT, Claude, Perplexity. Results that are not a provider error are cached for 1 hour so the same prompt is not billed twice in a short window.
Query shape when category and city are known: “Best {category} in {city}” plus a second “who is a good {category} in {city}” phrasing. Product listings without a city use a category-only prompt. Ambiguous “GEO” categories are rewritten so the model is not asked a GIS question.
Mention rule. A mention is counted only when the answer contains the business name and is not a refusal, “I don’t know”, or a provider error. Name-in-a-denial does not count. Position is a coarse paragraph index (early / mid / late in the answer), not a ChatGPT Search ranking.
Paid tracking uses a larger engine list, gated by plan. The number on the dashboard is an AI Visibility Rate / Mention Rate: mentioned engines divided by successful mentioned + not_mentioned checks. Failed, missing-config, timeout and fallback checks are excluded. That is not competitive Share of Voice. True SOV is client qualifying mentions divided by total qualifying mentions in an explicitly tracked comparison set, and is omitted when that set does not exist.
The Basic five — the surfaces named in customer copy — are Perplexity, ChatGPT, Gemini, Google AI Overview, Bing. Pro and Premium add more models. A plan cannot be sold an engine its tier does not actually query.
Background refresh is a scheduled cron, not a continuous scrape of ChatGPT’s consumer UI. That is a real product difference versus tools that sample the public ChatGPT front-end. mySOV is a deprecated API alias of AI Visibility Rate, not competitive Share of Voice. See vs Profound.
New records use a shared runId and an explicit per-check outcome. A legacy aggregate such as mentionCount 1 / totalQueries 10 is never converted into one binary mentioned outcome (that would turn 10% into 100%). Unproven aggregates are classified unknown_legacy and excluded from canonical AI Visibility Rate. Zero or missing data is never inferred as not_mentioned. Legacy documents are never merged by timestamp proximity and never combined with a new explicit-outcome run. Excluded counts and reasons are returned as methodology debug metadata.
explicit checkOutcome → use that outcome (new per-check records) runId groups those new records into one run; do not reinterpret mentionCount as one mentioned flag legacyEligibleQuerySemantics=eligible_mentioned_not_mentioned_only → contribute mentionCount/totalQueries as that many eligible checks all other legacy aggregates → unknown_legacy, excluded from visibilityRate (1/10 must not become 100%) zero/missing mentionCount without explicit not_mentioned → unknown_legacy, never not_mentioned never merge legacy documents by timestamp proximity never combine a legacy aggregate with a new explicit-outcome run
group: runId → run:{runId}
else group: checkOutcome → phase0-recordedAt:{recordedAt}
else group: one document → legacy-singleton:{id|recordedAt:engine} (no timestamp-proximity merge)
canonical visibilityRate = reconstruct(latest group's rows only)
do not mix a legacy aggregate into a new explicit-outcome run
excluded unproven legacy counts/reasons are methodology/debug metadata onlyWindow: 60 days. Engines: Perplexity (Sonar API) and Bing organic search signal. Query kind: generic category searches a stranger would type, e.g. "best {category} in {city}". Branded queries are excluded. The bar: your business name or website appears in the answer to at least one of those searches, on at least one of those engines.
ChatGPT is tracked on paid plans. It is not an engine in this guarantee. Sold guarantee engines are exactly Perplexity (Sonar API) and Bing organic search signal. Azure+Bing grounded proxy is diagnostic only. Consumer Microsoft Copilot is not claimed as measured. A mention on one generic query on one named guarantee engine is the bar — not top-N, not “recommended first,” not “cited as the source.”
The 60-day window starts only from captured first-payment, provider subscription-activation, or a verified webhook timestamp that retains a provider event, payment, or subscription ID. Generic subscription.createdAt and business.createdAt are not paid-start. Renewal startDate does not replace the original eligible activation date. Missing, conflicting, cancelled, future, or backfilled dates without provider proof return unverifiable_manual_review — no automatic credit or denial.
GEO score is a 0–100 estimate of how AI-ready a listing looks (profile completeness, content, schema, tracked citations). It is labeled estimated, not live. Public directory order: Plan is not a public sort key (Phase 0B), then VisibilityAI directory completeness score, then name. Not an AI-engine ranking factor.. Active free listings are included in the same organic order as paid listings. Paid plan does not rewrite the mention check and does not buy organic directory or comparison rank.
How those generated pages are written is disclosed on Editorial methodology. Evidence badges are on Trust & provenance.
VisibilityAI allows GPTBot, ChatGPT-User, and OAI-SearchBot in robots.txt. Bingbot and Googlebot are allowed on public pages. Allowing a bot is not the same as being retrieved or cited. IndexNow pings submit URLs; they do not create a Bing or ChatGPT ranking.
Last reviewed 1 September 2026. Corrections: [email protected]. Related: Trust · Editorial ranking · Contact.