目录

分析框架

0.问题背景

1.商品

1.1 销量top5

1.2 销售额连续下降/上升

1.3 商品聚类

1.4 商品详情

2.时间

2.1销量-时间变化的描述

2.2 销量预测

2.2.1 霍尔特-温特模型

2.2.2 Facebook-Prophet

2.2.3 销量的品类地区拆分

3.用户

3.1 基础数据

3.3 用户生命周期分层

3.4 用户RFM分层

4.地区

5.交付能力

6. 总结和建议


分析框架

1. 商品:热销top5;单价,销量,评分的聚类分析;销量连续上升/下降监控;详情页元素分析

2. 销量-时间:趋势,季节性,节日,销量预测

3. 用户:客单价,复购率,用户生命周期分析,RFM分类

4. 地区

5. 交付能力:发货时长,快递时长,超时订单占比

分析工具:python excel powerbi

数据下载:

数据集-阿里云天池

python 进行数据导入,表格连接和预处理

import pandas as pd
import numpy as np
import datetime
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error,accuracy_score,calinski_harabasz_score
plt.rcParams['font.sans-serif']=['SimHei']#显示中文标签
plt.rcParams['axes.unicode_minus']=False#显示负号
%matplotlib inline
plt.style.use("ggplot")
#读取数据
order=pd.read_csv('olist_order_items_dataset.csv')
deliver=pd.read_csv('olist_orders_dataset.csv')
pay=pd.read_csv('olist_order_payments_dataset.csv')
customer=pd.read_csv('olist_customers_dataset.csv')
#数据预处理和表格连接
order1=order.groupby(by='order_id').agg({'order_item_id':sum,'shipping_limit_date':'first'}).reset_index()
pay1=pay.groupby(by='order_id').agg({'payment_value':sum,'payment_type':'first'}).reset_index()
deliver_happened=deliver[~((deliver.order_status=='canceled')|(deliver.order_status=='unavailable'))]
order2=order1.merge(right=pay1,left_on='order_id',right_on='order_id').merge(right=deliver_happened,left_on='order_id',right_on='order_id')
order2=order2.merge(right=customer,left_on='customer_id',right_on='customer_id')
order2['shipping_limit_date']=pd.to_datetime(order2.shipping_limit_date)
order2['ordermonth']=order2.shipping_limit_date.values.astype('datetime64[M]')
product=pd.read_csv('olist_products_dataset.csv')
review=pd.read_csv('olist_order_reviews_dataset.csv')
review1=review.iloc[:,1:3]
review2=review1.merge(right=pay,left_on='order_id',right_on='order_id')
p=order.merge(right=review2,left_on='order_id',right_on='order_id').groupby('product_id').agg({'price':'first','freight_value':'first','payment_value':sum,'order_item_id':sum,'review_score':'mean'})
p1=product.merge(right=p,how='left',left_on='product_id',right_on='product_id')
#去除不全的数据
order2=order2[(order2.ordermonth>'2016-12-31')&(order2.ordermonth<'2018-08-02')]

0.问题背景

Olist是巴西的一家百货零售公司,巴西各地的企业可通过Olist商店售卖他们的产品,通过奥利斯特物流合作伙伴将产品运送给客户。该数据集提供 2016 年至 2018 年在巴西多个市场下订单的 10 万份信息。其功能允许从多个维度查看订单:从订单状态、价格、付款和货运性能到客户位置、产品属性以及客户撰写的最后评论。

从以上的数据中寻找生意的优化点,包括但不限于提高销售额,交付水平,客户满意度。

1.商品

该商铺为综合大型商铺,经营范围覆盖美妆,电子,服饰,家具等70个类目,商品品类繁多齐全。

1.1 销量top5

销量最好的前五个品类为健康美妆,钟表礼品,床桌洗浴,运动休闲,电脑配件,总计占40%的总销售额。

对于这些品类,可采取扩张的营销策略。吸引同品类商铺入驻,增加产品种类,增加广告投放和流量倾斜,增设折扣促销活动,在热销商品中打造明星爆品,以爆品带动整个品类乃至全平台销量,可适当多备库存防止断货造成的生意损失。此外,对于五个品类中除去床桌洗浴这种大件,不易复购的品类,其他的四种品类都应注重培养用户复购的习惯,包括但不限于开设会员充值,积分制度,主动联系老用户(发优惠券),定期折价促销。

