Every score is reproducible. Here is exactly what we ask, who we ask, and how we calculate the result.
Model list last updated: June 12, 2026
A standard scan fires 25 prompts across five buyer-journey stages — each generated fresh for your brand and domain. The category mix reflects where buyers actually are in their decision process.
Buyers describe pain, not your name — if you're absent here, you're invisible at the top of the funnel.
"What tool helps a B2B SaaS team track churn?"
When buyers already know the category they need, your brand must appear as a credible option.
"What are the best AI-visibility platforms for marketing teams?"
Direct brand queries test whether AI actually knows what you do — a baseline of factual authority.
"Tell me about Acme Analytics and what they offer."
Buyers considering a switch ask for alternatives — appearing here turns competitive pressure into pipeline.
"What are the best alternatives to Competitor X?"
Direct head-to-head questions are the highest-intent queries at the bottom of the funnel.
"How does Acme Analytics compare to Rival Y?"
| Category | Prompts | Share |
|---|---|---|
| Problem-led | 8 | 30% |
| Category-aware | 6 | 25% |
| Brand | 5 | 20% |
| Alternative-seeking | 4 | 15% |
| Comparison | 3 | 10% |
| Total | 25 | 100% |
Every scan produces these three components. Here is a static illustration using example data.
Visibility score
95% confidence interval — 4 runs × 25 prompts × 4 models
Per-provider breakdown
Score trend (6 scans)
+15 pts over 6 scans
Each model response produces one result. Results are scored individually, then averaged across all prompts and models to produce the final 0–100 score.
Per-response score
score = base × mention × sentiment × citation × position_decay
Final score
final = mean(per_response_scores), clamped to [0, 100]
Example — 3 prompts, 1 model
| Prompt | Mentioned | Rank | Sentiment | Score |
|---|---|---|---|---|
| Awareness #1 | yes | 1 | neutral | 100 × 1.0 × 1.0 × 1.00 = 100 |
| Evaluation #1 | yes | 3 | positive | 100 × 1.0 × 1.2 × 0.72 = 86 |
| Comparison #1 | no | — | — | 100 × 0.0 × — × — = 0 |
| Visibility score | mean(100, 86, 0) = 62 | |||
Each scan sends the same prompt set to every model below. Scores reflect real API responses — no caching, no mocking.
OpenAI · Anthropic · Google · Perplexity — current production models
| Provider | Model IDs |
|---|---|
| Anthropic |
|
| Google (Gemini) |
|
| OpenAI |
|
| Perplexity |
|
Model IDs sourced from the active routing table (lib/beacon/llm/router.ex). Updated when models rotate.