How we measure — and when this number should not be trusted

Last revised 2026-09-11 · Applies to every ranking from 2026-08-22 onward

This page follows the disclosure requirements the IAB set out for measurement providers in Measuring Visibility in the AI Era (August 2026): platform coverage and model versions, prompt library construction, and data collection architecture, each addressed in turn. The first section covers the setting that matters most here — the same question asked in Chinese and in English, to the same panel, on the same day, with both rankings kept side by side. It sells nothing. It answers one question — why you should believe the scores we publish. The last two sections are our own limitations and the things we deliberately refuse to do; please read those too.

From memory: no search tools, brand mindshare inside training data

No search tools are attached when we ask. A model can only answer from what it retained during training, so both lists measure how much room a brand occupies in that model's head at the moment it was trained — not what the model could look up today.

That is a different metric from what AI can find on the web right now. The latter shifts daily with published content and can genuinely be moved by PR and distribution budgets. Ours barely moves between model releases.

This choice has a direct consequence: our scores cannot be changed by publishing a burst of articles this week. That is the technical basis for refusing paid ranking changes — not merely a promise.

It cuts the other way too. Our data inherently lags reality: a brand founded last month has no place in any model's training data, which is a limit of the metric, not a verdict on the brand.

One question goes out in Chinese, then the same question goes out in English. The same models answer both, and both runs happen on the same day. The six cards re-measured weekly on the home page are three questions in two languages.

The two lists are not the same, and you can check that yourself: in the 2026-09-02 run of Most Popular AI Glasses Brands, the Chinese list placed XREAL ahead of Rokid and the English list — same day, same models — reversed them; Oakley, Amazon and Google show up in the English top ten and are absent from the Chinese one.

For a team selling out of China, the pair reads as: how a model remembers your brand in your own language, and how it remembers you in your buyer's. For an English-speaking reader it is simply the same question in two languages, same panel, same day.

Model panel and versions

The table below is the panel actually used in the most recent evaluation, read from that run's snapshot. Swapping a model requires no edit to this page — the page follows.

The panel and counts on this page are queried live from the database, not hand-written. Currently showing the panel snapshot from evaluation #139 (09/13/2026).

  • openai/gpt-5.6-luna17.15%
    Head · quarterly_research:2026Q3
  • tencent/hy4-preview12.22%
    Long-tail · openrouter_usage_share
  • xiaomi/mimo-v2.510.94%
    Long-tail · openrouter_usage_share
  • z-ai/glm-5.3-flash10.69%
    Long-tail · openrouter_usage_share
  • tencent/hy39.50%
    Long-tail · openrouter_usage_share
  • qwen/qwen3.8-max8.61%
    Head · quarterly_research:2026Q3
  • google/gemini-3.7-flash6.94%
    Head · quarterly_research:2026Q3
  • nvidia/nemotron-3-ultra-550b-a55b:free6.65%
    Long-tail · openrouter_usage_share
  • deepseek/deepseek-v4-flash6.41%
    Head · quarterly_research:2026Q3
  • x-ai/grok-4.65.88%
    Head · quarterly_research:2026Q3
  • anthropic/claude-sonnet-53.43%
    Head · quarterly_research:2026Q3
  • moonshotai/kimi-k31.57%
    Head · quarterly_research:2026Q3

The panel is fixed at 7 head seats plus 5 long-tail seats. Head seats are reviewed manually every quarter, one seat per vendor, taking that quarter's generally available flagship model — never a preview or experimental build.

Head weights are estimated from each vendor's publicly reported monthly active users, then square-root compressed. Without compression the largest vendor would take roughly 58% of head weight and the spread between largest and smallest would be about 119×, which would make multi-model aggregation meaningless. Square-root compression narrows that to roughly 11×: bigger usage still means more weight, but no single vendor decides the outcome alone.

Long-tail seats are selected at each evaluation from OpenRouter's public usage ranking, weighted by usage share — so long-tail membership changes over time. The panel itself drifts, and any cross-period comparison has to account for that.

Weights are refreshed quarterly. If a quarter turns over before that quarter's research is done, the system falls back to equal weights, and the Weight source column below will say so.

Where the questions come from, and where to read them

The fixed suffix every model receives

List the top 10 brands you consider the best fit, ordered from most to least popular. Output brand names only — no numbering, no explanation.

Each ranking corresponds to one question. We write the wording, and it is never rephrased per model — every model on the panel receives exactly the same sentence.

The wording is public: every ranking page and every certificate verification page shows the exact question asked, with no login required.

