Transparency
Methodology
Each report is a snapshot of how specific AI assistants answered a fixed set of buyer-intent prompts at a point in time. Answers are non-deterministic — re-running the same prompts later can change. This page explains what we measure and what we do not.
1. Prompt generation (~20–30 prompts)
From your brand, domain, category, optional ICP, target market, and competitors, we generate a prompt map with four categories:
- BRAND — questions buyers ask about you directly (what is X, is X good, X pricing).
- CATEGORY — “best {category}” style discovery prompts.
- ALTERNATIVE — exactly three prompts per competitor (alternatives, vs, cheaper options).
- PROBLEM — job-to-be-done prompts without naming a vendor.
Prompts are evergreen (no year stamps) so a later before/after re-test stays comparable.
2. Engines, models, and web search
Free audits run OpenAI with native web search via OpenRouter (openai/gpt-5.6-luna). That is an API model with provider search — not a pixel-perfect copy of the ChatGPT consumer UI. The paid unlock runs the same prompts across all 5 engines. Current OpenRouter model IDs (subject to change as providers update):
OpenAI (GPT-5.6 Luna) — `openai/gpt-5.6-luna` + openrouter:web_search (engine=native)Perplexity (Sonar Pro) — `perplexity/sonar-pro` (built-in Perplexity search)Gemini (3.5 Flash) — `google/gemini-3.5-flash` + openrouter:web_search (engine=native)Claude (Sonnet 5) — `anthropic/claude-sonnet-5` + openrouter:web_search (engine=native)Grok (4.3) — `x-ai/grok-4.3` + openrouter:web_search (engine=native)
Where we attach openrouter:web_search, we set engine: "native"so OpenRouter prefers each provider's own search (OpenAI, Google, Anthropic, xAI) instead of a shared Exa fallback. Perplexity Sonar already searches natively. Citations come from API url_citation annotations when returned. Parser: google/gemini-3.1-flash-lite.
Each engine call sends the buyer prompt only — no brand name, category framing, or “evaluate this vendor” wrapper. Tracked brands are applied later at parse time.
Live example: CodeRabbit AI visibility pilot.
Each prompt is sent once per engine per run (no multi-sample averaging). The report records the run date/time and your selected target market as context for generation, not as a geo-fenced guarantee of localized answers.
2b. Three different measurements
- Consistency / repeatability — several near-simultaneous runs of the same prompts (Research panels). Headline: % of prompts recommended in ≥2 of N runs.
- Before / after — the same prompt set again after you change the site (paid OpenAI re-test). Directional, not a lab A/B.
- Cross-engine agreement — one run of the same prompts across OpenAI, Perplexity, Gemini, Claude, and Grok ($49 unlock).
Free customer audits stay at one OpenAI run. We do not burn 3×5 engines on every paid report — that belongs in Research until a Pro tier.
3. Parsing: mention, recommendation, citations
A separate parser model reads each engine answer and extracts structured fields:
- Mentioned — brand name appears in the answer.
- Recommended— the answer actively endorses the brand (e.g. best / recommended / I'd choose), not merely lists it in a neutral bullet among many options.
- List position — 1-based rank when the answer is an ordered list.
- Citation domains — domains linked/cited in the AI answer itself.
4. Two source layers (do not conflate)
A. AI citations — domains that appear as citations inside assistant answers. These feed the Source gap chart and brand citation rate.
B. Google / Serper search — for CATEGORY and ALTERNATIVE prompts we also fetch Google results via Serper. That data gives ranking context (e.g. whether your domain appears in search for those queries). It is not mixed into the AI citation chart as if Google results were model citations.
5. Visibility Score formula
The 0–100 headline score is a weighted composite of rates computed over successfully parsed engine×prompt pairs in that run:
score = round(100 * ( 0.40 * mentionRate + 0.30 * recommendationRate + 0.20 * citationRateBrand + 0.10 * positiveSentimentShare ))
Underlying rates are always shown beside the score. The composite is illustrative — use prompt-level evidence when deciding what to publish.
6. Before / after
The paid unlock reuses the identical prompt set. Multi-engine coverage is added on the second run; the before/after diff focuses on the free OpenAI engine so the delta stays apples-to-apples. Because models drift, treat the diff as directional evidence, not a lab-grade A/B test.
7. What this is not
- Not continuous monitoring or a weekly tracker (yet).
- Not a guarantee that shipping the action list will raise your score.
- Not legal, medical, or investment advice — it is a visibility diagnostic.
Related: Live Research pilot, All reports, Sample report, Pricing.