销量不佳的品类有进口图书,电影照片等。对于销量不佳的商品,可根据商场的定位,看是否要移除该品类,优化选品,或是减少备货,根据销售淡旺季上货。

1.2 销售额连续下降/上升

定义最近三个月销售额连续下降的商品品类,为近期滞销品类,用powerbi 完成筛选。钟表礼物和蓝光DVD。钟表礼物作为该平台第二大销售品类(占比8%),连续三个月销售额的下降,总下降幅度高达14%,主要降幅在6月份,高达28%。

按照如下框架分析原因:

销售额趋势和季节性:查看去年同期销售额趋势为连续上升,可排除季节性的影响。

客单价:钟表礼物类为高客单价商品(236),在6,7,8月的客单价也经历了三连降,平均值仅有214,客单价下降10%,说明客单价的下降对销量的下降有一定影响。且去年同期也经历三连降。说明客单价下降具有季节性。

假设1 用户消费能力下降。验证:取3,4,5月的数据进行钟表礼物价格分布比对,红色为678月的数据,可见678月有更多的商品单价在[0,100],345月的商品则更多的分布在[100,150]。即客户在678月倾向购买小于100元的低价钟表礼物,而345月的更偏爱100-150的中等价格商品。345月份新用户中来自top2城市的比例大于678月。故假设1正确,可能是拉新渠道质量下降导致。其中商品id“53b36df67ebb7c41585e8d54d6772e08”三个月内共136单(占43%),均价116,678月的商品,a92930c327948861c015c919a0bcb4a8三个月下单111单(占19%),均价78。678月份有低单价商品爆单,345月有高单价商品爆单。所以也需要重点关注这两件商品,明确单量暴增原因。

cat=pd.read_csv('product_category_name_translation.csv')
order3=order.merge(right=product,left_on='product_id',right_on='product_id').merge(right=cat,left_on='product_category_name',right_on='product_category_name')
watch=order3[order3.product_category_name_english=='watches_gifts']
watch1=watches[(watches.shipping_limit_date>'2018-06-01')&(watches.shipping_limit_date<'2018-09-01')]
watch2=watches[(watches.shipping_limit_date<'2018-06-01')&(watches.shipping_limit_date>'2018-03-01')]
plt.figure(figsize=(16,8))
sns.distplot(watch1[watch1.price<1000].price)
sns.distplot(watch2[watch2.price<1000].price)
plt.show()

假设2 商品质量存在问题,用户差评增加。对于商品好评率,678月平均评分为4分,345月份为3.9分。对评分为1,2分的订单数,678月为70个/月,345月为90个/月。可见678月客户满意度是上升的,所以假设2不成立,商品的质量不存在问题。

付费顾客人数:主要的突变在于5月份,对钟表礼物类,5月顾客环比增长82%,6月环比下降33%。而对整体所有类目的顾客总数也在5月达到峰值,5月环比上涨28%,6月环比下降16%。

假设3. 新客人数下降。5月份669位新客,6月份443位新客,假设3正确。

假设4. 老客人数下降。5月份13位,6月份20位,老客的客单价与新客差距不大,数量差距很大,复购的影响微乎其微,假设4不正确。

猜测该平台5月份进行拉新活动,钟表礼物类作为了重要的拉新类目也取得较好效果。5月份新增用户在6月份回购率为0。说明6月份的付费人数下降主要由于拉新活动结束,新客户回归到正常水平,且新客并未产生复购。用霍尔特温特模型对钟表礼物类付费客户人数进行预测,结果表明整体仍呈上升趋势,预计9月份会上涨16%。

转化率:假设5,转化率下降。该商品的订单取消了很低且比较稳定,在千分之一到千分之四之间,对销售金额影响很小。假设5不正确。

销量预测:用霍尔特温特模型对钟表礼物类的付费用户数,客单价做预测,结果见下图。销售额将在9月份回升到6月水平,10月11月保持增长。其中客单价基本保持不变,而付费用户数则持续增长。

