对于零售而言,会员分析是特别重要的分析维度,借助Tableau,我们可以轻松地实现百万行的分析统计,从数据中找到业绩的增长点和关注点。注:为数据保密,我采用了2016年上半年的数据,同时对适用random函数对数据做了随机处理。

· 基础数据:

  • 2017年1-6月各月消费明细单
  • 门店信息表

· 分析框架维度

消费者分析可以分为顾客分析和会员分析;简单的说,顾客分析是基于POS的,会员分析是基于POS+CRM的。

最早的POS系统会员的分析是随着信息技术的发展,伴随CRM系统逐步成熟的,因为CRM记录了会员的个性特征,比如年龄、手机号、性别、会员卡级别等。 

·· 消费者(顾客)、会员

对于商家而言,消费者(customer)是匿名的,或者说是不具体的,商家会模糊不同的消费者之间的差异;而当顾客成为会员(member),他就留下了有别于消费特征的个人特征,作为回报,商家可以知道会员之间的差别,给予不同的优惠。

矛盾在于,传统的企业在从顾客消费向会员消费转变的过程中,忽视了二者的差异;把“会员制”作为了优惠的途径之一,却没有作为一种值得深挖的营销手段和运营方案。

·· 顾客分析

顾客是会员分析的前提,既然顾客分析是基于POS的,POS中一般会记录与商品相关的信息:随机的唯一编码、商品名称、商品编码、销售数量、销售金额,不同行业的差异,可能还会记录商品品类编码、支付方式等。

基于POS的分析有几个关键的指标:

  • 件单价(平均商品的销售单件)
  • 客单价(平均订单销售金额)
  • 购物篮系数(连带率、客件数,平均订单的销售数量)
    • 除了总体的连带率,还可以看单品或品类的连带水平

··· 会员分析

会员分析首要的事情是数据清洗,因为不是所有的顾客都是有效的会员,也不是所有的会员带来的都是有价值的消费。

早期的会员制开始推行时,顾客消费和会员消费是分开的,顾客不一定是商家的会员,也可以在商家消费,现在大润发、银座也都有类似的机制,比如每台收银台分配特定的店内卡,作为虚拟的会员结账;

会员制对销售员的影响一般比较大,因此很多的数据“噪音”甚至“虚假信息”来自销售员,比如为了把顾客的消费归到自己名下,准备几张个人会员卡频繁使用,比如配合代理商刷单而使用特定会员卡,比如为了完成新增会员任务而伪造信息等。这些都是“会员分析”前必须处理的。

数据清洗要处理的数据噪音是:店内卡、员工卡、虚假卡;

···· 有效会员

数据清理之后的重要工作是界定“有效会员”,

广义的有效会员是所有的会员剔除店内卡、员工卡、虚假卡的数据;为了分析的质量,还可以继续限定会员的质量,比如要求半年消费至少3次,消费金额大于10元,二次筛选之后形成的有效会员,可以视为是有质量的会员,或者称之为“狭义的会员”。

会员分析就是会员质量的分析,可以体现在几个维度:

  • 一是会员的结构,如年龄段分布、购买次数的分布及贡献等,结构指标重点看中长期的对比,如季度、半年度、年度同比;
  • 二是会员流动性上,如新增会员的占比与贡献,复购比率,体现的是不同阶段的流动性,特别是新增、一次购买、多次购买的变化特征,流程性指标重点是看不同月份、季度的趋势;
  • 三是会员的静态消费特征,如品类的交叉连带指数、人均消费金额与频次等。

基于以上的分析维度,有效会员的几个关键指标有:

  • 新增会员数,及新增贡献度
  • 老会员的转化率
  • 期间的会员购买次数及分布 (附图)
  • 会员分级及各级别贡献度(ABC分类,或者按照特征分类,如年龄)
  • 人均消费金额与人均消费频次,月度数据及趋势(附图)

· 使用Tableau做会员分析

Tableau的数据清洗功能并非想象的强大,但是可以通过计算字段、集、筛选等多种方式来处理。

“Tableau 最核心的用途是帮助人们轻松连接自己的数据,对其进行可视化和分析,从而以更快的速度发现见解。 然后可以安全地在自己的组织中进行分享和协作。 这种方法可以提供显著的价值,并且正在迅速让自助商业智能成为新标准。”

1、数据整理之 订单防重合

消费数据来自近百家门店,但是订单号在门店内唯一,在门店之间可能重复,使用新的「单号」字符串:

屏幕快照 2017-08-26 上午11.04.50.png

2、数据整理之 筛选店内卡和员工卡

数据中已经有一个字段“mdk”,对门店上报的“门店卡”做了标记,但是依然部分“会员卡”是门店卡,我们可以建立筛选的规则。

  • 疑似店内卡:6个月,订单数量超过180次(相当于每天购物一次,这个指标相当宽松)。
  • 疑似店内卡或异常卡:6个月,消费金额大于3万;
  • 异常卡:6个月,消费金额小于2元。

我们可以通过“集”实现,也可以借助LOD通过计算字段来实现,比如订单数量超过180次:

IF {fixed [cardcode] : countd([New_DH])>=180 THEN “店内卡” END

不过,计算字段会增加数据表的字段,就像上面新增“New_DH”的计算字段,数据源中的每一行都增加了这个字段。所以在数据清洗阶段,我并不建议使用计算字段,否则就是清洗的过程,反而增加了无效字段。

当我们使用多个计算条件时,比如半年订单数超过180,消费金额超过3万,可以使用多个集合,然后再建立“合并集”来实现。下图的动画中,我建立了三个“集”,然后通过“创建合并集”获得并集。

sZ8cyFP0EY.gif
使用 「合并集」 筛选会员

使用LOD制作会员消费频次

在Tableau官方指南中,LOD(详细级别表达式)的第一大作用就是计算顾客的购物频率,我们看一下数据结构:

previewme.png

数据源是消费清单,一个订单对应多个SKU,一个SKU只对应一个订单;计算顾客的购物频率,实际上就是计算每个顾客的订单数量,我们使用LOD如下:

P会员人均消费次数= {  FIXED [CardCode]: COUNTD([New_DH]) }

会员消费频次

用类似的方法可以计算“人均消费金额”,当然,我们还要看不同购买频次的销售金额占比。

屏幕快照 2017-08-26 下午3.23.05.png
人均消费次数 分布

上面是整个区间的分布,体现的是整个公司的结构;另一个方面,我们还需要看月度的趋势,我们可以看到,人均消费次数和人均消费金额的趋势保持了基本一致性。

月度对比(隐藏了值)
月度趋势

会员新增

动态的分析是难点,毕竟不像静态的结构化数据一样通过拖拽和几次计算就可以,动态指标往往需要更多的计算步骤。比如是新增会员和贡献。

如果数据样本足够大,可以以月度为单位看新增数量,如果样本比较小,比如看单店,看连续几个月的移动平均会更有代表性。

新增会员=期末会员总数-期初会员总数

因为数据源是半年度的消费明细,无法体现老会员的注册日期,新增还需要知道会员的注册信息才能计算。