電商特賣商品庫(kù)存優(yōu)化分析

本文是對(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分析法。

標(biāo)準(zhǔn)帕累托圖

在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()
商品銷售明細(xì)

商品總體描述統(tǒng)計(jì)
  • 共有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"]
今年待侵、去年同期對(duì)比
  • 總體運(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)
價(jià)格區(qū)間商品統(tǒng)計(jì)

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)

400元以上產(chǎn)品

散點(diǎn)圖楞慈,黃色:C類幔烛,綠色:B類,紫色:A類
  • 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()
折扣區(qū)間分析統(tǒng)計(jì)

銷售情況
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)
0.35-0.4區(qū)間產(chǎn)品銷售情況
  • 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)品。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末塑陵,一起剝皮案震驚了整個(gè)濱河市感憾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌令花,老刑警劉巖阻桅,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異兼都,居然都是意外死亡嫂沉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門扮碧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趟章,“玉大人,你說我怎么就攤上這事芬萍∮却В” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵柬祠,是天一觀的道長(zhǎng)北戏。 經(jīng)常有香客問我,道長(zhǎng)漫蛔,這世上最難降的妖魔是什么嗜愈? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任旧蛾,我火速辦了婚禮,結(jié)果婚禮上蠕嫁,老公的妹妹穿的比我還像新娘锨天。我一直安慰自己,他們只是感情好剃毒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布病袄。 她就那樣靜靜地躺著,像睡著了一般赘阀。 火紅的嫁衣襯著肌膚如雪益缠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天基公,我揣著相機(jī)與錄音幅慌,去河邊找鬼。 笑死轰豆,一個(gè)胖子當(dāng)著我的面吹牛胰伍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酸休,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼骂租,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了雨席?” 一聲冷哼從身側(cè)響起菩咨,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤吠式,失蹤者是張志新(化名)和其女友劉穎陡厘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體特占,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡糙置,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了是目。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谤饭。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖懊纳,靈堂內(nèi)的尸體忽然破棺而出揉抵,到底是詐尸還是另有隱情,我是刑警寧澤嗤疯,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布冤今,位于F島的核電站,受9級(jí)特大地震影響茂缚,放射性物質(zhì)發(fā)生泄漏戏罢。R本人自食惡果不足惜屋谭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望龟糕。 院中可真熱鬧桐磁,春花似錦、人聲如沸讲岁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缓艳。三九已至扶踊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郎任,已是汗流浹背秧耗。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舶治,地道東北人分井。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像霉猛,于是被迫代替她去往敵國(guó)和親尺锚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355