How Cabbge measures
AI visibility.
Every score on Cabbge is built from a documented pipeline. This page is the contract — engines we hit, prompt generation, scoring formulas, verification, refresh cadence. Read it, dispute it, cite it.
The pipeline,
one paragraph.
Generate ~20 buyer-style prompts from your vertical (SaaS, ecom, app, local service, media, marketplace). Send the same set to ChatGPT, Gemini, Perplexity, Claude, and Grok with web grounding enabled on each. Extract per-prompt mention + position + sentiment + co-citations + sources. Score each engine separately, blend into an overall using a fixed weighting. Audit off-domain coverage (Wikipedia, Wikidata, Trustpilot, G2, Reddit) and three readiness signals (server-rendered content, AI crawler access, entity grounding). Refresh weekly on Starter, daily on Pro.
Real buyer
questions, not
generic queries.
We don't test you against "best CRM". We classify your URL into a vertical and build a prompt pack tailored to how a real buyer in that vertical would actually phrase the question.
7 buyer personas × 4 use-cases × your category — "best [category] for solo founders", "[category] alternative to [competitor]", brand probes, competitor head-to-heads.
6 use-cases × 4 price bands × competitor compares + trust queries ("is [brand] legit", "[brand] reviews").
Every pack includes a direct "tell me about [brand]" and "[brand] vs [top-3 competitors]" prompt so we measure both unprompted and prompted recall.
Up to five engines.
Same prompts.
Web grounding on.
The free public grader runs ChatGPT + Gemini (the two engines with first-class grounded-search APIs). Paid scans add Perplexity, Claude, and Grok for the full 5-engine surface. Per-engine health is tracked live; if an engine falls back to non-grounded mode it's flagged degraded so you know that engine's score is unreliable for that scan.
| ENGINE |
|---|
| CHATGPT |
| GEMINI |
| PERPLEXITY |
| CLAUDE |
| GROK |
Six things
extracted from
every response.
True / false. Tolerant of spelling variants, acronyms, and aliases (set per-brand by the classifier).
Ordinal position relative to other brands. 1 = listed first, 2 = second. 0 = not mentioned or unparseable.
The exact sentence or phrase where your brand appears. Not a paraphrase.
Positive (recommended / leader-framed), neutral (factually mentioned), negative (criticized), absent.
Every other brand named in the same response. Reveals exactly who is taking your slot.
URLs the engine cited, classified as own_site / competitor / Reddit / G2 / news / docs / Wikipedia / unknown.
The analyzer is
an LLM.
We don't trust it.
For every claimed positive mention, we verify the brand or one of its aliases appears literally in the response text. If it doesn't, we override to mentioned: false, position: 0, sentiment: absent. Without this step, hallucinated mentions silently inflate every downstream metric.
Five trust
anchors checked
live.
Wikipedia article, Wikidata entity, Trustpilot listing, G2 listing, Reddit recency.
↳ blended into a single coverage score 0-100
This is the fastest indicator of whether AI engines have anything to ground a citation in. Low coverage usually maps 1:1 with low visibility.
Three audits
you fix once,
get cited forever.
- /01SERVER-RENDERED CONTENTWe fetch your home page and check the raw HTML — if the first paint is blank and content arrives via JS, AI crawlers won't see it. The single most-common reason SaaS landing pages disappear from ChatGPT.
- /02AI CRAWLER ACCESSParse robots.txt against the 12 must-handle bots — 6 retrieval (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User) and 6 training (GPTBot, ClaudeBot, anthropic-ai, Google-Extended, Applebot-Extended, Meta-ExternalAgent, CCBot). Surface every disallow that blocks a citation.
- /03ENTITY GROUNDINGLook for sameAs schema linking to Wikipedia / Wikidata / LinkedIn / Crunchbase. Engines treat sameAs as the trust anchor between an entity and its citations.
Position-weighted.
Sentiment-multiplied.
Engines blended.
position 1 → 100 position 2 → 85 position 3 → 72 position 4+ → 60 down to 30 floor position 0 → 40 (parse failure / unknown)
positive → ×1.15 neutral → ×0.85 negative → ×0.40 absent → ×1.00
ChatGPT 0.30 Gemini 0.20 Perplexity 0.20 Claude 0.15 Grok 0.15
Refresh
cadence.
WEEKLY 2-ENGINE DRIFT SCAN + MONTHLY 5-ENGINE DEEP AUDIT
WEEKLY 5-ENGINE DEEP AUDIT + DAILY MENTION REFRESH
DAILY 2-ENGINE DRIFT SCAN + WEEKLY 5-ENGINE DEEP AUDIT + DAILY ACTION EMAIL
Industry red flags
we deliberately
avoid.
- /01NO SYNTHETIC NUMBERSEvery score, position, and trend comes from a real scan of a real engine. We never seed, estimate, or interpolate. If we don't have data, the surface says 'not yet measured'.
- /02NO GUARANTEED OUTCOMESWe don't promise 'you'll be cited within X days'. Engines decide. We promise the work and measure the lift honestly.
- /03NO REAL-USER SCRAPINGOur scans are synthetic API queries. We don't intercept or replay actual buyer searches. Treating API output as 'real user results' without disclosure is the industry red flag we deliberately avoid.
This page reflects the live implementation in lib/agents/aiVisibility.ts, lib/agents/offDomain.ts, and lib/agents/playbook.ts. If you find a discrepancy between what's documented here and what your dashboard shows, that's a bug — email hi@cabbge.com and we'll fix it.
Run the methodology on your brand.
The fastest way to test it is to point it at your own domain at the home page — real 2-engine baseline (ChatGPT + Gemini, web-grounded), real numbers, no signup, in about 60 seconds. Sign up for the full 5-engine scan + monitoring.