总的来看,钟表礼物品类678月连续下降主要因为6月份新用户数量的下降,5月新增用户并未留存,次要原因是客单价持续走低,由新用户消费能力下降导致。对于平台,应采取手段提高复购率;优化新客渠道;调整商品结构,引入更多优质高价商品;对3-6月份销量暴增的“53b36df67ebb7c41585e8d54d6772e08”和“a92930c327948861c015c919a0bcb4a8”,分析其增长原因。该品类的预计下降预计在9月份结束,9,10,11,12将会经历连续上涨。当然,也可能因为商品缺货,整体市场缩水,竞品导致的市场份额缩水,这些都需要其他数据验证。

近三个月销量连续上升的商品品类,为近期热销品类。未发现有此商品类别。

1.3 商品聚类

商品平均销量极低:50%的商品只有1单销量,超过90%的商品总销量不足10单。

通过对商品单价,销量,总销售额,顾客评分四个维度,采用Kmeans聚类,发现聚类数为8时,业务上与统计学上均获得最好结果。

商品类别

标签

单价

销量

评分

数量占比

总销售额贡献占比

2,6

优质商品

中高

0.3%

15%

0,5

高价商品

极高

中高

4.7%

14%

7

好评商品

49.7%

22%

1,3

普通商品

33.3%

41%

4

差评商品

1.2%

6%

对于不同类别的商品可采用不同的运用方式。

优质商品:可以增加流量和口碑,但是该平台优质商品占比极少。优质商品集中分布在电脑配件,花园工具和钟表礼物,11-12月订单更集中,且地点集中在圣保罗和里约热内卢。平台应鼓励优质商品进入。此外,在进行拉新,促销等活动选品以及用户个性化推荐时,可优先考虑优质商品。优质商品在准备库存时可以适当多备货,承担库存风险降低生意损失。

高价商品:可以提升客单价,塑造高端品牌形象。高价集中在钟表礼物,花园工具和健康美妆。消费时间更集中在购物节,消费地点集中在里约和圣保罗。对于高价商品,应在购物节增加折扣活动。

好评商品和普通商品:数量占绝大部分,销量较低,许多长尾商品分布于此。对于持续低销量的商品应下架。可以考虑相关性较高的与优质商品或高价商品捆绑搭售。

差评商品:差评产品集中在零散的小类别下,基本上为小城市的订单,对于差评较多的商家上架审核应收紧;对已经产生差评的商品分析原因并归类,对症下药,商品质量类的原因应及时下架整改,恢复品质后再上架,完善售后服务,及时退货退款,服务态度类的原因则应加强客服的培训管理。

#预处理
p1.price.fillna(p1.price.mean(),inplace=True)
x=p1.iloc[:,[9,11,12,13]]
ss=StandardScaler()
train_ss_x=ss.fit_transform(x)
#建模
kmeans=KMeans(n_clusters=8)
kmeans=kmeans.fit(train_ss_x)
predict_y=kmeans.predict(train_ss_x)
predict_y=pd.DataFrame(predict_y)
#优化聚类数目
from sklearn.metrics import calinski_harabasz_score
score={}
for i in range(2,15):kmeans=KMeans(n_clusters=i)kmeans=kmeans.fit(train_ss_x)predict_y=kmeans.predict(train_ss_x)score[i]=(calinski_harabasz_score(train_ss_x,predict_y))
print(score)
#结果显示
result=pd.concat((x,predict_y),axis=1)
result.columns=['price', 'payment_value', 'order_item_id', 'review_score', 'label']
pd.set_option('display.max_columns',None)
result.groupby('label').agg(['count','mean'])

score {2: 9902.282856409971, 3: 11889.457379261468, 4: 14106.16356628093, 5: 15974.067764543148, 6: 15658.578624002315, 7: 16137.552334016247, 8: 17121.01579964786, 9: 17016.500747612325, 10: 16811.210159198497, 11: 17011.152628387368, 12: 16865.125605994068, 13: 16853.95855459725, 14: 16830.842605670212}

1.4 商品详情

商品详情文字描述和图片描述均十分简陋。50%的商品只有一张图片,75%商品描述不足1千字。过于简陋的商品详情页介绍使顾客对商品参数和卖点不了解不信任,进而减少购买。

