Methodology
How we measure AI visibility
What we run, how a citation of your website is counted, and what this measurement cannot tell you.
Last updated 20 September 2026
What we check
We send buyer questions to AI engines the way a customer would, read the answer that comes back, and record whether it cites your website: a link to your domain in the engine's sources or in the answer itself. We do not use an engine's admin tools, an analytics integration, or any private data. Everything we report is observable by anyone asking the same question.
Engines
| Engine | Status | How it is queried |
|---|---|---|
| Perplexity | Free check and every plan | API request per question. Returns an answer plus a list of source URLs. |
| Gemini | Free check and every plan | API request per question with Google Search grounding enabled. |
| Claude | Growth, Agency and Pro | API request per question with Anthropic's server-side web search enabled. That search is billed per query, so it runs on the plans with a subscription behind it and not on the free check or the $19.90 Starter plan. Separately, Anthropic models are also used inside our pipeline to draft candidate questions and classify answers, which is a different job from being a measured engine. |
| ChatGPT | Growth, Agency and Pro | API request per question through OpenAI's Responses API with its server-side web search enabled. Same terms as Claude: billed per search, so it runs on the paid monitoring plans from Growth upwards and not on the free check or Starter. Added to weekly monitoring on 17 September 2026. |
So a free check and a Starter report contain Perplexity and Gemini results. A Growth, Agency or Pro report contains all four engines.
How the questions are chosen
We fetch your public homepage and a short excerpt of its text, run a grounded research pass to establish what you sell and to whom, then a language model writes candidate buyer questions from that. A free check writes 4 and asks all of them. For a monitoring plan we write 24, ask each one of the live engines, and keep 18. Most kept questions do not name your brand, but up to 40% of them may: the point is mostly to find you where a buyer who has not heard of you is looking. The same set is re-used every week so results are comparable. How many questions a weekly scan asks depends on the plan: Starter up to 18 per language, Growth 27 across the account (and you can add up to 10 of your own), Pro 30, Agency 100.
Are these the most popular questions?
No, and we would rather say so than imply otherwise. The questions are generated from your category, not measured from real demand. Nothing in our pipeline knows how often anyone asks them.
That is not a gap we could close by trying harder. No AI engine publishes what people ask it. There is no volume figure for a prompt the way there is for a search keyword, and anyone quoting one is showing you search data for a different behaviour. People type differently into a chatbot than into a search box.
So the questions are chosen to be plausible and category-relevant, not popular. They are also not a random sample. Of the candidates we test, we keep the ones where an engine cited you or a competitor, and prefer the ones where it cited you. The bank is a set of contested questions, where an engine already sends buyers somewhere, so read your rate against that set, not as a share of everything buyers ask. What makes the result useful is that the same set is asked every week: the comparison is week to week against itself, which holds whether or not a given question is a common one. And you are not stuck with our guesses. On a monitoring plan you can test your own questions and keep the ones that matter, which is the right correction if you know your buyers better than a model reading your homepage does, and you probably do.
How a citation is counted
- An answer counts as citing youwhen your domain, or a subdomain of it, appears in the engine's source list or is linked in the answer text. An answer that names your brand in prose without linking to your site is not counted.
- Matching is at domain level for every engine. Perplexity and ChatGPT return full source URLs, so we also record the exact page that was cited. Gemini returns redirect links whose title is usually just a domain, so for Gemini we can record only the domain.
- Every question is asked as someone in your market— the country you chose when the brand was added, Malaysia by default. ChatGPT and Claude accept a country as a search parameter; Perplexity accepts a country and city but localises only loosely. Gemini has no such parameter, so it is told the country in an instruction instead. Where an engine does not support a country (Claude, for some), the instruction is used there too. Answers may still draw on sources from elsewhere, and that is recorded as what the engine said.
- Whether an answer cited you is decided by code, from the links the engine returned. A language model then annotates the answer (which competitors appear, and the tone towards you), but it never overturns the cited verdict. The raw response is stored, so any single call can be re-checked by hand.
Repeats and variance
Grounded answers are not deterministic. The same question asked twice can return different text and different sources. On Growth, Agency and Pro, each weekly scan asks Gemini and Claude every question three times and takes the majority result, so one unusual answer does not move the report. Perplexity and ChatGPT are asked once. We measured the same question bank at one run and at three: Perplexity's verdicts did not change at all, and ChatGPT's gaps repeat rather than vary, the same questions go unanswered every time, so repeating those calls buys the same result at three times the cost. Gemini's verdicts did change, and a third Claude run occasionally recovers a question that had returned no usable answer, so those two keep three runs. On Starter, every engine runs once per scan, because of what grounded calls cost at that price.
A free check runs each question once per engine. Treat it as a snapshot, not a measurement of a pattern.
Repeats inside one scan are not the whole story. We also compared verdicts across scans, including one pair that ran three seconds apart: 9.7% of 2,024 verdicts flipped with nothing upstream to explain it, and 13.0% for scans under two and a half days apart: why AI answers change when nothing else did. That figure is the reason we would rather you read a direction over several weeks than a difference between two.
When an engine does not answer
Sometimes an engine returns an answer without searching, or the call fails. That is recorded as no grounded answer for that run, not as a miss. A report distinguishes “you were not cited” from “we did not get a usable answer”, because the two mean very different things.
The AI Visibility Score
One number, from 0 to 100, combining three things we can observe. The formula is published here because a score you cannot recompute is a score you have no reason to trust. The weights below are read directly from the code that calculates it.
Score = 100 × (0.60 × CitationRate
+ 0.25 × PositionScore
+ 0.15 × OwnDomainGrounding)
PositionScore = mean over cited runs of (1 / rank), normalised to [0,1]
by dividing by the best achievable value (1.0)The three components
- CitationRateis the share of scored answers that cited your domain, in the engine's source list or as a link in the answer. A brand named without a link is not counted. It carries the most weight because appearing at all is the thing that matters most.
- PositionScore rewards prominence. A citation at rank 1 scores 1.0, rank 2 scores 0.5, rank 10 scores 0.1. Being the fourteenth source of twenty is a real citation, and it is worth far less than being the first.
- OwnDomainGrounding is the share of scored answers that cited a page on your own domain. Because a citation is only counted when it links to your domain, and every such citation records the page, this currently equals CitationRate. In practice the two together carry 75% of the score.
Choices the formula does not settle
Three decisions sit underneath it. We state them because each one moves the number, and a reader checking our arithmetic needs them.
- What counts in the denominator. Every rate is taken over answers where the engine actually searched. An answer given from training knowledge alone is missing data, not evidence you are absent, so it is excluded rather than scored as a miss. The report shows how many answers were left out.
- Links inside the answer text score as rank 1. They have no ordinal in a source list, and a link in the body of an answer is at least as prominent as the first item of one.
- Every citation has a position. A link in a source list scores by its rank there; a link in the answer text scores as rank 1. An answer that names you in prose without linking to your site earns nothing: it is not counted in CitationRate, and there is no position to score.
When there is no score
If no engine returned a grounded answer, the report shows no score rather than a zero. Zero is a finding, and we do not report findings we did not make.
What this measurement cannot tell you
AI responses can vary by model, prompt, location and time. MediaDesk reports observed responses and sources and does not guarantee rankings, citations, mentions, traffic or commercial results.
- We measure answers, not people. Nothing here tells you how many buyers asked a question, or whether an answer led to a sale.
- ChatGPT and Claude are measured on Growth, Agency and Pro only; a free check or a Starter report contains no results from either. We do not measure Copilot, Grok, or Google AI Overviews at all. If a report or a page implies otherwise, it is wrong and we want to know.
- Content and editorial work can change what sources exist for an engine to read. It cannot make an engine cite you.
- MediaDesk does not guarantee citations, mentions, or rankings in any AI answer, and does not guarantee placement in any publication unless a specific agreement says so in writing.
- MediaDesk has no influence over how AI companies build, rank, or source their answers, and claims none.
Found something on this site that does not match what is described here? Write to hello@mediadesk.asia and we will correct it.
Try it
Run a free AI visibility check and compare what comes back against this page.