口径与方法论
一个百分数只有在口径明确且可比时才是信息。这一页把我们的采样方式、计分公式、 不可计算的判定、以及已知局限全部写出来 —— 不是为了显得严谨,而是为了让你可以 核查,也可以拒绝:如果你认为某条规则不成立,欢迎发邮件质疑。
口径版本号:vs2(真源常量 VISIBILITY_SCORE_CALIBER)。跨口径的报告不能直接比较。
1. 数据怎么来(采样口径)
- 粒度:品牌 × AI 引擎 × 日期。每天采样一次(cron:UTC 01:00 = 北京时间 09:00)。
- 引擎槽位:ChatGPT、Perplexity、Gemini、Claude(内部分别记为
chat_gpt/perplexity/gemini/claude)。不支持的槽位直接抛错,绝不用普通搜索结果冒充某个 AI 模型的回答。 - 取数纪律:引擎槽位只由合规且允许转售的自动通道供给。
- 时间锁:AI 引擎今天说过的话,明天查不回来。今天没采集,这一天永远空缺、无法回溯补采。
- 数据保留:原始响应(raw payload)短存 7 天后删除;派生指标永久保留。
2. 分数怎么算(bp 与位次权重)
- 万分位整数(bp):0–100 分内部存为 0–10000 bp,避免浮点累加误差;展示时 /100。
- 位次权重:提及位次
rank ≤ 3记 1,rank ≤ 5记 0.8,其余记 0.5;未被提及记 0。 - 可见度得分:
visibility_score_bp = 加权提及总和 / 有效观测数 × 10000。 - 有效观测:仅
answer_source !== 'none'的采样 —— 引擎没产出 AI 概览的问句不是一次有效的可见度测量。 - 提及率:
mention_rate_bp是另一口径,仍按全部问句计,与可见度得分不可混用。
3. 口径版本:vs2
- vs1:分母 = 全部采样(含
answer_source='none')→ 引擎没给 AI 概览的问句被当成"品牌不可见"的零分,系统性低估可见度。 - vs2(当前):分母 = 仅"确实产出 AI 概览"的采样 → 未产出概览的问句不入分母。
- 改口径 = 改真源常量
VISIBILITY_SCORE_CALIBER+ 改测试 + 换版本号。不标版本的分数无法跨期比较,也无法被复算。
4. null 与 0 是两回事
null= 不可计算:有效观测数scored_samples = 0,或比较集内无任何提及。展示为N/A/ 「不可计算」。0= 真实结论:有有效观测,但确实一次都没被提及。- 绝不显示 0 分代替 null:「没有测量」被渲染成 0,会让引擎 / 题目 / 市场的配置问题被读成"品牌在 AI 里完全不可见"。
- 空档日不是 0:某天没采样时该日可见度为
null,不用 0 填补(0 会被误读成"掉了")。
5. SoV(声量份额)的分母
- 分母含自身:
share_of_voice_bp = own_mentions / total_mentions × 10000,其中total_mentions是比较集全部品牌(含自身)的提及数。 - 历史上若分母排除自身,会出现 200% 这种数学上自相矛盾、却被当成"我们很强"写进报告的数。
- 分母为 0 时返回
null(不可计算) —— 绝不把 0 替换成 1。那会在最需要克制的时候给出最乐观的数。 - 口径明细随结果返回:
sov.own_mentions/sov.total_mentions/sov.brands/sov.comparable/sov.issues/sov.sample_note。
6. 比较集必须显式声明
peerIds必传,没有"默认全库"这种兜底。默认取库里所有品牌会让一份报告的分母随库里恰好有什么而漂移。- 比较集含自身,由调用方按口径(市场、题目版本、授权品牌)显式给定。
- 竞品缺口(
citation_gap)同样只在同一比较集内计算 —— 传全库进来会把"别的客户被谁引用"混进你的缺口清单。
7. 不可比要如实披露
- 比较集只应在同一市场 + 同一题目版本内比较。跨市场或跨题目版本时
sov.comparable = false,并在issues中逐条列出原因(如「跨市场混算」「跨题目版本混算」)。 comparable = false时该数值不得作为客户结论,仅供内部参考。- 多引擎是设计(
engine_divergence专门看引擎间差异),但报告必须披露覆盖了哪些引擎。
8. 样本不齐要可见
- 各品牌采样量不齐时给出
sample_note,不假装各品牌采样量相同。不齐不判为不可比,但必须可见 —— 声量占比按提及次数计算,采样少的一方会被系统性低估。
9. 趋势与引擎差异的判定
- 趋势(
trend_delta):最近窗口 vs 之前窗口的 bp 差。任一窗口无有效观测 →null,绝不用null − 数编造一个变化量。 - 引擎差异(
engine_divergence):至少两个引擎有有效观测才计算极差;只有一个引擎时spread_bp = null—— 没有第二个引擎可差,"极差"无从谈起。
10. 已知局限(如实披露)
- 历史不可回溯:未采集的日期永久缺失,晚一天启动 = 永久缺失一天。
- 我们只测量,不承诺提升:提及率是否提升取决于客户自身的内容、外链与公关动作。
- 能生成 ≠ 能交付:窗口内有效样本不足时给出覆盖天数与空档天数,趋势字段为
N/A而不是编一个数。 - 样本数据不进交付:
is_sample的行参与计数但不作为结论交付;带样例水印的报告禁止交付。 - 聚合披露的边界:对外指数与基准类数据须满足 k-匿名(k≥5)与保密边界(客户品牌不进跨客户基准),单项客户数据不会出现在公开聚合之外。
- 自助开通:在线自助订阅与充值已开放,选档位付款后凭 request_id 一键领取 API key;也可邮件 service@saler.ai 由我们代开。
11. 变更纪律
- 口径变更 = 改真源常量 + 改测试 + 换版本号,并在本页同步更新;不静默改口径。
- 本页与
/llms-full.txt、/docs的口径表述必须一致;发现冲突以较新表述为准,并可发邮件向 service@saler.ai 求证。 - 本页点名的字段名由测试钉住(与
src/metrics/visibility.ts逐字比对),改名而文档未改会红。