Методология CiteFlow
Мы измеряем, как нейросети отвечают на вопросы покупателей: упоминают ли бренд, кого рекомендуют вместо него и на какие источники опираются. На этой странице – полный протокол измерения. Мы публикуем его, потому что цифра без методологии – это мнение, а не измерение.
Панель запросов
Для каждого проекта мы строим панель из 100–150 запросов – не ключевых слов из SEO-инструментов, а вопросов в том виде, в каком их задают нейросетям живые люди: «где заказать букет с доставкой за час», а не «доставка цветов москва купить». Панель покрывает всю воронку: от общих вопросов категории до сравнений конкретных брендов.
Перед фиксацией панели мы прогоняем её часть и вручную проверяем, что движки отвечают в нужной категории. Нейросети сваливают незнакомые темы в соседние – панель, которая измеряет не ту категорию, хуже отсутствия панели.
Состав панели фиксируется и версионируется. Сравнивать можно только замеры по одной версии панели – при изменении состава мы явно помечаем разрыв серии.
Движки и два класса ответов
Мы опрашиваем движки двух принципиально разных классов и никогда не смешиваем их в одной метрике.
Движки с поиском (grounded): Алиса/Нейро, ChatGPT с веб-поиском. Они ищут информацию в интернете и цитируют источники. Здесь измеримы и упоминания бренда, и доля цитирований его сайта, и карта источников, которым движок доверяет.
Движки без поиска (ungrounded): GigaChat, DeepSeek (в API-версиях). Они отвечают из того, что выучили при обучении. Источников здесь нет и быть не может – измеримы только упоминания. Это не дефект измерения, а свойство движка: 38% российских пользователей ИИ спрашивают GigaChat, и то, что модель «знает» о бренде из коробки, – самостоятельный и важный сигнал.
Мы всегда указываем, каким способом получен ответ (API или интерфейс) и какая модель фактически ответила – модель из ответа провайдера, а не из нашего запроса: провайдеры перенаправляют алиасы моделей без предупреждения, и мы это логируем.
Почему каждый вопрос задаётся минимум трижды
Одинаковый вопрос, заданный нейросети три раза подряд, даёт три разных ответа: меняются упомянутые бренды, формулировки и даже состав цитируемых источников. Это не сбой – так устроена генерация.
Поэтому одиночный замер – это шум. Каждая цифра CiteFlow – результат минимум трёх прогонов каждого запроса (K≥3), а рядом с цифрой мы показываем интервал неопределённости. Если доля упоминаний бренда – «12% ± 3 п.п.», это значит: при повторении измерения тем же протоколом результат ляжет в этот диапазон.
Из этого следует неудобное, но честное правило: не всякое изменение – результат. Для каждой панели мы считаем минимальный обнаружимый эффект (MDE) – порог, ниже которого «рост» неотличим от шума. Изменение на 2 п.п. при MDE 5 п.п. – это не динамика, это погрешность, и мы так и пишем.
Метрики и их знаменатели
У каждой метрики опубликован знаменатель – без него процент не значит ничего.
Mention Rate – доля ответов, в которых упомянут бренд. Знаменатель: все успешные ответы движка по панели, включая ответы «не знаю» и отказы (это тоже данные о видимости).
Citation Share – доля ответов grounded-движка, в которых процитирован домен. Мы засчитываем только источники, которые движок реально использовал в ответе: Яндекс, например, отдаёт и найденные, но не использованные источники – они учитываются отдельно, как «шорт-лист без цитаты».
Grounding Rate – доля ответов с источниками вообще; показывает, в какой мере видимость в движке управляется через публикации, а в какой зашита в веса модели.
Эхо промпта не засчитывается. Если бренд или домен звучит в самом вопросе («CiteFlow отзывы»), его повторение в ответе – не заработанное упоминание, и в Mention Rate оно не входит. Без этого правила брендовые запросы панели создают видимость ненулевой базы из ничего.
Ошибки провайдера не выбрасываются из знаменателя, а учитываются как исходы – иначе метрика завышается в дни сбоев. При этом мы различаем два вида ошибок: отказ провайдера при корректном обращении – это наблюдение, оно остаётся в данных; ошибка нашего собственного инструмента (например, превышение нами же лимитов запросов) – это брак измерения, он исключается с сохранением сырья и явной пометкой в отчёте.
Что мы храним и показываем
Каждый сырой ответ каждого прогона сохраняется с датой измерения, движком, фактической моделью и источниками. Любую цифру в отчёте можно раскрыть до конкретных ответов, на которых она посчитана. Если клиент вручную задаст тот же вопрос и получит другой ответ – это ожидаемо (см. про три прогона), и именно поэтому мы показываем распределение, а не один ответ.
Ограничения – о них честно
API-ответы близки, но не тождественны тому, что видит пользователь в приложении: у провайдеров различаются сборки и системные настройки. Мы помечаем канал получения каждого ответа и ежемесячно вручную сверяем выборку ответов с живыми интерфейсами.
Движки обновляются без предупреждения. Одновременный сдвиг метрик у всех проектов – признак обновления модели, а не работы всех брендов сразу; такие события мы аннотируем на графиках.
Мы не гарантируем «места в ответах нейросетей» – их не контролирует никто. Мы гарантируем честное измерение, воспроизводимый протокол и план действий, эффект которых можно проверить этим же протоколом.
Вопросы к методологии – hello@citeflow.ru. Если вы нашли слабое место в протоколе, мы хотим об этом узнать первыми.