Skip to main content
Every answer metric is computed over all answers in the range, pooled: each answer counts once, whichever engine gave it. For per-engine figures, add platform to group_by and each row is computed over that engine’s answers alone. The API and the dashboard run the same code, so the same range and filters give the same number.

Which answers count

  • Answers collected successfully on a day inside the range (UTC).
  • Not Google result pages that showed no AI Overview. They are dropped before anything is counted, from the numerators and from answers.
  • When you pass a filter, only answers matching it.

Formulas

Mention rate

mention_rate=answers naming the brandanswers\text{mention\_rate} = \frac{\text{answers naming the brand}}{\text{answers}} An answer names you when it uses your brand name or one of its aliases. 0–1.

Citation rate

citation_rate=answers linking to at least one page on the brand’s siteanswers\text{citation\_rate} = \frac{\text{answers linking to at least one page on the brand's site}}{\text{answers}} Ten links to your site in one answer count once. For a competitor, “its site” is the domains on its competitor entry. 0–1.

Prompt coverage

prompt_coverage=distinct prompts where the brand was named at least oncedistinct prompts asked\text{prompt\_coverage} = \frac{\text{distinct prompts where the brand was named at least once}}{\text{distinct prompts asked}} A prompt named on any day, on any engine, in the range counts as covered. That is why coverage over a month is usually higher than coverage on any one day. 0–1.

Visibility Score

visibility_score=100×(0.45⋅mention_rate+0.35⋅citation_rate+0.20⋅prompt_coverage)\text{visibility\_score} = 100 \times (0.45 \cdot \text{mention\_rate} + 0.35 \cdot \text{citation\_rate} + 0.20 \cdot \text{prompt\_coverage}) The three rates are rounded to two decimals (whole percentage points) first, and the score is rounded to a whole number. 0–100.

Share of voice

share_of_voice=answers naming the brandbrand mentions across all tracked brands\text{share\_of\_voice} = \frac{\text{answers naming the brand}}{\text{brand mentions across all tracked brands}} Each brand counts at most once per answer. Tracked brands are you and every competitor on the site’s list. 0–1.

Average position

average_position=sum of the brand’s positionsanswers naming the brand\text{average\_position} = \frac{\text{sum of the brand's positions}}{\text{answers naming the brand}} Position is the order in which an answer first names each tracked brand: the first is 1. Lower is better. Rounded to one decimal; null when the brand was never named.

Rank

Order by Visibility Score among you and your confirmed competitors, within each group of rows. 1 is best.

Citation share

citation_share=citations of this domain (or page)all citations in the same group that pass the filter\text{citation\_share} = \frac{\text{citations of this domain (or page)}}{\text{all citations in the same group that pass the filter}} Counts every link, so a page linked twice in one answer counts twice. Rounded to four decimals. 0–1.

Sentiment

positive=answers naming you in a positive toneanswers naming you\text{positive} = \frac{\text{answers naming you in a positive tone}}{\text{answers naming you}} The same for neutral and negative. The three add up to 1 (give or take rounding). Answers not yet judged count as neutral.

Worked example

A site with five prompts collects 24 answers in a week. Four are Google result pages with no AI Overview, so 20 answers count.
Averaging seven daily Visibility Scores does not give this week’s 41. Coverage in particular is 3 of 5 for the week even if no single day covered more than 2. Ask for the week in one call. See Conventions & gotchas.

Reproducing the numbers from raw answers

POST /v1/answers returns one row per answer with everything the formulas need: This example computes the four headline figures for a range and checks them against the visibility report.
Python’s round() rounds halves to the nearest even number, so on an exact half (0.125) it can land one point away from the report. The report rounds halves up.

Compared with Profound

If you are moving code across from Profound’s API:
  • Profound’s visibility_score is a 0–1 share of answers that mention any brand. Ours is the 0–100 composite above.
  • Profound computes each metric per engine, then averages across engines. Ours pools every answer; group by platform for per-engine figures.
  • Profound counts days in US Eastern time. Ours are UTC.