报表里的数对不上,通常是哪几个原因?

多数时候不是报表错了,是两个数在回答两个不同的问题:比率是怎么算的、窗口切在哪几天、这个字段来自哪张表又滞后到哪天。按这三类排查,绝大多数「对不上」当场就能定性。

先归类,再排查

一个数看着不对,几乎都落在三类里:算法(这个比率是怎么算出来的)、边界(算进去了哪些天、哪些行)、来源(这个字段来自哪张报表,它更新到哪天)。三类的查法完全不同,混在一起找就会来回打转。先花一分钟归类,比一上来怀疑报表本身有效率得多——真正的「报表错了」很少见。

广告侧是精确记账,业务侧是另一条链路

展示、点击、花费、广告订单、广告销售额都是平台按广告事件记的账,这几个数是精确值。而 Session、Buy Box 占比来自业务报告,是另一条独立更新的链路,和广告数据各自滞后。总销售额也不是「自然销售额」:总销售额 = 广告 + 自然,广告销售额是它的子集,把两者相加等于把广告那部分算了两遍。

有些「不一致」本来就是对的

同一个产品,在广告活动层、投放层、搜索词层看到的 ACoS 不一样,这是正常的——三层的分母不是同一批订单。所以两个数不等的时候,先问它们是不是在回答同一个问题;如果不是,把两边对平这件事本身就是个错的目标。

按这个顺序看

  1. 01

    确认两个数覆盖的是不是同一段日期

    最常见的「不对」其实是在比两段不同的时间。先把两个数各自的起止日写出来。标准窗口是这么切的:近 7 天 = 最新报表日往前数 7 天(含当天);前 7 天再往前 7 天,与近 7 天不重叠;近 30 天是往前 30 天,它包含了近 7 天和前 7 天。日期不同,后面就不必查了。

  2. 02

    看这个窗口里实际有几天数据

    窗口按日历切,数据不一定齐。缺了三天日报,「近 7 天」里可能只有 4 天。这时它和另一个满 7 天的窗口相比,差的是天数,不是表现。每个窗口都该带一个「实际有几天数据」的计数,先看这个数,再看指标。

  3. 03

    分清手上是比率还是绝对值

    绝对值(花费、订单、销售额)对不上,多半是日期或行的范围问题;比率(ACoS、TACoS、转化率)对不上,先怀疑算法。比率必须分子分母各自求和再相除,这一类占了错误的大半,详见下面第一条。

  4. 04

    判断空着的格子是「未知」还是「零」

    窗口内该指标完全没有数据,正确的表达是「未知」;「确实有数据,值就是 0」是另一回事。两者当成同一个 0 读进去,会算出一个看着合理、其实没有依据的比率。

  5. 05

    最后核对行的粒度

    同一个搜索词可以由多个投放触发,报表里就是多行——它要靠 ASIN、广告活动、广告组、来源投放、匹配方式一起才唯一。想看「这个词一共花了多少」必须显式按词汇总;反过来,拿其中一行当成这个词的全部,就会漏掉其他投放带来的那部分。跨粒度直接对账(用搜索词行的和去对广告活动行)同样不成立。

最容易算错的地方

对着日行的比率列取平均

这是最常见的一类。ACoS、TACoS、转化率都是比率,七天的比率加起来除以七,不等于这一周的比率。花 100 美金带来 1000 美金的那天,和花 1 美金带来 2 美金的那天,在平均值里权重一模一样,后者足以把整周的数拉得面目全非。正确做法只有一个:先把分子和分母各自在窗口内求和,再相除。报表自带的比率列同理——它只是那一行自己的比率,跨行汇总时不能直接拿来用,得回到原始的花费与销售额重算。花费越不均匀的账户,这条错得越离谱。

把「没有数据」当成 0

窗口内一个指标完全没有数据,它的值是未知,不是零。这和「业务报告确实在场、Session 就是 0」是两回事:前者你不知道发生了什么,后者你知道什么都没发生。把未知按 0 读进比率,会得到一个凭空生成的结论——分母为 0 的转化率、把缺数据那几天当成「没卖出去」的周汇总。缺哪天就该看见缺哪天:静默补零比数字缺失更危险,因为它不再提醒你去查。

把三个窗口互相加减

