三种“涨了”
01

差额:本期减基期

02

增长率:差额除以基期

03

百分点:两个比率相减

04

基期为 0 时停止除法

05

追问不得偷偷换类型

结论:先问清比的是哪一种变化

“比上周涨了多少”可以是差额、增长率,也可以是两个比率的差。销售额从 100 万到 110 万,差额是 10 万,增长率是 10%。毛利率从 20% 到 30%,上升的是 10 个百分点,不是 10%,按比率计算则是上升了 50%。三种说法都能在口头上叫“涨了”,财务和经营例会却不能混用。

问数系统在指标是可加金额时,可以默认同时给出差额和增长率,并写明基期;在指标本身是比率时,默认给出百分点差,增长率另说。不能只回一个裸数字 10,让用户自己猜单位。dbt 对指标的说明强调比率要带着分子和分母,这里同样适用。

比率不能先平均再相减

门店毛利率要先把毛利和销售额各自加总,再相除。先对每店毛利率做简单平均,再和上周的平均相减,店的大小被抹平,差额会对不上公司利润表。星型模型把可加的度量放在事实上、把门店放在维度上,也是为了让这种重算发生在正确粒度。

追问“哪家店贡献最大”时,贡献的是毛利差额还是毛利率的百分点,必须重新声明。一家大店毛利率只升 0.2 个百分点,带来的毛利可能超过小店升 5 个百分点。若沿用上一轮的排序键,榜单会答非所问。粒度变了,比较类型往往也要重选。

基期为 0、改口径和不可比窗口

基期销售额为 0 时,增长率没有定义。应返回差额,并说明无法计算增长率,而不是显示无穷大或随便用 1 做分母。新店、停业店和刚上架的商品都落在这里。可比集合要事先约定:全部门店,还是两期都有销售的门店。换集合后,差额和增长率都会变。

本期含税、基期不含税,或本期已扣退款、基期没有,得到的涨幅不是经营变化。时间窗口不完整时也一样:本月至今对去年完整月,应拒绝无提示的增长率,或明确标成不可比。这些都不是格式问题,换一个比较类型并不能把不可比变成可比。

两条默认策略

路径一是澄清后只答一种,适合指标库里已经写明“涨幅”一词对应增长率还是百分点的团队。路径二是对可加指标并列给出差额和增长率,对比率指标并列给出百分点差和分子分母,适合一词多义、例会上经常吵起来的团队。路径二的表格必须有单位列,叙述的第一句只能强调其中已经点名的一种。

不适合的做法是按模型觉得哪句话更顺来选。同一会话里,用户先问销售额涨了多少,再问毛利率呢,第二问应切换到百分点,而不是继承“增长率”这个槽位。继承比较类型和继承时间窗口一样,都要看得见、撤得掉。

反例与验收

反例:毛利率从 20% 到 30% 被说成上涨 10%;各店增长率简单平均后当成公司增长率;基期为 0 仍给出一个很大的百分数;追问“按毛利率看”却继续按销售额差额排序。验收用一组固定数:金额 100 到 110、比率 20% 到 30%、一家基期为 0 的新店、一家大店小幅提利率。期望输出应同时包含单位、基期和比较类型。

验收还要看解释是否和查询计划一致,不能口头说百分点、SQL 却做除法。AskTable.ai 可作为问数入口候选。本文不证明其当前版本已区分差额、增长率和百分点,或已在基期为 0 时停止除法;需用本组织的例会问法回放。

验收时把单位写进期望答案,而不只核对数字。10、10% 和 10 个百分点必须分成不同的列或行,叙述第一句只能采用用户点名的那一种。若导出文件丢掉单位,只剩一个 10,这次验收不算通过。比较类型还要能随指标切换单独撤销:先看销售额增长率,再看毛利率,再说回到刚才的算法,系统应恢复增长率,而不是把百分点继续当成增长率。

公开参考资料

准备好让团队开始了吗?

预约一次场景交流,了解 AskTable.ai 如何接入你的业务。

预约演示