The question set has two origins: topics we choose for the public rankings, and niche questions brands submit themselves through the diagnostic product. The latter are tagged by origin and kept off the public homepage, but they are logged permanently and are equally verifiable.

Every model is asked for its top 10 brands only. That is a hard constraint: we never receive anything about rank 11 and beyond, so "just missed the top ten" and "never crossed the model's mind" are indistinguishable in our data.

Data collection architecture

All calls go through OpenRouter. Within one evaluation the 12 models are queried in parallel and cannot see one another's answers.

Models that support structured output are constrained by a JSON schema; the rest return text that we then parse. The verification page labels which path each response took, so you can tell them apart.

Each model is asked once per evaluation. This is the single most important collection limit we have, and the data-grade section below addresses its consequences head-on.

Every raw response is stored in full, append-only, never rewritten. When a certificate is issued we additionally freeze a scoring snapshot, so even if we later recompute history, the numbers on an issued certificate do not move.

Cross-model brand-name normalisation (merging "特斯拉", "Tesla" and "Tesla Inc." into one entity) is done by a single model. When normalisation fails we degrade to not merging — the same brand then splits into several entries and its score is diluted. That is a known degradation, and it is logged.

How the score is computed

Each model's ranking is converted to a position score: rank 1 scores 10, rank 2 scores 9, down to rank 10 scoring 1; not mentioned scores 0. The position score is multiplied by that model's weight to give its contribution for that brand.

Contributions from every model that mentioned the brand are summed, divided by the theoretical maximum — every model ranking it first — and multiplied by 100 to give the 0–100 index.

So the index reads literally as: what percentage of a unanimous first place did this brand achieve.

If one model repeats the same brand within its own list, it counts once, at its highest position — this stops a single malformed response from inflating a score through repetition.

position score = 10 − rank + 1
contribution = position score × model weight
index = 100 × Σ contributions ÷ (10 × Σ weights of models that answered)

Cross-language normalisation: counting "特斯拉", "Tesla" and "Tesla Inc." as one brand

One brand, three spellings: model A writes 特斯拉, model B writes Tesla, model C writes Tesla Inc. Left unmerged, it becomes three brands each with a sliver of the score, and none of them ranks.

Method: all raw brand names returned by every model in one evaluation are de-duplicated and handed, in batches of at most 30, to a normalising model (currently deepseek-v4-flash), which merges them into canonical names. So that a brand stays one line across periods, we also pass in every canonical name used in past evaluations, with the instruction "if this new name refers to a brand already in the list, reuse that name".

We deliberately do not take the shortcut of "seen it before, copy last time's answer". We tried; a single miss became permanent. We would rather ask every time.

The batching is not a stylistic choice: when everything was submitted at once, the evaluations with the most names failed to merge at all — 4 of 25 evaluations merged not a single pair, scores were split across duplicates, and nothing warned us. Batches now fail independently, every call's raw response and token usage is kept, and each evaluation records its normalisation state as ok, degraded or failed.

Known limitation: if a batch fails, the fallback still maps each raw name to itself — those names go unmerged that period and the score is diluted. This is a logged degradation, flagged on the verify page. A change of normalising model changes brand groupings; see the Panel changes section.

When one company shows up as two rows, how we merge it

When normalisation misses, one company occupies two or three rows on the same ranking and its score is split across them. A September 2026 review of 25 evaluations found 53 name groups in this state, and 7 evaluations where two rows for the same company were actually printed on the public ranking. Merging happens in three stages, each more cautious than the last.

Stage one, spelling only: two spellings that are identical after Unicode folding and after removing case, spaces and hyphens — Browser Use and Browser-use, for instance. There is no judgement in this stage. The rule is a few dozen lines of pure function (src/ask10ais/brand_key.py) with test cases, so anyone can replay it, which is why it is allowed to apply on its own.

Stage two, candidates only: identical after stripping a company suffix (Monex and Monex Securities), or the same raw name filed under different canonical names in different periods (マネックス証券 was filed as Monex in one evaluation and stood alone in another). These clues come from our own history and can be checked against the evaluation numbers, but they only enter a review queue; they never move a score by themselves.

Stage three, a person decides: candidates are confirmed one by one, written into a CSV and only then loaded. Rejections are kept on file too. Whether a cross-language name or a sub-brand is the same company is a business judgement, not a data one — no script can settle whether Xiaomi and Mijia, or Binance and Binance Japan, are one brand. The judgement can be wrong; when it is, it goes in the corrections log.