平台应组织专门的拍摄团队为商家产品拍摄高清实物图,出一个商品详情描述撰写的规范教程,或开展商品详情页代写服务。对商品详情页填写过于简陋(字数小于100)的商家商品进行提醒。

2.时间

2.1销量-时间变化的描述

销售额/订单数随时间变化基本一致

趋势:呈现明显的快速上升趋势 。2017年:销售额上涨幅度巨大,整体2017年12月销售额相比2017年1月翻了11倍。全年只有两个月销量下降(4月和6月)。2月上涨幅度巨大(67%),这与该公司的业务可能新成立,销量基数小有关,也因为该地区2月份有大节日狂欢节。2018年:销售额呈波动变化,稳定在100000/月附近。

季节性和节日:由环比随时间变化易看出销售额呈季节性波动。2-3月有狂欢节,6月有巴西情人节,11月黑五,12月圣诞节,当月销量都会上升,由于消费者选择集中在节日消费,故与节日相关的前一个月与后一个月的销售额均有下降。

plt.figure(figsize=(20,8))
plt.subplot(221)
order2.groupby("ordermonth").order_item_id.sum().plot(title='月销量-时间')
plt.subplot(222)
order2.groupby("ordermonth").payment_value.sum().plot(title='月总销售额-时间')
plt.subplot(212)
huanbi=order2.groupby("ordermonth").payment_value.sum().reset_index()
huanbi['huanbi']=huanbi.payment_value.diff(1).fillna(0)/huanbi.payment_value
plt.title('销售额环比随时间变化')
plt.plot(huanbi.ordermonth,huanbi.huanbi)
plt.show()

用户每笔订单均价(笔单价)平均为160元,中位数为105,极大值为13664,且方差为219,由笔单价分布箱线图可以看出笔单价分布受极大值影响。大部分用户每笔订单消费集中在50-110元间。用户月均笔单价变化很小,在4%左右,故销售额变化的原因主要来自于消费用户数和订单数的变动。

plt.figure(figsize=(16,12))
plt.subplot(221)
plt.title('月总消费人数-时间')
order2.groupby("ordermonth").customer_unique_id.apply(lambda x:x.drop_duplicates().count()).plot()
plt.subplot(222)
plt.title('笔单价-时间')
order2.groupby('ordermonth').payment_value.mean().plot()
plt.subplot(223)
plt.title('笔单价分布')
sns.boxplot(data=order2.payment_value)
plt.subplot(224)
plt.title('小于150笔单价分布')
sns.boxplot(data=order2.payment_value[order2.payment_value<150])
plt.show()

2.2 销量预测

对销量进行预测,可以指导企业更好的对制定和完成销售目标,准确的销量预测也有助于商家备货,减少库存成本。这里采用两种方法分别进行预测。

2.2.1 霍尔特-温特模型

使用excel自带的霍尔特-温特模型对销量进行预测,该模型考虑了季节性和趋势,操作简单,对于以周为单位的销售额预测具有较高的准确性,取2018/3/1-2018/8/23的销售数据做验证,其平均百分比误差为0.28,为较好水平。

该模型的缺点在于无法考虑节日销量,对于异常值敏感 。现如今,购物节销量井喷已经成为常态,购物节数量也非常多,所以具有局限性。

2.2.2 Facebook-Prophet

该方法将时间序列分解成季节性,趋势和节假日,对三种分别建模求解,对于销量预测的适用性较好。

本例中季节性采用了乘法模型,趋势使用默认的线性,增加了黑五,狂欢节,圣诞和巴西情人节。

