How we measure

AI-visibility numbers are easy to inflate and hard to check. This page is the antidote: exactly what we sample, how often, what counts as a mention, and what we refuse to claim.

The engines

We track 9 answer engines. Every one is web-grounded — its answer reflects what a consumer assistant actually tells a buyer today. We never pad the count with ungrounded model variants.

ChatGPT

Grounded

Official provider API with live web grounding enabled, so the answer reflects current web results.

Gemini

Grounded

Official provider API with live web grounding enabled, so the answer reflects current web results.

Perplexity

Grounded

Sampled from a logged-in consumer session — the same answer surface a real buyer sees, not an API approximation.

Claude

Grounded

Sampled from a logged-in consumer session — the same answer surface a real buyer sees, not an API approximation.

xAI Grok

Grounded

Sampled from a logged-in consumer session — the same answer surface a real buyer sees, not an API approximation.

Google AI Overviews

Grounded

Sampled from a logged-in consumer session — the same answer surface a real buyer sees, not an API approximation.

Kimi (Moonshot)

Grounded

Open model answering over live web retrieval: we fetch current search results first, the model answers over those sources with real citations.

Mistral

Grounded

Open model answering over live web retrieval: we fetch current search results first, the model answers over those sources with real citations.

GPT-OSS

Grounded

Open model answering over live web retrieval: we fetch current search results first, the model answers over those sources with real citations.

Cadence — honestly

Freeis a one-time snapshot: your buyer questions are sampled once on Gemini so you can see how you're represented, with no ongoing tracking.

Paid subscriptionssample continuously. The flagship engines run on a daily tick; the search-grounded open models run on a staggered rotation through the week to keep sampling honest without burning budget on redundant checks. Not every question is re-asked on every engine every day — and we'd rather label that precisely than claim “everything, daily.” Your dashboard shows the actual last successful run per engine, always.

Lifetime plans are scan-based: you trigger checks on demand from a monthly pool, plus an automatic weekly Gemini heartbeat that keeps your receipts and change alerts current.

Engines occasionally degrade — a provider outage, a rate limit, an expired session. When that happens the engine's badge goes stale or down in your dashboard and its samples stop counting, rather than being quietly extrapolated.

What counts as a mention

Each sampled answer gets one of three verdicts for your brand (and each tracked competitor):

  • Recommended — the answer actively suggests you for the buyer's question.
  • Named — you appear, but as one option among others or in passing.
  • Absent — you don't appear at all. We show this bluntly, including a score of zero. Most tools flatter; absence is exactly the information you're paying for.

The visibility score averages these over real runs (recommended = 1, named = 0.5, absent = 0, scaled to 0–100). The same scale is used everywhere — dashboard, weekly email, receipts — so no surface can disagree with another.

The rules we can't break

No verdict without a stored answer

Every score, alert and chart traces back to a real sampled answer stored verbatim — engine, timestamp, full text, cited sources. If a run produced no usable answer, it produces no verdict. You can open any number in the product and read the answers behind it.

Scrape garbage is rejected, not scored

Answers pass a sanitizer before they count. Page chrome, sidebar dumps, rate-limit modals and search-result wrappers masquerading as answers are detected and discarded — they never become verdicts, alerts or competitor “wins.”

We report changes, never credit

When a tracked answer changes after you ship a fix, you get the before/after receipt: both answers verbatim, with engine and dates. We say the answer changed. We never say your fix caused it — nobody can prove that, so we refuse to sell it.

No engine verifies its own claim

An accuracy alert fires only when an engine contradicts your own published facts. High-severity claims are then re-checked across independent model families before they carry a confidence label (low → medium → high → verified). The deterministic evidence always wins; a language model never gets the final word over it.

Freshness is disclosed per engine

Every engine in your dashboard wears a live / stale / down badge computed from its last successful run. If a feed stops, it shows as down — it never silently poses as fresh data. Cadence varies by engine and plan, and we label it rather than round it up to “daily.”

Single runs are noise; transitions are signal

AI answers are non-deterministic — the same question can produce slightly different answers an hour apart. So we never alert on one-off wording differences. Change alerts fire only on real transitions per question and engine (you or a competitor entering or leaving an answer, or a new source starting to feed it), deduplicated so each transition alerts once. Where the evidence is too thin to call, the product says “inconclusive” instead of guessing.

What we never claim

→ That a fix you shipped caused an answer to change. We show the change; attribution in AI answers is not provable, by us or anyone.

→ That answers will change on any schedule. In practice, moving an AI answer takes weeks to months, and sometimes doesn't happen.

→ Coverage we don't have. If an engine is down, staggered, or not on your plan, the product says so instead of interpolating.

→ Precision the sample size can't support. Where evidence is thin, you'll see “inconclusive” — not a confident number.

Free one-time snapshot · No credit card