Merging happens at the display layer only. The merged rows are still in the database exactly as they were, their canonical names unchanged to the byte, so certificate numbers and any certificate or badge link already issued keep resolving to the same data. Each merged row lists its members underneath precisely so the pre-merge picture stays visible.

Panel completeness thresholds: when we issue no record and show no score

Panel completeness = the summed weight of models that returned a usable answer this run ÷ the summed weight of the whole panel. Two thresholds, set from the distribution of 25 real evaluations, not guessed:

  • ≥ 80%: only then is a numbered record (certificate) issued.
  • ≥ 60%: only then is the score shown on the ranking page.
  • Below 60%: still stored, still verifiable, but rank only — no score — with the incomplete panel flagged prominently.

Transparency does not fall with quality: a low-completeness evaluation is not hidden, it is labelled. The thresholds reject a meaningful share of runs — of 25 pre-launch evaluations, 18 fell short of the certificate line. We accept that cost.

What grade this data is

The IAB splits AI visibility data into two tiers: directional (good for spotting trends, not sufficient for allocating budget) and decision-grade (sound enough to allocate budget against). The IAB certifies no vendor — buyers are meant to judge against the criteria themselves — so rather than stamping ourselves, we lay out our own assessment here. By the IAB's criteria we do not reach decision-grade on sampling density. Treat the numbers here as directional.

Where we do meet it
  • Platform coverage and model versions are fully disclosed, and the panel shown is queried live rather than being a marketing list.
  • Prompt library construction is public, and the wording of every question is readable.
  • Collection architecture is public: the call path, whether search tools are attached, structured versus parsed output, and how everything is logged.
  • Reproducibility: every aggregate number can be drilled down to the full raw response behind it.
Where we fall short
  • Sampling density: one call per model per question, so we cannot produce confidence intervals. Ask the same question twice and the ranking can differ — a single sample cannot separate a real move from ordinary variance.
  • Testing cadence: evaluations are currently triggered on demand rather than on a fixed automated schedule.
  • Panel stability: long-tail seats follow a third-party usage ranking, so cross-period comparison is affected by panel drift.

Known limitations

We found these ourselves and publish them here. Any one of them is enough to make a number untrustworthy in a specific situation — check which apply to yours.

  1. 01

    The index level is driven mostly by candidate-pool size, and is not a confidence measure

    We ran a correlation analysis over 27 real evaluations: the index correlates strongly and negatively with the number of candidate brands (about −0.81), and only moderately with how coherently the models answered. A thin niche with few players scores high simply because it is thin — which is a different thing from the models being sure. Compare ranks within one ranking; do not compare index scores across different rankings.

  2. 02

    When models fail to answer, a perfect score becomes easier to reach

    When the panel is short-handed, the denominator counts only the models that actually returned a usable result this run — a model that did not answer enters neither the numerator nor the denominator, so our outage does not drag a brand's score down. The cost lands elsewhere: with a smaller effective panel, a perfect score stops meaning "all 12 models put you first" and starts meaning "every model that answered put you first" — thinner evidence, better-looking number. A real example: in one evaluation only 6 models returned a usable answer, they unanimously ranked the same brand first, and the index came out at 100.00. So read the score together with the panel completeness. Results go uncounted for two reasons: the call never came back (account balance, concurrency budget, a retired model), or the model did answer but not in the shape we required and our parser discarded it — the second is our fault, not the model's. Both are labelled per model on the verification page.

  3. 03

    We only ask for a top ten, so rank 11 onward is invisible

    "Just missed the cut" and "never occurred to the model" both score 0 and cannot be told apart. Raising the resolution means changing the question and re-weighing cost, which would create a new methodological break point.

  4. 04

    Position decay is linear and was never A/B tested

    Ranks 1 through 10 decay as 10, 9, 8 and so on. We chose linear purely because "what percentage of a perfect score" is the easiest claim to explain honestly — we never compared it against reciprocal or exponential decay.

  5. 05

    Self-referential contamination: our own output can flow back into the data

    If a brand publicises a certificate, that coverage may be absorbed into later models' training data and lift its next score — the instrument eating its own output. Our response: badges are dated static snapshots only, worded as observations rather than marketing claims, and the issuance date is marked on the trend so the effect stays visible instead of hidden.

  6. 06

    Model version changes create break points in trends

    When a vendor silently updates a model, scores jump — but what changed is the model, not the brand. When reading across periods, prefer relative ranks within a single evaluation.

As the data currently stands, 49 evaluations were affected; the median share of panel weight discarded was about 23.0%, and the worst single evaluation about 60.5%. Both figures are queried live and will move as we fix and re-run.