from fbprophet import Prophet
df=order2.groupby('orderdate').payment_value.sum().reset_index()
df.columns=['ds','y']
future = m.make_future_dataframe(periods=120) #预测120天
#增加节假日
blackfriday = pd.DataFrame({'holiday': 'blackfriday','ds': pd.to_datetime(['2017-11-24', '2018-11-23']),'lower_window': 0,'upper_window': 7,
})
Carnival = pd.DataFrame({'holiday': 'Carnival','ds': pd.to_datetime(['2017-02-24', '2018-02-09']),'lower_window': 0,'upper_window': 7,
})
valentine=pd.DataFrame({'holiday': 'valentine','ds': pd.to_datetime(['2017-06-12', '2018-06-12']),'lower_window': 0,'upper_window': 0,
})
christmas=pd.DataFrame({'holiday': 'christmas','ds': pd.to_datetime(['2017-12-25', '2018-12-25']),'lower_window':-1,'upper_window': 0,
})
holidays = pd.concat((blackfriday, Carnival,christmas,valentine))
m = Prophet(holidays=holidays,seasonality_mode='multiplicative')#季节性改为乘法
m.fit(df)
forecast = m.predict(future)
fig = m.plot(forecast)
fig = m.plot_components(forecast)

预测结果如下:

拆解到趋势,节假日和季节性:

对模型进行交叉验证:

这里选用前360天作为学习集,从360天后开始,每隔15天划分一次截止日,用截止日之前的数据做截止日后30天的预测,并于实际值比较。

from fbprophet.diagnostics import cross_validation
df_cv = cross_validation(m, initial='360 days', period='15 days', horizon = '30 days')
from fbprophet.diagnostics import performance_metrics
df_p = performance_metrics(df_cv)
print('交叉验证的mape为%4f'%df_p.mape.mean())
from fbprophet.plot import plot_cross_validation_metric
fig = plot_cross_validation_metric(df_cv, metric='mape')

交叉验证的mape为0.411182

交叉检验mape为0.41,考虑到这是以天作为颗粒度的预测,效果也相当不错。

2.2.3 销量的品类地区拆分

通过对数据观察,发现在2018年,各品类,各地区销量占总销量的百分比随时间波动较小,可以用周销售预测值乘以该百分比,得到各品类,各地区的2018年周销售预测值。根据此预测值,与年度销售目标对比,发现差距,提出解决方案,更好的完成年度目标,以及可以根据此预测值更好的备货,减少销量不确定带来的库存损失。

3.用户

3.1 基础数据

用户人均消费产品数,客单价:被极大值拉高,方差和极差都很大。超过75%部分用户仅消费过1件商品。

order2.groupby('customer_unique_id').sum().plot.scatter(x='payment_value',y='order_item_id')

新客与老客:该平台为新客主导的模式:客户忠诚度很低,复购率不足3%,且呈下降趋势。新用户数量呈增长趋势,与最近一次消费用户数增长趋势类似,可见大部分用户均为新用户,且仅购买一次。

plt.figure(figsize=(16,6))
plt.subplot(121)
plt.title('首购用户数-月份')
order2.groupby('customer_unique_id').ordermonth.min().value_counts().plot()
plt.subplot(122)
plt.title('最近一次购买用户数-月份')
order2.groupby('customer_unique_id').ordermonth.max().value_counts().plot()
plt.show()
#复购率
f1=order2.pivot_table(index='customer_unique_id',columns='ordermonth',values='order_id',aggfunc=('count')).applymap(lambda x:1 if x>1 else 0 if x==1 else np.NaN)
plt.title('复购率-时间')
(f1.sum()/f1.count()).plot()

2-8法则:在100000名用户中,前20%用户消费占总用户消费的55%,前50%用户消费占总用户消费的80%。故有必要将消费者按照消费能力划分精细化运营,重点关怀消费能力强的头部用户,接下来对用户进行具体划分。

cum=order2.groupby(by='customer_unique_id').sum().sort_values('payment_value',ascending=False).apply(lambda x:x.cumsum()/x.sum())
cum.payment_value.reset_index().plot()
plt.ylabel('消费金额累加占比')
plt.xlabel('按总消费金额降序排列的用户数')
plt.title('头部用户消费能力评价')
plt.show()

3.3 用户生命周期分层

用户成分占比不合理,不活跃用户高达90%,销量的增长只能依靠新客数量增长。

新客:2017年新用户数增长迅速,到了2018年每月新客稳定在6000人。新客占比逐月下降,最后稳定在10%附近

不活跃用户:大量的新用户转化成不活跃用户,占比逐月增加,最后稳定在90%。

活跃用户与回归用户:极少,总和占比不足3‰。

