一、电商方针:1.1 电商公司事务结构
1.2 各个部分的中心方针
运营部分的中心方针:GMV(产品出售总额)、达标率、赢利率、赢利额等 赢利额能够实在反响产品卖的好坏状况
产品部分中心方针:SKU、SPU等
SKU–是最小的产品单位,比如:包括衣服的色彩等
商场部分中心方针:ROI 、PV 、UV等
UV能够理解为去重后的pv
加购/保藏人数能够反响产品热度状况
1.3 使用场景
a 获取途径剖析:依据各个途径获取用户的状况,剖析不同途径用户阅读和购买产品的状况,核算不同途径用户留存和付费率状况,然后核算途径质量,优化广告投进战略
b 产品阅读阅读剖析:依据用户对各个产品的阅读层级状况,找到抢手和冷门途径,然后优化产品页面布局,针对用户的注册和付费留存行为,树立漏斗剖析模型,衡量各个操作用户转化和丢失状况,找到丢失原因,进步付费转化率
c 促销复盘:每次活动都有一个意图,可能是出售额进步,或者是处理回购率太低,验证推行战略是否有用等,经过专题剖析,用数据来说话
二、活动促销复盘专题剖析1、项目布景:
某自营店肆为了了解自家店肆产品的状况,参加了唯品会渠道的双十一特卖活动,经过复盘促销活动的成果,依据产品售卖状况,了解哪些产品卖得好,哪些产品卖得欠好,经过下架和进步权重等办法来优化产品结构,以便让自己的产品卖的更好,进步出售额。
2、剖析方针:
依据特卖出售状况优化产品结构,以便让自己的产品卖的更好,进步出售额。
3、剖析思路:
先从微观上总结整体运营状况,再拆解到价格区间,使用ABC分类办法,将产品进行ABC分类,针对不同类别的产品进行战略上的调整
1、整体运营方针2、从价格区间找出体现欠好的产品,优化产品结构3、从扣头区间来找出体现欠好的产品,优化产品结构4、剖析进程:4.1.数据处理:
#导入处理包import pandas as pdimport numpy as npimport warningswarnings.filterwarnings('ignore')
4.1.1 读取数据
活动有三张excel表:1.产品明细表数据(促销前运营供给)
2.产品热度状况表 (活动完毕后核算的成果)
3.用户出售明细表
# 读取数据# 产品明细表sql_cmd = "select * from sales_info1"# 履行sql句子,获取数据dt1 = pd.read_sql(sql=sql_cmd, con=engine)dt1.rename(columns={"sale_name":"产品名", "sale_price":"售卖价", "tag_price":"吊牌价", "discout":"扣头率", "stocks":"库存量", "stocks_value":"货值", "cost_price":"成本价", "profit_rate":"赢利率", "skus":"SKU"}, inplace=True)dt1.head()dt1.head().to_clipboard(excel=True)
# 读取数据# 产品热度表sql_cmd = "select * from sales_info2"# 履行sql句子,获取数据dt2 = pd.read_sql(sql=sql_cmd, con=engine)dt2.rename(columns={"sale_name":"产品名", "uvs":"UV数", "collections":"保藏数", "carts":"加购物车数"}, inplace=True)dt2.head()
# 读取数据# 出售明细表sql_cmd = "select * from sales_info3"# 履行sql句子,获取数据dt3 = pd.read_sql(sql=sql_cmd, con=engine)dt3.rename(columns={"user_id":"用户id", "buy_date":"购买日期", "sale_name":"产品名", "buy_cons":"购买数量", "buy_price":"购买单价", "cost_price":"购买金额", "is_tui":"是否退货", "tui_cons":"退货件数", "tui_price":"退货金额"}, inplace=True)dt3['是否退货']=dt3["是否退货"].map({"是":1,"否":0})dt3.head()
4.1.2 兼并产品明细表和产品热度表和出售明细表数据
#要兼并三张表需求先对出售明细表进行处理,核算出每个产品的出售状况product_sales = dt3.groupby("产品名").agg({"购买数量":"sum", "购买金额":"sum", "退货件数":"sum", "退货金额":"sum", "购买单价":"mean", "用户id":pd.Series.nunique}).reset_index()product_sales.rename(columns={"购买数量":"产品出售数量", "购买金额":"产品出售金额", "是否退货":"产品退货数量", "退货金额":"产品退货金额", "购买单价":"产品出售单价", "用户id":"购买用户数量"},inplace=True)product_sales.head()
# 兼并进程# 先兼并把产品明细表和热度表,再兼并上每个产品的出售表dt_product = dt1.merge(dt2,how="left",on="产品名")dt_product_sales = dt_product.merge(product_sales,how="left",on="产品名")dt_product_sales.head()
4.2 整体运营状况
整体运营部分,首要重视出售额(GMV)、售卖比、UV、转化率等方针。出售额用来和预期方针做比照,售卖比用来看产品流转状况。
GMV:出售额,在唯品会里称为到手价。实销:GMV – 拒退金额销量:累计出售量(含拒退)客单价:GMV / 客户数,客单价与毛利率休戚相关,一般客单价越高,毛利率越高UV:产品地点页面的独立拜访数转化率:客户数 / UV扣头率:GMV / 吊牌总额(吊牌总额 = 吊牌价 * 销量)备货值:吊牌价 * 库存数售卖比:又称售罄率,GMV / 备货值保藏数:保藏某款产品的用户数量加购数:加购物车人数SKU数:促销活动中的SKU计数(一般指货号)SPU数:促销活动中的SPU计数(一般指款号)拒退量:拒收和退货的总数量拒退额:拒收和退货的总金额4.2.1 方针核算
#1、GMV:出售额,包括退货的金额gmv = dt_product_sales["产品出售金额"].sum()#2、实践出售额=GMV - 退货金额return_sales = dt_product_sales["产品退货金额"].sum()return_money = gmv - return_sales#3、销量:累计出售量(含拒退)all_sales = dt_product_sales["产品出售数量"].sum()#4、客单价:GMV / 客户数,客单价与毛利率休戚相关,一般客单价越高,毛利率越高。custom_price = gmv / dt_product_sales["购买用户数量"].sum()# 5、UV:产品地点页面的独立拜访数uv_cons = dt_product_sales["UV数"].sum()# 6、转化率:客户数 / UVuv_rate = dt_product_sales["购买用户数量"].sum() / dt_product_sales["UV数"].sum()# 7、扣头率:GMV / 吊牌总额(吊牌总额 = 吊牌价 * 销量)tags_sales = np.sum(dt_product_sales["吊牌价"] * dt_product_sales["产品出售数量"])discount_rate= gmv / tags_sales # 8、备货值:吊牌价 * 库存数goods_value = dt_product_sales["货值"].sum()# 9、售卖比:又称售罄率,GMV / 备货值sales_rate = gmv / goods_value# 10、保藏数:保藏某款产品的用户数量coll_cons = dt_product_sales["保藏数"].sum()# 11、加购数:加购物车人数add_shop_cons = dt_product_sales["加购物车数"].sum()# 12、SKU数:促销活动中的最小品类单元(一般指货号)sku_cons = dt_product_sales["SKU"].sum()# 13、SPU数:促销活动中的SPU计数(一般指款号)spu_cons = len(dt_product_sales["产品名"].unique())# 14、拒退量:拒收和退货的总数量reject_cons = dt_product_sales["退货件数"].sum()# 15、拒退额:拒收和退货的总金额reject_money = dt_product_sales["产品退货金额"].sum()
4.2.2 和上一年双11 各项方针进行同期比照
# 汇总核算sales_state_dangqi = pd.DataFrame( {"GMV":[gmv,],"实践出售额":[return_money,],"销量":[all_sales,],"客单价":[custom_price,], "UV数":[uv_cons,],"UV转化率":[uv_rate,],"扣头率":[discount_rate,],"货值":[goods_value,], "售卖比":[sales_rate,],"保藏数":[coll_cons,],"加购数":[add_shop_cons,],"sku数":[sku_cons,], "spu数":[spu_cons,],"拒退量":[reject_cons,],"拒退额":[reject_money,],}, ) #index=["本年双11",]# 上一年的双11该店肆的数据已知sales_state_tongqi = pd.DataFrame( {"GMV":[2261093,],"实践出售额":[1464936.517,],"销量":[7654,],"客单价":[609.34567,], "UV数":[904694,],"UV转化率":[0.0053366,],"扣头率":[0.46,],"货值":[12610930,], "售卖比":[0.1161,],"保藏数":[4263,],"加购数":[15838,],"sku数":[82,], "spu数":[67,],"拒退量":[2000,],"拒退额":[651188.57,],}, ) #index=["上一年双11",]#行转列后同期比照sales_state_dangqi_s = pd.DataFrame(sales_state_dangqi.stack()).reset_index().iloc[:,[1,2]]sales_state_dangqi_s.columns = ["方针","本年双11"]sales_state_tongqi_s = pd.DataFrame(sales_state_tongqi.stack()).reset_index().iloc[:,[1,2]]sales_state_tongqi_s.columns = ["方针","上一年双11"]sales_state = pd.merge(sales_state_dangqi_s, sales_state_tongqi_s,on="方针")sales_state["同比"] = (sales_state["本年双11"] - sales_state["上一年双11"]) / sales_state["上一年双11"]sales_state
整体方针的剖析仅仅反映了微观的成果,一般电商公司所售产品都是有价格区间段的,为了进一步拆解,分别从价格区间来深入研究,以此来优化后期的促销结构,由于是打折活动,这儿也核算了扣头区间的优化,价格区间和扣头区间相辅佐,能够更好的协助优化产品结构
4.3.从价格区间来优化产品结构
首要要对产品的价格区间进行区分,其次核算每个区间的转化率,售卖比,最终,以转化率和售卖比为方针,使用ABC分类办法优化产品结构4.3.1 区分价格区间:
# 区分价格区间段#设置切分区域listBins = [0,200, 400, 100000]#设置切分后对应标签listLabels = ['1_200','200_400','400以上']#使用pd.cut进行数据离散化切分,留意分组标签和分组数要共同"""pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)x:需求切分的数据bins:切分区域right : 是否包括右端点默许True,包括labels:对应标签,用符号来替代回来的bins,若不在该序列中,则回来NaNretbins:是否回来距离binsprecision:精度include_lowest:是否包括左端点,默许False,不包括。默许是左开右闭区间"""dt_product_sales['价格分组'] = pd.cut(dt_product_sales['售卖价'], bins=listBins, labels=listLabels, include_lowest=True)dt_product_sales.head()
4.3.2 价格区间出售状况核算:方针:价格区间、货值、货值占比、出售额、出售占比、销量、客单价、UV、保藏数、加购数、转化率
# 核算 dt_product_sales_info = dt_product_sales.groupby("价格分组").agg({ "货值":"sum", "产品出售金额":"sum", "产品出售数量":"sum", "UV数":"sum", "购买用户数量":"sum", "保藏数":"sum", "加购物车数":"sum" }).reset_index()# 货值占比、出售占比、客单价、转化率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["产品出售金额"].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["UV数"]dt_product_sales_info.head()
由表可知,出售量和购买人数最多的价格区间是200~400,出售额最高的是400以上,转化率根本相同4.3.3 优化进程:
以400以上价格区间为例剖析优化计划
# 取出400及以上价格区间的数据内容product_400 = dt_product_sales[dt_product_sales["价格分组"]=='400以上']product_400.head()
核算400以上价格区间产品方针:出售额、销量、售卖价、购买用户数量、UV、转换率=客户数 / UV、库存量、备货值=吊牌价 * 库存量、售卖比=又称售罄率,GMV / 备货值
# 转换率=客户数 / UVproduct_400['转换率'] = product_400["购买用户数量"]/product_400["UV数"]# 备货值=吊牌价 * 库存数product_400["备货值"] = product_400["吊牌价"]*product_400["库存量"]# 售卖比=又称售罄率,GMV / 备货值product_400["售卖比"] = product_400["产品出售金额"]/product_400["备货值"]product_400[["产品名","产品出售金额","产品出售数量","产品出售单价","购买用户数量","UV数",'转换率',"库存量","备货值","售卖比"]]
这儿咱们以转化率和售卖比为方针来进行ABC剖析,临界值以转化率的50%分位数,售卖比的90%分位数选取
# 检查转化率和售卖比数据product_400['转化率'].quantile(0.5)0.007017543859649123product_400['售卖比'].quantile(0.9)0.3609752112640176
优化计划:转化率选取50%分位数的值,意味着50%的产品转化率是大于0.007的。售卖比挑选90%分位数,表明出售额/备货值为0.