1涝焙、業(yè)務(wù)背景
唯品會是一個專門做特賣的網(wǎng)站卑笨,隨著唯品會在電商領(lǐng)域的不斷發(fā)展,唯品會貨源中新品和專供品的占比不斷提升仑撞,新品首發(fā)赤兴、定制包銷、自有品牌均成為唯品會零售的可持續(xù)貨源派草。
2搀缠、業(yè)務(wù)需求
在每次特賣活動中,我們可分析活動運營情況來挖掘?qū)Υ黉N活動貢獻度高的商品近迁。其中,銷售額簸州、售賣比鉴竭、UV、轉(zhuǎn)化率等指標(biāo)是考量業(yè)務(wù)成績的幾個重要指標(biāo)岸浑。本項目的目的是建立促銷活動的運營情況評估指標(biāo)體系搏存,找到最優(yōu)的特賣商品結(jié)構(gòu),從而更好地賣出商品矢洲。
3璧眠、業(yè)務(wù)分析指標(biāo)
- GMV:銷售額,即到手價
- 實銷:GMV-退貨金額
- 銷量:累計銷量(含退貨)
- 客單價:GMV/客戶數(shù),客單價與毛利率有關(guān)责静,客單價越高袁滥,毛利率越高
- UV:商品所在頁面的獨立訪問數(shù)
- 轉(zhuǎn)化率:客戶數(shù)/UV
- 折扣率:GMV/吊牌總額(吊牌價* 銷量)
- 備貨值:吊牌價* 庫存量
- 售賣比:即售罄率,GMV/備貨值
- 收藏數(shù):收藏某款商品的用戶數(shù)量
- 加購數(shù):加購物車人數(shù)
- SKU數(shù):促銷活動中的SKU計數(shù)(一般指貨號)
- SPU計數(shù):促銷活動中的SPU計數(shù)(一般指貨號)
- 拒退量:拒收和退貨的總數(shù)量
-
拒退額:拒收和退貨的總金額
其中灾螃,銷售額题翻、售賣比、UV腰鬼、轉(zhuǎn)化率為主要關(guān)注指標(biāo)嵌赠,其余為輔助指標(biāo)。
具體的業(yè)務(wù)分析框架如下:
電商促銷活動分析.png
4熄赡、數(shù)據(jù)分析
4.1 數(shù)據(jù)源
sales_info1:商品信息表姜挺,數(shù)據(jù)結(jié)構(gòu)如下:
sales_info2:商品熱度信息表,數(shù)據(jù)結(jié)構(gòu)如下:
sales_info3:用戶銷售明細表彼硫,數(shù)據(jù)結(jié)構(gòu)如下:
以上數(shù)據(jù)來源MySQL數(shù)據(jù)庫炊豪,通過Python讀取。
4.2 數(shù)據(jù)匯總
- 統(tǒng)計每個商品的銷售情況
#dt3為用戶銷售明細數(shù)據(jù)
product_sales = dt3.groupby('商品名').agg({'購買數(shù)量':'sum',
'購買金額':'sum',
'退貨件數(shù)':'sum',
'退貨金額':'sum',
'購買單價':'mean',
'用戶id':pd.Series.nunique}).reset_index()
product_sales.rename(columns={
'購買數(shù)量':'商品銷售數(shù)量',
'購買金額':'商品銷售金額',
'退貨件數(shù)':'商品退貨數(shù)量',
'退貨金額':'商品退貨金額',
'購買單價':'商品銷售單價',
'用戶id':'商品購買用戶數(shù)量'
},inplace=True)
product_sales.head()
得到每個商品的銷售情況匯總數(shù)據(jù)
- 合并商品信息表乌助、熱度信息表和商品銷售匯總表
#dt1為商品信息表溜在、dt2為熱度信息表
dt_product = dt1.merge(dt2,how='left',on='商品名')
dt_product_sales = dt_product.merge(product_sales,how='left',on='商品名')
得到最終的分析數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)如下:
4.2 計算業(yè)務(wù)分析指標(biāo)
- 計算單個指標(biāo)
#1他托、GMV掖肋,銷售額
gmv = dt_product_sales['商品銷售金額'].sum()
#2、實銷:GMV-退貨金額
return_money = gmv - dt_product_sales['商品退貨金額'].sum()
#3赏参、銷量:累計銷量(含退貨)
all_sales = dt_product_sales['商品銷售數(shù)量'].sum()
#4志笼、客單價:GMV/客戶數(shù)
custom_price = gmv/dt_product_sales['商品購買用戶數(shù)量'].sum()
#5、UV:商品所在頁面的獨立訪問數(shù)
uv_cons = dt_product_sales['UV數(shù)'].sum()
#6把篓、轉(zhuǎn)化率:客戶數(shù)/UV
uv_rate = dt_product_sales['商品購買用戶數(shù)量'].sum()/uv_cons
#7纫溃、折扣率:GMV/吊牌總額(吊牌價* 銷量)
tag_sales = (dt_product_sales['吊牌價'] * dt_product_sales['商品銷售數(shù)量']).sum()
discount_rate = gmv/tag_sales
#8、備貨值:吊牌價* 庫存量
goods_value = (dt_product_sales['吊牌價'] * dt_product_sales['庫存量']).sum()
#9韧掩、售賣比:即售罄率紊浩,GMV/備貨值
sales_rate = gmv/goods_value
#10、收藏數(shù):收藏某款商品的用戶數(shù)量
collect_cons = dt_product_sales['收藏數(shù)'].sum()
#11疗锐、加購數(shù):加購物車人數(shù)
add_shop_cons = dt_product_sales['加購物車數(shù)'].sum()
#12坊谁、SKU數(shù):促銷活動中的SKU計數(shù)(一般指貨號)
sku_cons = dt_product_sales['SKU'].sum()
#13、SPU計數(shù):促銷活動中的SPU計數(shù)(一般指貨號)
spu_cons = len(dt_product_sales['商品名'].unique())
#14滑臊、拒退量:拒收和退貨的總數(shù)量
reject_cons = dt_product_sales['商品退貨數(shù)量'].sum()
#15口芍、拒退額:拒收和退貨的總金額
reject_money = dt_product_sales['商品退貨金額'].sum()
- 合并分析指標(biāo)
#當(dāng)期數(shù)據(jù)
sales_state_dangqi = pd.DataFrame(
{"GMV":[gmv,],"實際銷售額":[return_money,],"銷量":[all_sales,],"客單價":[custom_price,],
"UV數(shù)":[uv_cons,],"UV轉(zhuǎn)化率":[uv_rate,],"折扣率":[discount_rate,],"貨值":[goods_value,],
"售賣比":[sales_rate,],"收藏數(shù)":[collect_cons,],"加購數(shù)":[add_shop_cons,],"sku數(shù)":[sku_cons,],
"spu數(shù)":[spu_cons,],"拒退量":[reject_cons,],"拒退額":[reject_money,],},
)
# 去年的數(shù)據(jù)是已經(jīng)統(tǒng)計好了的,不需要計算
sales_state_tongqi = pd.DataFrame(
{"GMV":[2261093,],"實際銷售額":[1464936.517,],"銷量":[7654,],"客單價":[609.34567,],
"UV數(shù)":[904694,],"UV轉(zhuǎn)化率":[0.0053366,],"折扣率":[0.46,],"貨值":[12610930,],
"售賣比":[0.1161,],"收藏數(shù)":[4263,],"加購數(shù)":[15838,],"sku數(shù)":[82,],
"spu數(shù)":[67,],"拒退量":[2000,],"拒退額":[651188.57,],},
)
#當(dāng)期數(shù)據(jù)修改列名
sales_state_dangqi_s = pd.DataFrame(sales_state_dangqi.stack()).reset_index().iloc[:,[1,2]]
sales_state_dangqi_s.columns = ['指標(biāo)','今年雙十一']
#去年數(shù)據(jù)修改列名
sales_state_tongqi_s = pd.DataFrame(sales_state_tongqi.stack()).reset_index().iloc[:,[1,2]]
sales_state_tongqi_s.columns = ['指標(biāo)','去年雙十一']
sales_state = pd.merge(sales_state_dangqi_s,sales_state_tongqi_s,on='指標(biāo)')
#計算同比指標(biāo)
sales_state['同比'] = (sales_state['今年雙十一'] - sales_state['去年雙十一'])/sales_state['去年雙十一']
如上所示雇卷,客單價同比下降了鬓椭,客單價與毛利率有關(guān)颠猴,需要追蹤客單價下降的原因;客單價與GMV小染、UV數(shù)和UV轉(zhuǎn)化率有關(guān)翘瓮, 這三個指標(biāo)同比都上升了,猜測客單價下降的原因是【高質(zhì)量客戶流失氧映,買低價的客戶較多春畔;促銷價格過低】。此外岛都,折扣率同比也下降了律姨,做特賣折扣是一個運營的關(guān)鍵點,通過比較不同折扣力度的運營效果臼疫,為折扣力度的設(shè)置提供數(shù)據(jù)參考择份。
4.3 根據(jù)價格區(qū)間來確定合適的促銷商品結(jié)構(gòu)
這部分的主要工作:根據(jù)價格區(qū)間劃分?jǐn)?shù)據(jù),分析價格相對高的商品此次促銷情況烫堤,以此來優(yōu)化后期的促銷結(jié)構(gòu)荣赶。
- 根據(jù)價格劃分?jǐn)?shù)據(jù)
#劃分價格區(qū)間
listBins = [0, 200, 400, 100000]
#設(shè)備切分后對應(yīng)標(biāo)簽
listLabels = ['1_200', '200_400', '400及以上']
#進行數(shù)據(jù)切分
dt_product_sales['價格分組'] = pd.cut(dt_product_sales['售賣價'], bins=listBins, labels=listLabels, include_lowest=True)
- 計算每個價格區(qū)間的業(yè)務(wù)分析指標(biāo)
這里用到的業(yè)務(wù)分析指標(biāo)如下:- 貨值
- 貨值占比
- 銷售額
- 售賣比
- 銷售占比
- 銷量
- 客單價
- UV
- 收藏數(shù)
- 加購數(shù)
- 轉(zhuǎn)化率
- 用戶數(shù)
# 貨值 銷售額 銷量 UV 用戶數(shù) 收藏數(shù) 加購數(shù)
dt_product_sales_info = dt_product_sales.groupby(['價格分組']).agg({
'貨值':'sum',
'商品銷售金額':'sum',
'商品銷售數(shù)量':'sum',
'UV數(shù)':'sum',
'商品購買用戶數(shù)量':'sum',
'收藏數(shù)':'sum',
'加購物車數(shù)':'sum'
}).reset_index()
# 貨值占比 售賣比 銷售占比 客單價 轉(zhuǎn)化率
dt_product_sales_info['貨值占比'] = dt_product_sales_info['貨值']/dt_product_sales_info['貨值'].sum()
dt_product_sales_info['售賣比'] = dt_product_sales_info['商品銷售金額']/dt_product_sales_info['貨值']
dt_product_sales_info['銷售占比'] = dt_product_sales_info['商品銷售金額']/dt_product_sales_info['商品銷售金額'].sum()
dt_product_sales_info['客單價'] = dt_product_sales_info['商品銷售金額']/dt_product_sales_info['商品購買用戶數(shù)量']
dt_product_sales_info['轉(zhuǎn)化率'] = dt_product_sales_info['商品購買用戶數(shù)量'] /dt_product_sales_info['UV數(shù)']
得到三個價格區(qū)間各自的業(yè)務(wù)指標(biāo)值
如上圖所示,價格在400以上的商品鸽斟,銷售額拔创、售賣比均大于另外兩個價格區(qū)間的商品,轉(zhuǎn)化率與另外兩個價格區(qū)間的商品勢均力敵富蓄。雖然是促銷活動剩燥,不一定只是看價格低這個因素,此處高價的商品也很值得分析立倍,因此選取價格在400以上的商品單獨分析灭红。
- 選取高價商品分析
#取出價格400及以上的數(shù)據(jù)
product_400 = dt_product_sales.loc[dt_product_sales['價格分組'] == '400及以上']
#計算轉(zhuǎn)換率 售賣比
#轉(zhuǎn)換率=客戶數(shù)/UV
product_400['轉(zhuǎn)換率'] = product_400['商品購買用戶數(shù)量']/product_400['UV數(shù)']
#備貨值=吊牌價* 庫存量
product_400['備貨值'] = product_400['吊牌價'] * product_400['庫存量']
#售賣比:售罄率,GMV/備貨值
product_400['售賣比'] = product_400['商品銷售金額']/product_400['貨值']
得到高價商品的運營情況結(jié)果
根據(jù)上圖所示口注,通過比較轉(zhuǎn)換率和售賣比這兩個指標(biāo)变擒,可以給出下面的優(yōu)化方案:
- 轉(zhuǎn)換率大于0.8%的商品(即A006、B006寝志、C010娇斑、E007、F001)材部,保留悠菜,用于下次促銷活動;
- 轉(zhuǎn)換率小于0.8%但是售賣比大于30%的商品(即G001败富、G010、H006)摩窃,還是可以作為下次促銷活動的備選商品兽叮;
- 轉(zhuǎn)換率小于0.8%且售賣比不足30%的商品芬骄,給予清倉處理。
4.4 根據(jù)折扣區(qū)間來確定合適的促銷商品結(jié)構(gòu)
這部分的主要工作:根據(jù)折扣區(qū)間劃分?jǐn)?shù)據(jù)鹦聪,分析折扣貢獻度較高的商品此次促銷情況账阻,以此來優(yōu)化后期的促銷結(jié)構(gòu)。
- 根據(jù)折扣劃分?jǐn)?shù)據(jù)
#劃分折扣區(qū)間
#設(shè)置切分區(qū)域
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]
#設(shè)備切分后的標(biāo)簽
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_1']
#劃分?jǐn)?shù)據(jù)
dt_product_sales['折扣區(qū)間'] = pd.cut(dt_product_sales['折扣率'],bins=listBins,labels=listLabels,include_lowest=True)
- 計算每個折扣區(qū)間的業(yè)務(wù)分析指標(biāo)
這里用到的業(yè)務(wù)分析指標(biāo)如下:- 銷售額
- 銷量
- 客單價
- 客戶數(shù)
- UV
- 轉(zhuǎn)換率
- 庫存
- 貨值
- 售賣比
- 收藏數(shù)
- 加購數(shù)
- 貨值占比
- 銷售占比
# 貨值 銷售額 銷量 UV 客戶數(shù) 收藏數(shù) 加購數(shù)
dt_product_discount_info = dt_product_sales.groupby(['折扣區(qū)間']).agg({
'貨值':'sum',
'商品銷售金額':'sum',
'商品銷售數(shù)量':'sum',
'UV數(shù)':'sum',
'商品購買用戶數(shù)量':'sum',
'收藏數(shù)':'sum',
'加購物車數(shù)':'sum'
}).reset_index()
#客單價 轉(zhuǎn)化率 貨值占比 銷售占比
dt_product_discount_info['客單價'] = dt_product_discount_info['商品銷售金額']/dt_product_discount_info['商品購買用戶數(shù)量']
dt_product_discount_info['轉(zhuǎn)化率'] = dt_product_discount_info['商品購買用戶數(shù)量']/dt_product_discount_info['UV數(shù)']
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()
得到各個折扣區(qū)間的業(yè)務(wù)指標(biāo)結(jié)果
如上圖所示泽本,除了轉(zhuǎn)化率略低于其他折扣區(qū)間的商品淘太,折扣在0.35_0.4的商品各項指標(biāo)均優(yōu)于其他商品,因此此處單獨分析折扣在0.35_0.4的商品此次促銷情況规丽。
- 選取折扣在0.35_0.4的商品分析
#取出折扣區(qū)間在0.35_0.4的數(shù)據(jù)
discount_354 = dt_product_sales[dt_product_sales['折扣區(qū)間']=='0.35_0.4']
#售賣比 化率
discount_354['售賣比'] = discount_354['商品銷售金額']/discount_354['貨值']
discount_354['轉(zhuǎn)化率'] = discount_354['商品購買用戶數(shù)量']/discount_354['UV數(shù)']
得到折扣在0.35_0.4的商品各項指標(biāo)結(jié)果
如上圖所示蒲牧,通過比較轉(zhuǎn)化率和售賣比兩個指標(biāo),可以給出以下優(yōu)化方案:
- 折扣率大于37%的部分找出售賣比大于35%且轉(zhuǎn)化率大于0.8%的商品(即G005)予以保留赌莺;
- 折扣率小于37%的部分找出售賣比大于25%且轉(zhuǎn)化率大于0.5%的商品(即C005冰抢、G001)予以保留;
- 其余清倉處理艘狭。
5挎扰、流量分布
在一級入口中,首頁的流量占比最高巢音,我們可以將暢銷款(上述分析中予以保留的商品)布局在首頁檔期流遵倦。在唯品會中,我們需要不斷的增加商品來保證我們的SKU數(shù)官撼。對于平銷款(上述分析中予以清倉的商品)梧躺,我們將其作為快搶和瘋搶處理。