Skip to content

CALDRIN RESEARCH / AI VISIBILITY

Your AI Visibility Trend Line Might Be an Artefact

The same AI citations can produce two very different visibility rates. In one of our ChatGPT scraper sweeps, a reference domain appeared in 27 of 144 runs, or 19%, across the full prompt set. Keep only the prompts where that domain had appeared in an earlier sweep and the same saved answers produce 23 of 45, or 51%. We did not gain citations. We changed which questions counted.

That restricted view may be useful for a particular question. It is a bad continuation of the original trend line. The selected prompts had already cited the domain, so the higher share also reflects the way we chose them. Neither rate is a measure of the brand's share of all real user questions.

The example is an intentional recount of our data, not evidence that an AI visibility vendor changes its prompt sets. It establishes the narrower point: a reported movement can come from the measurement specification alone.

A second way the line moves

We also repeated a fixed measurement on 1 November 2026. We asked 48 informational or problem-seeking prompts three times each on two scraper surfaces. Later the same day, we ran the same prompts and command again. Each sweep therefore had 144 runs per scraper. The scrapers returned citations; these are not observations of what individual ChatGPT or Gemini users saw. We made no intentional change to the prompt set, collector command or counting rule between sweeps.

Reference domainScraperFirst sweepSame-day repeatDifference
Domain AGemini10 / 1443 / 144−7 runs
Domain BChatGPT22 / 14429 / 144+7 runs
Figure 1. Citation presence per successful scraper run for each domain, among 48 prompts × three repetitions per sweep on 1 November 2026. These were the largest absolute moves in panels of ten reference domains chosen from the first sweep on each scraper. Each sweep has 144 successful runs per scraper. This is not a measure of brand recommendations or customer demand. Source: Caldrin scraper runs, 1 November 2026; raw responses retained internally.

Seven of 144 is about 4.9 percentage points. Described as a relative change, Domain A fell 70% and Domain B rose about 32%. Those percentages sound like opposite commercial stories, but each describes seven runs. Because the panels were chosen for high first-sweep counts, we also needed to account for that selection.

We tested how unusual a seven-run move was under our selection rule. In 2,000 relabelings per scraper, we redistributed each prompt's saved citations between two simulated sweeps, again picked the ten most-cited domains from the first, and checked the largest move. A move of at least seven runs appeared 1,209 times on ChatGPT and 1,071 times on Gemini. We chose this check after seeing the data, and selecting the top ten from the first sweep matters: it makes large moves easier to find. The relabeling does not preserve every relationship between domains cited in the same answer. These moves are consistent with repeat variation under this design; they do not prove the underlying systems stayed unchanged throughout the day. The full procedure is recorded in the accompanying methodology note.

This is not a discovery that AI answers vary. Schulte, Bleeker and Kaufmann measured source instability across repeated AI-search runs, and Sielinski treats citation share as an estimate with uncertainty rather than a fixed rank. Our contribution here is the matched recount: the exact numerator and denominator from one saved sweep under two prompt-selection rules, placed beside a controlled same-day repeat. AuthorityTech has already stated the general point that changing a score's prompt set or formula can move it. We put a bounded, reproducible count on one such change.

What changed when we counted again

The full 48-prompt repeat sweep cited Domain C in 27 of 144 runs. For the restricted view, we selected the 15 prompts on which Domain C had appeared in the first sweep, then counted the domain in the repeat sweep. It appeared in 23 of those 45 runs. The numerator fell by four; the denominator fell by 99. The rate rose from roughly 19% to 51% without a new response being generated.

Counting rule for Domain CCiting runsShare
All 48 prompts, three repetitions each27 / 14418.8%
The 15 prompts selected from first-sweep hits, three repetitions each23 / 4551.1%
Figure 2. Citation presence per successful scraper run for Domain C in the same ChatGPT scraper repeat sweep on 1 November 2026: 27 of 144 successful runs across all 48 prompts, or 23 of 45 successful runs after selecting 15 prompts with earlier citation hits. This is a selection and denominator change, not an improvement in domain visibility. Source: Caldrin ChatGPT scraper runs, 1 November 2026; raw responses retained internally.

