春节所在周订单环比下降 42%,周报发出后被运营打回,去年同期同样下跌 39%,两年曲线形状几乎一样。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

SELECT week, orders, is_holiday FROM report_weekly WHERE week BETWEEN '2024-01-29' AND '2026-03-01';
df['orders_adj'] = df['orders'] / df['seasonal_factor']

环比只看相邻两周,没有排除节假日造成的周期性波动。春节在公历上的日期每年不同,直接比会把这部分波动算成业务下滑。周报里也没有标注节假日区间。这一点先确认清楚,后面就不用反复试。

碰到「环比节假日」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

具体做法是,环比同时给出春节对齐后的可比周;把节假日区间做成日历表 报表自动标注;同比优先于环比 尤其跨节假日的周;把两年的日均曲线叠在一起看形状。

改完照着核一遍,周报里春节周标注了节假日,环比旁边多了一列对齐后的 -3.1%。

作者 9823189