近 7 天和前 7 天不重叠,所以「近 7 + 前 7 = 近 14」成立。但近 30 天包含近 7 天和前 7 天,所以「近 30 减掉近 7 和前 7 就是更早那 16 天」这种算法是错的,把三者摆在一起相加更是错的。做环比只用近 7 天对前 7 天;近 30 天是另一个用途——它给的是量级和趋势背景,不是三段之和。

把「今天」当成日历上的今天

报表里的「今天」= 最新报表日期,不是你打开电脑的那天。报表落库有延迟,最新一天很可能是昨天甚至前天。更容易出事的是业务报告:Session、Buy Box 占比和广告数据各自独立滞后,最新一天流量为 0,通常不是流量真的没了,而是业务报告晚了一天。看到这种断崖,先查这张表自己的最新日期,再下结论。任何一个「本周 vs 上周」的说法,都该同时讲清楚它锚在哪一天。

把「总流量 − 广告点击」当成真实自然流量

这个差值只是估算,看量级可以,逐点比较不行:总流量按 Session 计(一次访问算一个),广告点击按 Click 计(同一个人点两次算两次),两个口径相减在数学上本来就不严谨。它能告诉你自然流量大致占大头还是小头,不能告诉你「昨天自然流量掉了 12%」。精确的只有广告侧:点击、订单、销售额。要谈自然侧的变化,就得说明这是估算。

混用两个占比,或者拿三层的 ACoS 互相对账

「广告订单占比」= 广告订单 ÷ 总订单,「广告销售额占比」= 广告销售额 ÷ 总销售额,分子分母都不是同一组数。广告单和自然单的客单价一有差异,两个数就能差出十几个点,用途也不同,不能互相替代着说。同一件事的另一个版本:一个产品在广告活动层、投放层、搜索词层的 ACoS 各不相同,因为三层的分母不是同一批订单。这不是数据错了,硬要把三层对平才是问题。

毛利被扣了两遍,或者从日产品报表里找毛利

成本明细里的毛利,已经扣过亚马逊费用和广告费。拿它再减一次广告花费就是双重扣减,能把还在赚钱的产品算成亏损。另一头也要留意:这个口径不含仓储费——仓储费只在库存快照里,不进日粒度的利润口径,所以这个毛利偏乐观一点,讲结论时要说明。还有一个坑:日产品报表里的毛利列恒为空,直接查会显示成 0。产品的毛利要到成本明细里取,同一个 ASIN、同一个窗口,做一次算术。

把窗口里的价格、库存当成最后一天的实况

价格、库存、在售状态这类快照列,取的是窗口内最后一个非空值,不一定是最后一天的值。断货那天报表缺了这几列,就会沿用更早一天的快照——这是有意的:拿一个空值把已知的库存数字清掉,比留着旧快照更糟。代价是这些列的时效性弱于花费、订单这些逐日累加的列,判断当前状态仍应以后台为准。

把搜索词报表里的自然排名 0 当成「排到第 0 名」

搜索词报表里有一列自然排名,但当前导出里它恒为 0——0 在这里的意思是「没有这个数据」,不是排名第 0,也不是排名掉没了。看到一整列 0 而以为排名崩了,是这一层最容易吓到自己的误读。本产品对此的处理是:排名类问题直接说答不了,不拿流量趋势去凑一个像模像样的答案。

用一个填充很稀疏的列去算转化率

总流量这一列的填充是稀疏的:业务报告新鲜时它来自 Sessions,不新鲜时可能整段为空。拿它当分母算转化率,分母缺一天结果就跳一次,而跳动看着完全像是「转化率波动」。只有广告侧的点击、订单、销售额是每天都齐的精确记账——要一个稳的分母,用广告点击,它至少是广告侧的确切下界。

产品在这件事上做了什么

  • 所有窗口比率一律用「和的比」重算:分子分母各自在窗口内求和再相除,既不采用报表给的比率列,也不对日行的比率取平均。
  • 没有数据时返回「未知」而不是 0,缺了哪天就摆在你面前,不静默回填。
  • 「今天」= 最新报表日期,回答里会写明用的是哪一天。
  • 用到业务报告字段时,会先声明它滞后到哪一天。

相关指标口径

接着看