Changing repetition count is another, smaller issue. In the first sweep, Domain C appeared in 10 of 48 runs if we kept only repetition one, 7 of 48 in repetition two, and 11 of 48 in repetition three. All three together gave 28 of 144. Selecting one repetition changes the precision and can move a single reading even when the prompt list is fixed. More repetitions cannot repair a comparison in which the prompt set itself has changed.

Other faults need separate labels. Across the full 61-prompt collection, the Gemini scraper reported a different model string in 1 of 183 runs in the first sweep and 2 of 183 in the repeat. We observed the version inconsistency; we did not establish that it caused any citation difference. A Google results scraper in the same collection returned redirect addresses for many organic results and left some destination hosts unresolved. That is a collector limitation, not evidence about AI citation volatility. Missing or failed runs belong in the log, not silently in the denominator as non-citations.

How to read the next report

Keep a record of the metric's definition beside every point: the exact prompt IDs, selection rule, engine and reported model, geography, collection dates, repetitions, successful runs and rule for a citation or recommendation. Publish the citing count with its denominator. A citation, a brand mention and a recommendation are different outcomes.

Repeat the same planned measurement specification before using small movements to direct work, and log any model or collector differences that occur despite that plan. The repeat gives a local check on variation at that sample size and with that instrument. Report uncertainty and say whether the domains being inspected were selected after seeing the first result. A threshold calculated for the largest of ten selected domains is not a universal threshold for one domain chosen in advance.

When the prompt set or counting rule must change, keep the old series. Re-score a saved sweep under both rules and show the step caused by the definition. Where possible, run old and new specifications side by side for a period. Start a newly labelled series rather than attaching a new basis to the old line.

For a company buying GEO services, this is a practical request: ask for the run log and the prompt set behind an apparent gain. Ask whether the vendor changed its model, collector, exclusions or definition of a positive result. A larger number may be real. The report should let you tell which part of it is a different answer and which part is different accounting.

Our measurements cover one date, one repeat, two scraper surfaces and informational prompts about AI visibility and adjacent topics. They do not estimate variation in buyer-intent brand recommendations, establish day-to-day change, evaluate any named vendor's practice, or show that a marketing intervention changed citations. The saved-run recount does establish that changing the basis can change the reported level without changing a single answer.

For the wider research method, see Caldrin Research. For commercial Search and AI visibility work, see Search + AI.

Technical note: how the relabelling check worked

We pooled the six runs for each prompt across the two sweeps. For each prompt and domain, we randomly dealt its pooled citation count between two pretend sweeps, selected the ten highest domains from the pretend first sweep, and recorded the largest difference. Across 2,000 such relabelings per scraper, a move at least as large as seven runs occurred 1,209 times on ChatGPT and 1,071 times on Gemini. This check was added after looking at the data. It keeps each prompt's citation tendency for a domain, but deals domains separately, so it does not preserve every co-citation within a run. The observed largest moves are consistent with repeat variation under this design; the check does not prove the underlying systems stayed unchanged throughout the day.

The two sweeps contain 48 Study A prompts with three runs per prompt and scraper, 144 successful runs per scraper per sweep, collected on 1 November 2026. For each prompt and reference domain, the six binary citation-presence outcomes across both sweeps are pooled. A random allocation preserves that prompt-domain total while assigning three outcomes to each simulated sweep. The top ten domains are selected anew from each simulated first sweep before recording the largest absolute difference. This matches the original post-selection comparison; it is not a test for a domain chosen in advance. The 2,000 allocations were run separately for each scraper.

Because prompt-domain cells are relabelled independently, this procedure does not preserve co-citation structure within an answer. The check is descriptive and post-hoc. It cannot show that the model, scraper or search environment was invariant during the day, and its frequency is not a universal significance threshold.