本文是對(duì)唯品會(huì)特賣商品數(shù)據(jù)分析案例的一個(gè)總結(jié)夫晌,主要是根據(jù)商品促銷活動(dòng)的銷售數(shù)據(jù)挥转,分析商品售賣情況电媳,使用ABC分析法進(jìn)行商品結(jié)構(gòu)優(yōu)化碍脏。
ABC分析法
簡(jiǎn)述:
ABC分類法又稱帕雷托分析法,也叫主次因素分析法卖擅,是項(xiàng)目管理中常用的一種方法鸣奔。它是根據(jù)事物在技術(shù)或經(jīng)濟(jì)方面的主要特征,進(jìn)行分類排隊(duì)惩阶,分清重點(diǎn)和一般挎狸,從而有區(qū)別地確定管理方式的一種分析方法。由于它把被分析的對(duì)象分成A断楷、B锨匆、C三類,所以又稱為ABC分析法。
在ABC分析法的分析圖中恐锣,有兩個(gè)縱坐標(biāo)茅主,一個(gè)橫坐標(biāo),幾個(gè)長(zhǎng)方形土榴,一條曲線诀姚,左邊縱坐標(biāo)表示頻數(shù),右邊縱坐標(biāo)表示頻率玷禽,以百分?jǐn)?shù)表示赫段。橫坐標(biāo)表示影響質(zhì)量的各項(xiàng)因素,按影響大小從左向右排列矢赁,曲線表示各種影響因素大小的累計(jì)百分?jǐn)?shù)糯笙。一般地,是將曲線的累計(jì)頻率分為三級(jí)撩银,與之相對(duì)應(yīng)的因素分為三類:
- A類因素:發(fā)生累計(jì)頻率為0%~80%给涕,是主要影響因素,需要嚴(yán)格控制额获、準(zhǔn)確記錄稠炬,。
- B類因素:發(fā)生累計(jì)頻率為80%~90%咪啡,是次要影響因素首启,需要稍松空值、良好記錄撤摸。
- C類因素:發(fā)生累計(jì)頻率為90%~100%毅桃,是一般影響因素,需要簡(jiǎn)單控制准夷、最少記錄钥飞。
電商中的ABC分析法
在電商運(yùn)營(yíng)活動(dòng)中,商品ABC分級(jí)主要指標(biāo)有“支付轉(zhuǎn)化率”“商品庫(kù)存”衫嵌,根據(jù)此區(qū)分商品屬于哪一類读宙。商品ABC分級(jí)法需將分析顆粒精細(xì)到每個(gè)款式,相對(duì)復(fù)雜楔绞,所以只有在店鋪進(jìn)行大型促銷活動(dòng)才會(huì)用到结闸,也因?yàn)榇藭r(shí)數(shù)據(jù)量足夠大,使用ABC分析法才更有意義酒朵。
A級(jí)商品:
- 擁有高庫(kù)存桦锄、高轉(zhuǎn)化率的商品;
- 因?yàn)檫@類商品既暢銷蔫耽,又有較深的庫(kù)存作為保障结耀,因此可以作為活動(dòng)中的主推商品。需要注意的是,在挑選A類商品時(shí)图甜,還應(yīng)注意此款商品的訪客不能太低碍粥,則,沒有經(jīng)過“充分"流量測(cè)試的商品黑毅,其高轉(zhuǎn)化率可能是"偽高轉(zhuǎn)化率”嚼摩。
B級(jí)商品:
- 經(jīng)過流量測(cè)試的中等轉(zhuǎn)化率商品;
- 此類商品對(duì)訪客有一定吸引力博肋,但不如A類商品的轉(zhuǎn)化率低斋,可以繼續(xù)保持當(dāng)前的銷售定為蜂厅。但需要注意庫(kù)存告急匪凡,以及錯(cuò)誤占用了A類商品陳列位置(B類商品陳列位置需要A類之后)。
C級(jí)商品:
- 轉(zhuǎn)化率低的商品掘猿;
- C類商品應(yīng)放置于店鋪陳列底端病游,基本屬于被放棄的一類商品。但是稠通,如果C類商品中高庫(kù)存的衬衬,可嘗試降價(jià),更換營(yíng)銷方式等辦法改橘。
一滋尉、項(xiàng)目背景
唯品會(huì)專門做特賣的網(wǎng)站,在特定的時(shí)間段里飞主,以優(yōu)惠的價(jià)格出售指定商品狮惜。
二、分析目標(biāo)
評(píng)估每次促銷活動(dòng)的結(jié)果碌识,根據(jù)轉(zhuǎn)換率碾篡、售賣比指標(biāo)構(gòu)建ABC模型優(yōu)化商品結(jié)構(gòu),壓縮總庫(kù)存筏餐,使庫(kù)存結(jié)構(gòu)合理化節(jié)約管理力量开泽。
三、分析過程
- 準(zhǔn)備工作(導(dǎo)入數(shù)據(jù)及處理觀察)魁瞪;
- 總體運(yùn)營(yíng)指標(biāo)分析 —— 計(jì)算商品銷售額穆律、銷量、客單價(jià)导俘、UV等指數(shù)進(jìn)行同比众旗、環(huán)比分析;
- 從價(jià)格區(qū)間分析商品 —— 將商品按價(jià)格分為多個(gè)區(qū)間趟畏,對(duì)每個(gè)區(qū)間的商品進(jìn)行統(tǒng)計(jì)分析贡歧,針對(duì)指定區(qū)間計(jì)算轉(zhuǎn)換率、售賣比,分級(jí)ABC類商品優(yōu)化商品結(jié)構(gòu)利朵;
- 從折扣區(qū)間分析商品 —— 將商品按折扣區(qū)間分為多個(gè)區(qū)間律想,對(duì)每個(gè)區(qū)間的商品進(jìn)行統(tǒng)計(jì)分析,針對(duì)指定區(qū)間計(jì)算轉(zhuǎn)換率绍弟、售賣比技即,分級(jí)ABC類商品優(yōu)化商品結(jié)構(gòu)。
1.準(zhǔn)備工作
(1) 導(dǎo)入模塊
import pandas as pd
pd.set_option('max_columns', 25)
# 保留4位小數(shù)
pd.set_option('display.float_format',lambda x : '%.4f' % x)
import numpy as np
import warnings
warnings.filterwarnings('ignore')
import sqlalchemy
import seaborn as sns
import matplotlib.pyplot as plt
(2) 導(dǎo)入數(shù)據(jù)
數(shù)據(jù)文件存放在sql數(shù)據(jù)庫(kù)樟遣,使用sqlalchemy模塊導(dǎo)入
# 商品信息表
sql = "select * from sales_info1"
df1 = pd.read_sql(sql,engine)
# 商品熱度表
sql = "select * from sales_info2"
df2 = pd.read_sql(sql,engine)
# 用戶訂單表
sql = 'select * from sales_info3'
df3 = pd.read_sql(sql,engine)
(3)處理表格得到商品信息表
- 對(duì)用戶訂單表中的商品進(jìn)行聚合得到表1
- 合并商品信息表和熱度表得到表2
- 合并表1和表2的到總體商品銷售明細(xì)
# 對(duì)用戶訂單表中的商品進(jìn)行聚合
product_sales = df3.groupby('商品名').agg({'用戶id': pd.Series.nunique,
'購(gòu)買金額':'sum',
'購(gòu)買數(shù)量':'sum',
'購(gòu)買單價(jià)':'mean',
'退貨件數(shù)':'sum',
'退貨金額':'sum'}).reset_index().rename(columns = {'用戶id':'商品購(gòu)買用戶數(shù)', '購(gòu)買數(shù)量':'商品銷售數(shù)量','購(gòu)買金額':'商品銷售金額','購(gòu)買單價(jià)':'商品銷售單價(jià)','是否退貨':'商品退貨數(shù)量','退貨金額':'商品退貨金額'})
# 合并商品信息表和熱度表
dt_product = pd.merge(df1,df2,how = 'left',on='商品名')
# 合并
df_product_sales = pd.merge(product_sales,dt_product,on = '商品名')
# 商品總體描述統(tǒng)計(jì)
df_product_sales.describe()
- 共有80件商品而叼,每件商品平均銷售額在46839元,平均單價(jià)為317元豹悬,平均銷量為150件退貨數(shù)為45件葵陵,退貨率較高達(dá)到1/3左右,平均折扣率在4折左右瞻佛。
2.總體運(yùn)營(yíng)指標(biāo)分析
- 分別計(jì)算商品GMV(銷售額)脱篙、實(shí)際銷售額(銷售額-退款金額)、銷量伤柄、客單價(jià)绊困、UV(商品頁面獨(dú)立訪問數(shù))、轉(zhuǎn)化率(客戶數(shù)/UV)适刀、折扣率(GMV/吊牌總額)秤朗、備貨值(吊牌價(jià)*庫(kù)存數(shù))、售賣比(GMV/備貨值)笔喉、收藏?cái)?shù)取视、加入購(gòu)物車數(shù)、SKU(最小品類單元)然遏、SPU(款號(hào))贫途、退貨量、退款總額
- 輸入去年同期指標(biāo)值
- 環(huán)比分析
sales_state = pd.concat([sales_state_dangqi,sales_state_tongqi], axis = 0).T.reset_index().rename(columns = {"index":"指標(biāo)",1:"今年雙11",0:"去年雙11"})
sales_state["同比"] = (sales_state["今年雙11"] - sales_state["去年雙11"])/sales_state["去年雙11"]
- 總體運(yùn)營(yíng)情況上丢早,今年總銷售額為3747167比去年同比上漲65%,銷量同比上漲57%秧倾;
- 大多數(shù)指標(biāo)均有上漲怨酝,平均漲幅40%左右,拋開折扣率的下降那先,客單價(jià)下降了20%左右农猬。
3.從價(jià)格區(qū)間優(yōu)化商品結(jié)構(gòu)
3.1 價(jià)格區(qū)間劃分
- 統(tǒng)計(jì)全部商品銷售單價(jià)
- 劃分價(jià)格區(qū)間,進(jìn)行銷售統(tǒng)計(jì)
# 商品單價(jià)統(tǒng)計(jì)
df_product_sales["商品銷售單價(jià)"].describe()
# 劃分0-200,201-400,400+ 商品區(qū)間
listbins = [0, 200, 400, 1000000]
listlabel = ["200元及以下", "201-400元", "400元以上"]
# cut售淡,左開右閉,include_lowest:包含左端點(diǎn)
df_product_sales["價(jià)格分組"] = pd.cut(df_product_sales["商品銷售單價(jià)"], bins = listbins, labels= listlabel, include_lowest=True)
# 進(jìn)行統(tǒng)計(jì)
dt_product_sales_info = df_product_sales.groupby('價(jià)格分組').agg({'貨值':'sum',
'商品銷售金額':'sum',
'商品銷售數(shù)量':'sum',
'UV數(shù)':'sum',
'商品購(gòu)買用戶數(shù)':'sum',
'收藏?cái)?shù)':'sum',
'加購(gòu)物車數(shù)':'sum'}).reset_index()
# 增加占比及轉(zhuǎn)化率
dt_product_sales_info['貨值占比'] = dt_product_sales_info['貨值'].div(dt_product_sales_info['貨值'].sum())
dt_product_sales_info['銷售占比'] = dt_product_sales_info['商品銷售金額'].div(dt_product_sales_info['商品銷售金額'].sum())
dt_product_sales_info['售賣比'] = dt_product_sales_info.apply(lambda x:x[2]/x[1],axis = 1)
dt_product_sales_info['客單價(jià)'] = dt_product_sales_info.apply(lambda x:x[2]/x[5],axis = 1)
dt_product_sales_info['轉(zhuǎn)換率'] = dt_product_sales_info.apply(lambda x:x[5]/x[4],axis = 1)
3.2 區(qū)間選擇
- 由于個(gè)價(jià)格區(qū)間商品銷售表現(xiàn)都相近斤葱,轉(zhuǎn)化率大致相同慷垮,400+商品的銷售金額最高,但是銷量最低揍堕,貨值最高料身,為避免貨物積壓,就這一區(qū)間進(jìn)行商品結(jié)構(gòu)優(yōu)化衩茸。
product_400 = df_product_sales.query("價(jià)格分組 == '400元以上'")
product_400['轉(zhuǎn)換率'] = product_400['商品購(gòu)買用戶數(shù)'] / product_400['UV數(shù)']
product_400['備貨值'] = product_400['吊牌價(jià)'] * product_400['庫(kù)存量']
product_400['售賣比'] = product_400['商品銷售金額'] / product_400['備貨值']
product_400 = product_400[['商品名','商品銷售金額','商品銷售數(shù)量','商品銷售單價(jià)','商品購(gòu)買用戶數(shù)','UV數(shù)','轉(zhuǎn)換率','庫(kù)存量','備貨值','售賣比']].reset_index(drop = True)
# 劃分A芹血、B、C
def label(x):
if x[0] > 0.007:
return "A"
elif x[0] <= 0.007 and x[1]>0.3:
return "B"
else:
return "C"
product_400['label'] = product_400[["轉(zhuǎn)換率","售賣比"]].apply(lambda x:label(x),axis = 1)
product_400['color'] = product_400[["轉(zhuǎn)換率","售賣比"]].apply(lambda x:color(x),axis = 1)
- A囊蓝、B饿悬、C類產(chǎn)品分別有12,10,1件
3.3 優(yōu)化方案
- A:轉(zhuǎn)化率大于0.7%的商品,暫時(shí)保留慎颗,用于下次促銷活動(dòng)乡恕;
- B:轉(zhuǎn)化率小于等于0.7%的商品言询,但是售賣比大于30%的商品予以保留參加下次促銷活動(dòng)俯萎,
- C:轉(zhuǎn)化率小于0.7%的商品,并且售賣比小于36%的商品進(jìn)行清倉(cāng)處理运杭。
4.從折扣區(qū)間優(yōu)化商品結(jié)構(gòu)
4.1 折扣區(qū)間劃分
將產(chǎn)品折扣率劃分'0.15-0.2','0.2-0.25','0.25-0.3','0.3-0.35','0.35-0.4','0.4-0.45','0.45-0.5','0.5-0.55','0.55-0.6','0.6-0.65','0.65-0.7','0.7+'多個(gè)區(qū)間進(jìn)行分析統(tǒng)計(jì)
listbins = [0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 1]
listlabels = ['0.15-0.2','0.2-0.25','0.25-0.3','0.3-0.35','0.35-0.4','0.4-0.45','0.45-0.5','0.5-0.55','0.55-0.6','0.6-0.65','0.65-0.7','0.7+']
df_product_sales['折扣區(qū)間'] = pd.cut(df_product_sales['折扣率'],bins = listbins,labels = listlabels,include_lowest=True)
df_product_sales
4.2 指標(biāo)計(jì)算
計(jì)算每個(gè)折扣區(qū)間的貨值夫啊、銷售額、銷售數(shù)量辆憔、UV數(shù)撇眯、轉(zhuǎn)化率、貨值占比等指標(biāo)
pd.set_option('display.float_format',lambda x : '%.6f' % x)
dt_product_discount_info = df_product_sales.groupby('折扣區(qū)間').agg({'貨值':'sum',
'商品銷售金額':'sum',
'商品銷售數(shù)量':'sum',
'UV數(shù)':'sum',
'收藏?cái)?shù)':'sum',
'加購(gòu)物車數(shù)':'sum',
'商品購(gòu)買用戶數(shù)':'sum'
}).reset_index()
dt_product_discount_info['貨值占比'] = dt_product_discount_info['貨值'] / dt_product_discount_info['貨值'].sum()
dt_product_discount_info['銷售占比'] = dt_product_discount_info['商品銷售金額'] / dt_product_discount_info['商品銷售金額'].sum()
dt_product_discount_info['客單價(jià)'] = dt_product_discount_info['商品銷售金額'] / dt_product_discount_info['商品購(gòu)買用戶數(shù)'].sum()
dt_product_discount_info['轉(zhuǎn)化率'] = dt_product_discount_info['商品購(gòu)買用戶數(shù)'] / dt_product_discount_info['UV數(shù)'].sum()
4.3 區(qū)間選擇
折扣率在0.35-0.4之間的產(chǎn)品銷售額最高虱咧,針對(duì)以上區(qū)間進(jìn)行具體分析優(yōu)化產(chǎn)品
def label2(x):
if x[0] > 0.365 and x[1]>0.007:
return "A"
else:
return "C"
product_354['label'] = product_354[['售賣比','轉(zhuǎn)換率']].apply(lambda x:label2(x),axis = 1)
- A類產(chǎn)品有5件熊榛、C類產(chǎn)品有20件,對(duì)A類產(chǎn)品保留繼續(xù)下次促銷腕巡,清倉(cāng)處理C類產(chǎn)品玄坦。
4.4 優(yōu)化方案
- 在折扣區(qū)間商品銷量均較好,只對(duì)商品進(jìn)行了A绘沉、C類劃分煎楣。
- 轉(zhuǎn)化率大于0.7%,售賣比大于36.5%的商品劃分為A類商品车伞,保留用于下次促銷活動(dòng)择懂。
- 其余商品劃分為C類商品,用于清倉(cāng)處理另玖。
四困曙、總結(jié)
- 1.從整體運(yùn)營(yíng)情況來看表伦,今年促銷活動(dòng)銷售額為3747167元,實(shí)際銷售額為2607587元慷丽,同比去年增漲65%以上绑榴,銷量為12017件同比增漲57%。
- 2.根據(jù)ABC分析法
- 從價(jià)格區(qū)間優(yōu)化結(jié)果來看盈魁,400元以上價(jià)位產(chǎn)品一共23件翔怎,其中A類產(chǎn)品12件、B類1件杨耙、C類10件赤套,下次活動(dòng)可以對(duì)A類產(chǎn)品采取宣傳措施帶動(dòng)其他產(chǎn)品銷量,C類產(chǎn)品進(jìn)行清倉(cāng)處理為下次活動(dòng)節(jié)省空間資源珊膜。
- 在折扣區(qū)間方面容握,整體折扣率在0.38左右,銷售額貢獻(xiàn)最高的為0.35-0.4之間的產(chǎn)品车柠,在這一類產(chǎn)品中剔氏,A類5件,C類有20件竹祷,我們選擇保留A類產(chǎn)品谈跛,清倉(cāng)處理C類產(chǎn)品。