What we measure
Every metric comes from the same raw material: the full text of an assistant’s answer to a buyer question, kept as an unedited screenshot.
Method · updated 2026-09-19
This page describes the process as it runs today. Where a step is manual, it says so. Where something is planned but not built, it is labelled.
Every metric comes from the same raw material: the full text of an assistant’s answer to a buyer question, kept as an unedited screenshot.
Whether the company is named when a buyer asks a category question without using its name. Scored 0 to 100 across the question set, with a letter grade per assistant.
Where in the answer the company appears: first name, later in the list, or absent. Reports name who holds the first slot.
When a buyer asks about the company by name, whether the address, services, hours and people in the answer are correct.
Which competitors are named on the questions where the client is missing, and how often the same names recur.
Mentions of one company divided by all company mentions across the same question set.
The share of answers that link to or cite a given domain.
Which third-party sources (directories, review sites, press) an assistant cites when it names a company.
Whether the wording around a company mention is positive, neutral or negative.
Questions are written the way a buyer types them, not the way a marketer would. Each set has two groups:
A full audit uses a set of about 12 questions. The set is written once per client and stored with the scan. The monthly monitor re-runs the same set, word for word, so a change in the answers is not caused by a change in the questions.
Question sets are written by hand today. They are not generated or clustered automatically.
Answers are collected from the consumer web interfaces of ChatGPT, Gemini and Claude, in a browser. This is what a buyer sees, including local results and web search. It is not the same as calling the model APIs.
The research pipeline collects differently. Studies and the demo dashboard call the vendor APIs with web search switched on and the user location set to the market. Every question runs twice per model. Each answer is stored with its full API response in an append-only SQLite database, so any published number can be traced to the raw answer. Cited URLs are reduced to domains and classified by a readable rule list, and a stability score reports how much the cited sources overlap between the two repeats. The first study is who AI assistants cite for health questions.
For client audits, run-to-run variance is not yet averaged out. Each question is asked once per assistant per run. See Limits.
The agent reads each answer and records which companies were named, in what order, and what was said about the client. The result is one structured file per scan, scan.json, with a fixed schema: score, grade, per-assistant findings, named competitors and a fix list.
Accuracy is checked by a person. Every recorded company name and quote is compared with the screenshot it came from before the report is built. There is no automated accuracy score yet.
A build script turns scan.json and its screenshots into a static report page and a PDF. The script only binds data to a fixed template. It does not write findings.
The monthly monitor uses the same process and the same question set. It has no separate automation in the codebase yet.
Every change to a scan or a report is a git commit, so there is a dated record of what was published and when.
Related: the sample report · research · who runs this · blog