Panel changes

Swapping a model, changing the formula or replacing the normaliser is not an error, but each leaves a break in the trend. Every one is recorded here with a note on which periods it makes non-comparable. This table is read from the panel_events table in our database and is append-only.

DateChangeWhyEffect on comparability
2026-09-02品牌归一化模型从 deepseek-v4-pro 换成 deepseek-v4-flash。归一化是把一批品牌别名整理成规范名的结构化任务,不是推理任务,flash 档够用;该调用每次评估花 $0.0085,比 anthropic+gemini+deepseek 三个席位加起来还贵,换完约省 20×。归一化器变化可能改变品牌分组:同一批原始返回可能被归成不同数量的品牌,进而影响名次与分数。此日期前后的品牌数与分数不保证可直接比较。
2026-09-02deepseek 席位从 deepseek-v4-pro 换成 deepseek-v4-flash。输出单价 $2.085/M → $0.1772/M(11.8×)。
2026-09-02anthropic 席位从 claude-opus-5 换成 claude-sonnet-5。与 openai 那次同向:免费/Pro 档 Claude 用户默认拿到的是 sonnet 档,opus 属付费高阶档。输出单价 $25/M → $10/M。
2026-09-02此日期起,榜单按品牌实体聚合:同一家公司的多种写法(跨语言、公司后缀、大小写)在页面上合并成一行、指数求和;此前按每次评估各自的规范名分行展示。两侧的品牌行数与名次不可直接比较。数据库里的原始行、以及已经发出的证书编号与快照,一行未改——合并只发生在展示这一层。
2026-09-01openai 席位从 gpt-5.5-pro 换成 gpt-5.6-luna。理由:pro 档一次问询实测约 $0.97,占单次评估成本 90%+;而 ChatGPT 免费/Go 档用户默认拿到的就是 gpt-5.6-luna,测它更贴合「普通用户不花钱能问到的答案」这个口径。补录:此事发生于 2026-09-01,当时漏记,2026-09-02 补上。
2026-09-01用新增的纯文本兜底解析器重新推导了 16 条历史返回的品牌列表(原始返回未改动),这些模型由「失败」变为「有效」,相关评估的面板完整度上升。
2026-09-01打分分母从「整个面板的权重和」改为「实际返回了可用结果的模型权重和」。同一次评估内所有品牌等比例缩放,名次不变;此日期前后的绝对分数不可直接比较。

Next known break point: 1 Oct 2026. Head-seat weights are looked up per quarter; if the 2026 Q4 weights are not entered by then, the seven head seats fall back to equal weights, and the weight-source column will say "equal-weight fallback" rather than claiming that quarter's research value.

What we don't do

This section matters as much as the limitations above. The differentiation is not what we can do — it is what we gave up.

  • We do not sell optimisation, and we promise no brand a higher chance of being mentioned.
  • We do not accept payment to change a score, enter a ranking, or leave one. Requests are de-identified and written into the refusal log.
  • We do not monitor continuously. Each record is one dated measurement and does not change after publication.
  • We attach no search tools, and we do not engineer prompts to coax a better-looking answer.
  • We issue no certification, run no awards, and name no "best". We record what the models said.

How to check us independently

Every certificate carries a number. Enter it on the verification page and you can read the exact question asked, the rank each model on the panel gave, each model's weight and contribution, and the full raw response from each model — no login, no payment.

The scoring breakdown comes from the snapshot frozen at issuance; the raw responses are read from the append-only response log. They are two records of the same call, and the page labels which is which.

If you find anything that does not reconcile, write to us. Leaving an error on this page hurts us far more than reporting it does.

The numbers as of today

Questions to date
58
Completed evaluations
64
Model calls
775
Distinct models used
19
Calls not counted
16.3%

"Calls not counted" covers two situations at once: the call never returned, and the model did answer but not in the JSON shape we required, so our parser discarded it. Both are stored as the same state and have the same effect, so we disclose them as one number.

What we do about it

This is a methodological break point rather than noise to be smoothed over, so we mark it instead of hiding it: when we find an evaluation with uncounted calls, we re-run that question and reissue certificates to customers who bought from that run. This is a policy commitment stated on this page, and every time we act on it the corrections log records it — you can check.

This record measures what large language models answered to one question at one moment. It is not an assessment of product quality, market share or corporate standing. Model output may contain errors or fabrications; this record preserves the raw responses as returned and does not endorse their content. It is not investment or procurement advice.