该平台急需提高复购率,每激活1/10的不活跃用户,其收益就相当于一个月新增的用户贡献。运营应实施更多的激活老用户的活动,如会员充值制度,复购折扣等。

cyc=order2.pivot_table(index='customer_unique_id',columns='ordermonth',values='shipping_limit_date',aggfunc='count').fillna(0)
cyc=cyc.applymap(lambda x:0 if x==0 else 1)
def active_status(data):status=[]for i in range(20):if data[i]==0:if len(status)==0:status.append('unreg')elif status[i-1]=='unreg':status.append('unreg')else:status.append('inactive')elif len(status)==0:status.append('new')elif status[i-1]=='unreg':status.append('new')elif data[i-1]==0:status.append('return')else:status.append('active')return status
c1=cyc.apply(active_status,axis=1,result_type='expand')
c1.columns=cyc.columns
c1=c1.replace('unreg',np.NaN)
c1.apply(lambda x:x.value_counts()).T.fillna(0).plot.area(figsize=(16,6))
c1.apply(lambda x:x.value_counts()).T.fillna(0).apply(lambda x:x/x.sum(),axis=1)

3.4 用户RFM分层

数量上看,一般发展用户和一般挽留用户占比最大,都超过30%,重要发展用户和重要挽留用户占比其次,都超过了10%,其他用户数量占比极少。说明大多数用户的为中低价值用户,有充分的发展和优化空间。

从金额占比来看,重要价值用户和重要保持用户消费占比不足5%。而超过一半的金额都来自重要发展用户和重要挽留用户,说明该公司客户消费频率低,有的还一段时间没来,但是消费金额较高,对于这两类,要通过主动联系客户,给予优惠,提高复购率,并分析客户流失原因,做针对性的运营手段唤回。而剩余35%销售额则由一般发展用户和一般挽留用户构成,应增加免费试用提升用户兴趣。

从RFM 关系图来看,R与F,M基本没有关系,这也是因为大部分用户复购率很低,应采用会员制度等提高复购。而F与M有一定的负相关关系,说明付费金额高的用户多为单次购买,应加强对这部分用户的召回。而高频消费用户总是付费金额低,对于这部分用户应优化关联销售,提高其客单价。

#RFM分层
rfm=order2.pivot_table(index='customer_unique_id',values=['shipping_limit_date','order_id','payment_value'],aggfunc={'shipping_limit_date':max,'order_id':'count','payment_value':sum})
rfm.shipping_limit_date=(rfm.shipping_limit_date.max()-rfm.shipping_limit_date)/datetime.timedelta(days=1)
level=rfm.apply(lambda x:x-x.mean()).applymap(lambda x:'1' if x>0 else '0')
level=level.rename(columns={'order_id':'F','payment_value':'M','shipping_limit_date':'R'})
level['label']=level.R+level.F+level.M
d={"111":'重要价值','011':'重要保持',"101":'重要挽留','001':'重要发展',"110":'一般价值','010':'一般保持',"100":'一般挽留','000':'一般发展'}
for i,j in level.iterrows():j['label']=d[j.label]
rfm=rfm.merge(right=level,left_on='customer_unique_id', right_on='customer_unique_id')
plt.figure(figsize=(16,4))
plt.subplot(1,2,1)
plt.title('RFM用户数量占比')
(rfm.groupby('label').count().R.sort_values(ascending=False)/rfm.order_id.count()).plot.bar()
plt.subplot(1,2,2)
plt.title('RFM消费总金额占比')
(rfm.groupby('label').payment_value.agg('sum')/rfm.payment_value.sum()).sort_values(ascending=False).plot.bar()
plt.show()

matrix=rfm[['shipping_limit_date','order_id','payment_value']]
sns.pairplot(matrix)
plt.show()

4.地区

前十大城市占据近1/3的总销售额,其中排名前二的圣保罗(217w)和里约热内卢(115w)合计贡献超过1/5总销售额和客户数,其中里约热内卢客(174)单价明显高于圣保罗(144),平均客单价为166,说明里约热内卢消费水平高。不同类别商品在城市销量分布较均匀,基本不存在某种商品集中在某城市售卖的情况。

