AI Visibility Methodology
Last reviewed: 2026-05-17. This page describes the current Pulse v1 measurement model used inside SEOitis.
What we measure
Pulse tracks how often AI search engines mention a brand, whether they cite the brand's own domains, which outside sources they cite, how competitors appear in the same answers, and whether the answer language is positive, neutral, or negative.
The Tier 1 measurement set is ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews. Additional engines can exist in code as opt-in or later-phase adapters, but they do not affect the default Pulse v1 methodology unless they are enabled for a monitor.
Data collection
- Engine adapters use provider APIs first: OpenAI Responses with web search, Anthropic Messages with web search, Gemini with Google Search grounding, Perplexity Sonar, and DataForSEO for Google AI Overviews.
- Pulse v1 does not scrape ChatGPT or Gemini consumer browser sessions. That is an intentional reliability and compliance choice.
- Every run is scoped by prompt, engine, locale, persona, and resample index. Raw answer text is retained for customer audit windows.
- Citations are parsed from structured provider fields when available, then normalized into canonical hosts and URLs for aggregation.
Visibility Score
The score version is v1.0. The published formula is:
round(100 * (
0.40 * presence_rate
+ 0.25 * position_adjusted_sov
+ 0.15 * citation_rate
+ 0.10 * sentiment_polarity_norm
+ 0.10 * cross_engine_coverage
))| Component | Weight | Meaning |
|---|---|---|
| Presence rate | 40% | The share of completed runs where the brand is mentioned at least once. |
| Position-adjusted share of voice | 25% | A brand share metric that gives more credit to earlier and more prominent mentions in an answer. |
| Citation rate | 15% | The share of runs that cite at least one tracked domain for the brand. |
| Sentiment polarity | 10% | Average mention sentiment mapped from -1..1 into 0..1 before it enters the score. |
| Cross-engine coverage | 10% | The fraction of enabled engines that mention the brand at least once. |
Resampling and uncertainty
AI answers are non-deterministic. A monitor can run K resamples for the same prompt and engine, currently bounded from 1 to 10. The default is 3 for lower-volume plans and 5 for higher-volume plans.
Mention confidence is reported with Wilson 95% confidence intervals, not simple Wald intervals. Wilson intervals stay useful when sample sizes are small or when the observed rate is 0% or 100%.
Sentiment classifier
Mentions are classified at sentence level with Gemini Flash structured output. The classifier returns a label, numeric score from -1 to 1, and confidence from 0 to 1. Missing or invalid model output falls back to a neutral, low-confidence classification so reporting never invents a positive or negative claim.
For each item below, classify how the brand is portrayed in the sentence.
- label: "positive" | "neutral" | "negative"
- score: float in [-1, 1]
- confidence: float in [0, 1]
- reason: <= 12 words
Use "neutral" when the sentence merely names the brand without opinion.
Use "positive" only with explicit endorsement, recommendation, or favorable comparison.
Use "negative" for explicit criticism, comparison loss, or warnings.Citation handling
- Provider citation URLs are normalized before aggregation.
- Owned-domain citations are counted separately from third-party source citations.
- Public data pages expose only aggregated citation hosts. They do not expose workspace, site, prompt, run, URL, or brand identifiers.
- Public host leaderboards exclude owned-domain citations and require repeated citations before a host is eligible.
Known limits
- AI search results vary by time, locale, provider routing, and account state. Pulse reports measured samples, not a permanent ranking fact.
- Some providers expose richer citation metadata than others. Missing titles, dates, or snippets are left blank rather than inferred.
- Browser-only products such as signed-in consumer experiences are not part of Pulse v1 unless explicitly labeled as a later-phase or custom integration.