量价分析的数据挖掘我想做很久了,商品促销策略的制定好像都是运营凭经验粗略的拍定方案,其实只要数据样本足够是有机会针对不同的商品/品类发现不同的促销规律的,从而实现数据驱动的及精细化运营,下面开始探索几个促销关键问题的答案,前两个问题简单带过,最后一个问题重点分析。
- 促销如何选品?
- 促销延续多久?
- 促销多大力度?
促销如何选品
这个功能已经基本实现,简单说明逻辑: 对于标品来说可以直接计算SKU的年化周转次数,分别统计本周,近一个月和近三个月的年化周转,将全国周转三个指标均排名末尾的商品自动纳入清单作为第一层筛选, 然后挑选库存量足够深的商品作为第二层筛选。
如果要精细运营还可以有第三层针对地区/单店的筛选,取全国促销清单和区域/门店排名末尾商品的交集作为区域/门店的促销清单,每周计算一次实现自动化监控。对于季节品,关键在于两个参数的设置要系统化: 生命周期与售罄目标,在商品上市一个月后开始在生命周期内持续预测售罄率,将售罄率预期与目标差异过大的商品纳入促销清单。
促销延续多久
把[销量/平均折扣]与[实收金额/平均折扣]的数据拉出来就能看到不管是第几波降价打折不宜超过两周,尤其是第二波的低折扣区间打折超过两周后有可能实收金额还不如不打折,如果再考虑毛利就更不划算了,这个数据也可以分品类看出各品类的部分差异。
促销多大力度
这个问题相对复杂一些,先把它进一步拆解
3.1 商品的价格弹性如何?
3.2 量价曲线的毛利平衡点在哪里?
价格弹性(PED)
Price Elasticity of Demand 表示当价格发生1%变化时所带来的需求的百分比变化,公式如下:
E = %△Demand / %△Price
如果 |E| > 1, 意味着需求变化大于价格变化, 则此产品是弹性的
If |E| < 1, 意味着需求变化带来的价格变化较小,则此产品是非弹性的
容易被替代的非必需的商品通常是弹性的, 如水果店某种水果打折销量一定会有显著变化。
刚需商品通常是非弹性的, 如猪肉价格飞涨,但是日常该吃肉还是得吃。
数据准备
数据准备会遇到很多挑战,需要考虑的因素太多,比如打折的衰减效应,非标准折扣的计算与处理,周末与节假日的销量波动,尾部商品库存不足带来的销售变化,低销量商品的置信度等,翻来覆去讨论方案差不多花了两周时间。但是数据团队很厉害最终还是把这个艰巨任务完成了,抽取出了比较靠谱的数据。
计算首先从单品纬度开始,再往上聚合到不同的品类层级,所以最终的呈现可以从大类一直下钻到单品。抽取两个品类的销量与折扣趋势观察,销量与折扣呈明显的背离趋势,但是弹性有所不同,整体感觉还是挺靠谱的。
线性回归
有了原始数据就可以开始计算价格弹性了,将折扣分组对应的销量指数提取出来,现在抽取文具和玩具两个类目来看会发现什么?
- 文具和玩具的弹性差异很大,文具是非弹性品类,而玩具的销量对价格比较敏感。
-
文具最多打到8折就可以了,再深的折扣也无法带来销量的提升,就是白白送钱。
对于玩具来说8折这一档是空缺的,如果打8折会对销量会带来什么变化呢?
简单的做法可以对散点数据作一个线形拟合得出公式y=-3.0186*x+3.8798, 将x=0.8代入得到1.465
但实际上量价散点应该是非线性的,用线性方程拟合度贴切度欠佳,因此可以引入下面的双对数模型。
双对数模型(log-log model)
对于价格和销量两边都取对数成为双对数模型,通过对数转化可以将非线性模型变成线性模型
两边取对数
因变量和自变量的双对数模型数学推导如下:
Ln(y1)=βLn(x) [1式]
Ln(y2)=βLn(x+Δx) [2式]
两式相减
Ln(y1)-Ln(y2) = β[Ln(x+Δx)- Ln(x)]
Ln(y1/y2) = βLn[(x+Δx)/x)]
根据泰勒一阶展开约等于
(y1/y2-1)= β[(x+Δx)/x)-1]
(y1-y2)/y2=β(Δx/x)
当Δx为%1*x时,(y1-y2)/y2=0.01*β,
也就是y平均变动0.01*β*100%个单位,即β%
对双对数做线性拟合β1=-1.3342就是这个品类的弹性系数, 代入弹性系数对上文公式两边求幂
当折扣为0.8折时, 销量指数为exp(-1.3342*ln(0.8)-0.0119)=1.33, 销量提升33%
毛利平衡点
对于加倍率不高的商品来说其实基本没什么分析必要,只要打折了毛利总额肯定下降,如果以毛利额为目标,弹性最高的商品最多也就打个九折还有点机会。
References:
Econometrics and the Log-Log Model
因变量和自变量取对数后的弹性/半弹性解释