日常运营应重点关注排名前十的城市销售额变化。做活动时,要首先增加圣保罗和里约的广告,流量投入,新品应优先在消费能力更高的里约推广。如果可以,应优先在圣保罗和里约建立总仓备货,减少运输成本,缩减运输时间,提高客户满意度。

5.交付能力

整体交付水平与国际一流水平比较很一般。从下单到发货需要3.2天,快递平均9天,未按时送达订单比例高达8%,且波动较大,优化之处在于快递的时间和购物节按时送达比例。

在订单较多的11,12月和2,3月,快递时间大幅上涨到11-13天,上涨幅度高达30%,超时送达订单比例涨到15-21%。以2018年3月为例,下单到发货平均时间仍是3.2天,但快递时间涨至13天,超时送达订单涨至21%,快递送货时间在3月1日到3月15日间达到近16天,后半月逐渐降低到正常水平。从商品品类来看,在月销售额大于1000的类目中,筛查出十八笔大额订单出现了严重超时的订单,其中6笔是因为备货时间过长,对于这些订单应逐个筛查超时配送的原因,与该笔订单消费者取得联系并致歉。

找出3月份送达时间表现较差的11个品类和17个城市。对于这些品类以及城市,在今后网页上标定的预计送达时间要做宽松处理。对于因为商户备货时间长导致的延迟送达,则要联系商户寻找原因,平台方可以帮助其优化出货。对于因为快递原因导致的延迟送达,可以考虑对该商品增加预售错峰售卖,提前备货,以及采用更快速的快递,以缩短运送时间。

6. 总结和建议

使用powerbi完成的销售报表可以对商品销量,交付能力,商品分类进行系统全面的可视化与分析。python可以完成用户维度分析,包括客生命周期和RFM分层,以及销量预测。

平台受欢迎的品类有健康美妆,钟表礼品,床桌洗浴,运动休闲,电脑配件,花园工具,以圣保罗,里约为主要销售地区,销售旺季为11月,2-3月。运营时应重点关注以上品类,地区和时间。根据分析结果,提出以下建议:

  • 对商品进行聚类,不同类别商品运用不同运用策略。平台加大对优质品牌商户的招商力度和优惠,加大优质商品占比;在购物节折扣,用户个性化推荐,折扣选品均优先考虑优质商品和高价商品;优质合理利用商品搭售,优质,高价商品带动相关的普通商品销量。健全差评判断和管理机制。对于差评商品,督促商家整改后上架。
  • 对销量连续三个月下降/上升的商品品类进行监控与原因分析。
  • 组织专门的拍摄团队为商家产品拍摄高清实物图,出一个商品详情描述撰写的规范教程,或开展商品详情页代写服务。对商品详情页填写过于简陋(字数小于100)的商家商品进行提醒。
  • 平台是新客主导型,老客户忠诚度极低。当务之急是提高复购率。通过RFM对用户分类,主动联系重要发展用户和重要挽留用户,采取会员积分制度或会员卡充值制度,给予复购优惠。
  • 进行2018年第四季度进行拆解到地区和品类的销量预测,根据预测结果制定修改当年销售计划,指导商家备货。
  • 2017年11-2018年3月交付水平很差。应用上述报表,筛选出交付水平差的品类和城市。严格管控备货时间,购物节选用速度较快的快递,对去年同期销量较大的产品进行预包,鼓励商家进行预售,适当延长网站预计送达时间,对延迟交付的订单进行补偿等。
  • 考虑在里约和圣保罗建立总仓,在其他八个top销量城市建立分仓,优化送达时间。

