这张清单是从实际对账里攒出来的。每一条的共同点是:错了不会报错,只会让数字看起来正常。

建议用法:每月结账前过一遍;每接一个新平台,重点过 B 组和 D 组。

A. 费用归桶(三问)

A1 这笔钱的标签,等于它的性质吗

平台给的字段名是开发起的,桶是你定的,两者不该有必然关系。

怎么查:随便挑一个费用项,问自己"这笔钱如果消失,对应的是哪项业务行为消失"。答不上来,说明它被归错了。

→ 深挖:那笔「退款管理费」,跟退款没关系

A2 有没有把「非抽成」的钱并进抽成率

抽成率是跨平台比价的基准量。一旦里面混进保险、物流、仓储这类成本,所有横向对比都失真,而且失真幅度随月份变化。

怎么查:拿抽成率跟平台公开费率表比一次。差得越多,说明混进去的东西越多。

A3 有没有一个「兜底桶」

用"合计 − 其余"算出来的那一项,本质上是把不变量改写成恒等式。账会自洽,但自洽不等于正确。

怎么查:看费用结构里有没有一行的值是用减法算出来的。有,就要问它里面装了什么。

B. 汇率与分摊(三问)

B1 汇率是行级事实,还是被当成了平台常量

同一个平台的不同店铺、不同结算周期,币种可能都不同。硬编码一个"平台汇率",多店必错。

怎么查:看数据里有没有记录"这笔用了哪个汇率、取哪一天"。没有记录,就是没当事实处理。

→ 深挖:汇率按「最大的那个币种」取

B2 共享费用的记账币种,是显式指定的吗

月费、订阅、共享广告这些费用没有天然币种。如果系统每次都重新"选一个",你的成本率就会随生意结构波动。

怎么查:同一个共享费用项,看连续三个月的折算币种是否一致。

B3 分摊链上三处,是否同一个币种域

分子(这笔钱多少)、分母(按什么权重摊)、结果(每单摊到多少)——必须同一个币种域。任意一处中途换币种,数字就会漂。

怎么查:顺着代码或公式走一遍,看有没有半路把某个值换成另一种币。这一条最容易漏,因为三处常写在三个地方。

C. 主键与去重(三问)

C1 对账用的主键,在两边是同一套吗

拿 SKU 码当订单号用、拿订单号当出库单号用,都会静默错杀真实单据。错杀不会报错,只会少几行。

怎么查:抽十笔单据,人工核对"这条在我这边对应哪一条"。对不上的那几笔,问题就在键上。

C2 同一批数据,会不会被入库两次

同一张单出现在多个取数文件里,逐文件遍历就会重复入库。撞唯一键算运气好,撞不上就是重复计数。

怎么查:按业务键 group by 一次,看有没有 count > 1。

C3 取消单和退款,是否真的「零资金流动」

按状态剔除是最省事的写法,但它顺带做了一个假设:这类单没有钱进出。这个假设在部分平台上不成立。

怎么查:把最近三个月这类单的结算额求和。不是 0,就说明有钱在流动。

→ 深挖:客户取消的订单,平台照样扣你钱

D. 时间与保留期(三问)

D1 汇率取数日期,和结算口径是同一天吗

月初、月末、结算日,三个日期算出来的毛利能差一个点。选哪个不重要,固定一个并写进文档才重要。

怎么查:看报表说明里有没有写死"汇率取 T 日"。没写,就是每次都在重选。

D2 增量取数的「游标」,是不是页码

接口文档说"建议用时间戳做增量查询",不等于"用时间戳当翻页游标"。混用会导致只取到一部分,而且看起来成功了。

怎么查:拿一次全量数据,跟按增量逻辑跑出来的结果比总数。差的那部分就是漏的。

D3 平台数据能留多久,够你对完账吗

不少平台只保留 90 天明细。过期之后不是"查起来麻烦",是永久拿不回来。

怎么查:查平台文档里的数据保留期,跟你实际对账的滞后期比。滞后超过保留期,就必须自己落库存档。


这张清单怎么用

三道场景:

  1. 每月结账前:A 组和 C 组各过一遍,十分钟,能拦住每月重复发生的那类错。
  2. 每接一个新平台:B 组和 D 组必过。跨币种和保留期是新平台最容易埋雷的地方。
  3. 每次改完对账逻辑:只过改动涉及的那一组,但要连"它的组成项"一起验——修主指标不修组成项,比不修更危险。

最后一条判据:如果某个数字你能算出来、但解释不了它是怎么来的,那它就是错的,只是还没被发现。