Olist公司零售数据分析相关推荐

  1. 零售数据分析操作篇14:利用内存计算做销售筛选分析

    各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事. 上一讲讲了图表间联动的应用场景,即当我们点击某个图表时,会影响其他图表一起变化,而变化背后的逻辑就是,将来源图 ...

  2. HighNewTech之Job:关于人工智能领域专业的公司求职数据分析(最全)

    High&NewTech之Job:关于人工智能领域专业的公司求职数据分析(最全) 目录 2018年人工智能求职市场统计分析 2019年人工智能求职市场统计分析 2018年人工智能求职市场统计分 ...

  3. 零售数据分析方法学习笔记

    零售数据分析方法学习笔记 零售行业数据指标体系 商品分析 ABC分析 商品价格带分析 品牌效益分析 门店分析 门店分析的指标体系 库存分析 库存分析的指标体系 会员分析 会员分析的指标体系 活动分析 ...

  4. 零售数据分析系统 零售数据分析软件

    帷幄空间数据平台(SDP)以品牌门店数字化需求为核心,基于用户旅程的全域触点管理,深度聚焦门店的空间智能升级与「场域」数据洞察,致力于为品牌门店提供「人-货-场」一体化的空间数据解决方案,为门店全生命 ...

  5. sql能查到数据 dataset对象里面没有值_新零售数据分析报告

    零售项目数据分析报告 一.项目背景 随着零售市场的竞争日趋激烈,在试图满足客户期望时,最优化服务业务流程的能力是最重要的.通道化和管理数据,以争取客户的利益以及创造利润为目标,对生存至关重要. 理想情 ...

  6. 基于Python的超市零售数据分析

    分析框架: 一.明确需求和目的 对一家全球超市的四年(2012-2015)销售数据进行"人.货.场"分析,并给出提升销量的针对性建议. 场:整体运营情况分析,包括销售额.销量.利润 ...

  7. 基于RFM模型的电商零售数据分析

    数据集介绍 E-Commerce Data Actual transactions from UK retailer 数据集地址(kaggle) https://download.csdn.net/d ...

  8. 超市零售数据分析-大数据项目

    个人博客地址 [实验数据] 本实验所用数据为国内某超市从2012年8月1日到2013年8月1日共一年的交易数据,包含了812,847条交易.2,893,385件单个商品以及20,154名顾客. 该数据 ...

  9. 电商平台零售数据分析

    本次目标主要是利用RFM模型对用户进行分类.通过对比分析不同用户群体在时间.地区等维度下的交易量.交易金额等,总结分析结果并提出优化建议. R(Recently):最近一次的消费时间 F(Freque ...

最新文章

  1. python基础===八大排序算法的 Python 实现
  2. 【Java】什么是CAS、synchronized升级概述、偏向锁/轻量级锁详解 - 笔记
  3. java 拦截器ajax_(转)拦截器深入实践 - JAVA XML JAVASCRIPT AJAX CSS - BlogJava
  4. 信息学奥赛一本通 1319:【例6.1】排队接水 | 洛谷 P1223 排队接水
  5. 读懂现金贷产品的客群风险标签维度
  6. HDU 5067 Harry And Dig Machine:TSP(旅行商)
  7. mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解
  8. 李飞飞离职Google重返斯坦福,CMU计算机学院院长Andrew Moore接任
  9. imp-00058: 遇到 oracle 错误 12560,MP-00058: 遇到 ORACLE 错
  10. 【Luogu1631】序列合并(优先队列)
  11. Windows Phone开发之路(6) XAML基础(下)
  12. micropython性能低下_MicroPython支持的开发板:高性能、低成本创客首选
  13. 交互式电子杂志_XFlip Enterprise(电子杂志相册制作器)
  14. win7主题破解_VM 15.5虚拟机安装win7系统的流程
  15. win11系统右键菜单改回以往风格(亲测有效)
  16. 汤晓鸥教授:人工智能让天下没有难吹的牛!
  17. oracle10G 异构方式迁移表空间之一
  18. win10 查看已保存无线密码的方法
  19. VS2019生成Steup文件在其他处理器运行
  20. 正则表达式及re模块

热门文章

  1. S7-PLCSIM仿真操作步骤
  2. 接口本地能跑通,服务器连接时报错:HOUR_OF_DAY: 0 -> 1
  3. python8-罗马数字转换
  4. Kindle读书笔记——第一个月2017.01.22-02.21
  5. matlab 2014 newff,matlab newff使用
  6. 什么是众包测试,众包测试平台是什么?
  7. InformaticaDAC
  8. 音视频常见概念:软解硬解、IBP帧、GOP、YUV编码
  9. tomcat错误日志分析
  10. 学好java设计模式,编程不迷茫--java学习笔记