、项目背景
餐饮行业属于快消行业,快消行业的特点就在一个快字上,决策者需要对各门店的每一天的销售情况进行实时的观测,才可以非常快速的了解当天的销售状况,寻找销售密码,从而快速发现问题,解决问题,响应市场的变化,对市场的需求进行快速的判断和决策。
现在我们根据某餐饮企业北京各店铺的日销售相关数据来制作一个超级简单的分析仪,以便决策者能够清晰迅速的了解各店面每一天的销售情况。
二、思路搭建
< class="pgc-img">>三、指标解读
< class="pgc-img">>四、理解数据
本次日销售情况分析仪的搭建共使用3张数据表,这三张数据表的表结构信息如下:
< class="pgc-img">-bill表
>-order表
>-shop表
>五、数据的整理与分析
1.数据整理
- 下面的过程可以直接在MySQL中完成也可以在Navicat客户端中完成。
- 由于本次数据源本身就特别规范,故无需进行数据清洗。
- 数据源表无标题行,故导入数据过程中无需忽略第一行。
1)新建数据库
-- 新建名为cateringcase(餐饮案例)的数据库
create database Cateringcase;
2)新建Bill表并导入数据
根据-bill表的表结构信息新建Bill表并导入数据。
use Cateringcase;
-- 新建bill表
create table Bill (
billdate date not null,
billnumber varchar(20) not null default '-',
shopname varchar(20) not null default '-',
billdiscount float not null default 0,
paytime time not null,
tablenumber int not null default 0,
peoplecount int not null default 0
);
-- 导入数据(注意地址中的是左斜杠/哦,而且文件位置信息要写到要导入文件的略缩名-bill.csv)
load data local infile 'D:/01.lessons/1.data analysis/data analyst(Excel+MySQL)/11.source material/1.1data/data/-bill.csv'
into table Bill
fields terminated by ',';
-- 查看Bill表数据导入情况
select * from Bill;
select count(*) from Bill;
< class="pgc-img">共682条数据(Navicat)
>3)创建OrderDetail 表并导入数据
-- 创建shopdetail表并导入数据
create table ShopDetail(
shopname varchar(20) not null default '-',
twotable int not null default 0,
threetable int not null default 0,
fourtable int not null default 0,
alltable int not null default 0
);
-- 导入数据
load data local infile 'D:/01.lessons/1.data analysis/data analyst(Excel+MySQL)/11.source material/1.1data/data/-shop.csv'
into table ShopDetail
fields terminated by ',';
-- 查看ShopDetail表数据导入情况
select * from Shopdetail;
select count(*) from shopdetail;
< class="pgc-img">共3410条数据(MySQL)
>4)创建ShopDetail表并导入数据
-- 创建shopdetail表并导入数据
create table ShopDetail(
shopname varchar(20) not null default '-',
twotable int not null default 0,
threetable int not null default 0,
fourtable int not null default 0,
alltable int not null default 0
);
-- 导入数据
load data local infile 'D:/01.lessons/1.data analysis/data analyst(Excel+MySQL)/11.source material/1.1data/data/-shop.csv'
into table ShopDetail
fields terminated by ',';
-- 查看ShopDetail表数据导入情况
select * from Shopdetail;
select count(*) from shopdetail;
< class="pgc-img">共5条数据
>2.数据分析
1)用orderdetail表创建单汇总金额表(OrderGroup)
- 以orderdetail表的billnumber字段为汇总依据,求出每条billnumber下pay的加总值。
- 新表字段:billnumber(单号)、pay(金额)
-- 创建单汇总金额表(OrderGroup)
create table OrderGroup(
select billnumber ,sum(pay)as pay
from orderdetail
group by billnumber
);
select * from ordergroup;
< class="pgc-img">>2)用Bill表与OrderGroup表创建新单号详细表(NewBill)
- 以billnumber为关键字段关联两表,将OrderGroup表中的pay字段合并到Bill表中,并使用pay与billdiscount字段计算出折扣金额。
- 新表字段:所有Bill表中的字段、pay(金额)、rebate(折扣金额)
- 计算逻辑:Rebate=pay * billdiscount
-- 用Bill表与OrderGroup表创建新单号详细表(NewBill)
create table NewBill(
select b.*,o.pay,b.billdiscount*o.pay as rebate
from bill as b left join ordergroup as o on b.billnumber=o.billnumber
);
select * from NewBill;
< class="pgc-img">>3)用Shopdetail表创建新店面情况表(NewShopDetail)
- 在原有shopdetail表字段基础上计算并添加allseats字段。
- 新表字段:所有ShopDetail表中的字段、allseats(总座位数)。
- 计算逻辑:allseats=twotable * 2 + three * 3 + fourtable * 6(其中四人及以上台数的每台平均座位数为6)。
-- 用Shopdetail表创建新店面情况表(NewShopDetail)
create table NewShopDetail(
select *, twotable*2+threetable*3+fourtable*6 as allseats
from shopdetail
);
select * from NewShopDetail;
< class="pgc-img">>4)用OrderDetail表与Bill表创建新点菜明细表(NewOrderDetail)
- 以billnumber为关键字段关联两表,并用Bill表中的shopname与OrderDetail表中的所有字段组成新表
- 新表字段:shopname(店名)、OrderDetail表中的所有字段
-- OrderDetail表与Bill表创建新点菜明细表(NewOrderDetail)
create table NewOrderDetail(
select b.shopname,o.*
from OrderDetail as o left join bill as b on o.billnumber=b.billnumber
);
select * from neworderdetail;
< class="pgc-img">>5)用NewBill表与NewShopDetail表创建店汇总信息表(ShopTotal)
- 以shopname字段为关键字段关联两表,并以shopname字段为汇总条件,创建新表。
- 新表字段:店名: b.shopname,单数: b.billnumber的计数,人数: b.peoplecount的加总,折扣总金额: b.rebate的加总,店汇总金额: b.pay的加总,单均消费: b.pay的合计值/b.billnumber的计数值,人均消费: b.pay的合计值/b.peoplecount的合计值,总台数: s.alltable,总座位数: s.allseats,翻台率: b.billnumber的计数值/s.alltable,上座率: b.peoplecount的合计值/s.allseats,折扣率: b.rebate的合计值/b.pay的合计值。
-- 用NewBill表与NewShopDetail表创建店汇总信息表(ShopTotal)
create table ShopTotal(
select nb.shopname as 店名,count(nb.billnumber) as 单数,
sum(nb.peoplecount) as 人数, sum(nb.pay) as 店汇总金额,
sum(nb.pay)/count(nb.billnumber) as 单均消费,
sum(nb.pay)/sum(nb.peoplecount) as 人均消费,
ns.alltable as 总台数,ns.allseats as 总座位数,
count(nb.billnumber)/ns.alltable as 翻台率,
sum(nb.peoplecount)/ns.allseats as 上座率,
sum(nb.rebate)/sum(nb.pay) as 折扣率
from NewBill as nb left join newshopdetail as ns on nb.shopname=ns.shopname
group by nb.shopname);
select * from shoptotal;
< class="pgc-img">>六、数据可视化
该过程可以在Excel(power pivot、power view 及powerquery加载项)中完成,也可直接在PowerBI客户端中完成,下面以PowerBI为例完成可视化。
1.将MySQL中处理好的数据表导入PowerBI。
1)用PowerBI连接数据库
< class="pgc-img">>< class="pgc-img">>< class="pgc-img">>2)将需要的数据表导入PowerBI
①选中需要导入的数据表,点击加载即可。
< class="pgc-img">>②点击‘转换数据’进入查询编辑器,对各表各字段的数据类型进行调整。
< class="pgc-img">>newbill表
< class="pgc-img">>shoptotal
2.数据建模
< class="pgc-img">>3)KPI指标展现
销售额:
这里面我们用每家店的平均销售金额/所有店的总平均销售金额来衡量这家店的销售KPI指标是否达标(即是否高于平均水平,不及格红色,绿色为优秀,黄色为及格)。
(1)新建度量值
各门店销售额平均值=AVERAGE('cateringcase shoptotal'[店汇总金额]) 所有店总平均销售金额=CALCULATE(AVERAGE('cateringcase shoptotal'[店汇总金额]),ALL('cateringcase shoptotal')) 店面销售情况=[各门店销售额平均值]/[所有店总平均销售金额]
2)建立销售额KPI指标
利用之前建立的度量值及可视化中的KPI模块,进行销售额KPI部分的可视化。
颜色设置规则:
- [店面销售情况]在1.2~1.5之间为绿色
- [店面销售情况]在1.0~1.2之间为黄色
- [店面销售情况]在<1.0之间为红色
其他KPI指标:
运用可视化功能中卡片模块进行设置。
最后KPI部分如下图所示:
< class="pgc-img">>4)店铺不同时段总体运营情况
以折线及柱形组合图来展现不同时段销售额及订单量的变化趋势。
< class="pgc-img">>5.各类菜品销售情况
< class="pgc-img">>< class="pgc-img">>七、结果展示
源:央视新闻客户端
“餐饮浪费现象,触目惊心、令人痛心!”习近平总书记近日针对制止餐饮浪费现象作出的重要指示,引发了社会各界的广泛关注。
痛心!餐桌上的浪费触目惊心
近日,记者在东北某地的一家烤肉店看到,刚刚离开的客人留下了两盘完全没有动过的食材,记者找到这桌客人的点菜单据,发现两位顾客一共点了六道菜肴。
烧烤店老板:这样剩下有点太浪费了,没有必要的浪费。
在华北某城市的一家餐厅,因为多下单而被浪费的菜肴,就这样源源不断地被扔进后厨垃圾桶。
餐厅经营者:专门负责厨余垃圾的员工,他们处理起来也是很麻烦的。运输加工这些其实每一道工序都是成本,对于商家来说,处理这些东西也是成本。
成升魁研究员自2012年起,就带领团队在国内4个代表性城市的366家餐馆进行实地调研,据他最新的观察,在大众消费领域,特别是婚丧嫁娶等消费所造成的餐饮浪费依然严重。
中国科学院地理科学与资源研究所研究员 成升魁:大众餐饮食物浪费现在值得我们引起高度重视。根据我们的调研,餐桌上的食物浪费率为11.7%,这是一个很保守的数据。另外就是各种红白喜事、婚宴,还有名目繁多的事件消费,生日宴、升学宴、谢师宴、晋职宴,非常繁多。
值得注意的是,更为高频次的日常餐饮消费,比如快餐盒饭虽然看起来并不显眼,然而,聚集起来的浪费量很容易被忽视。
最近几年,依托互联网的外卖发展迅速,在一些主打“生鲜”品质的超市,就有不少顾客发现店员大规模丢弃食物的场景:餐盒精美的新鲜饭菜、海鲜、甜品、饮料、点心,一批批从货架上撤下,拉走扔掉。
在某大学的一份调查显示,有49.5%的人凑单后,吃不完购买的食物。而整个外卖行业浪费究竟有多大规模,目前也没有权威的数据。
惊人!中国餐饮业人均浪费食物11.7%
中国餐饮业人均食物浪费量为每人每餐93克,浪费率为11.7%,大型聚会浪费达38%,学生盒饭有三分之一被扔掉。
初步测算,2015年中国城市餐饮业仅餐桌食物浪费量就在1700万至1800万吨之间,相当于3000万至5000万人一年的食物量。杜绝餐饮浪费,不仅关系到改变消费陋习,更指向粮食安全这个事关国运的重大命题。
警醒!时刻保持对粮食安全的危机意识
事实上,连续多年稳定的粮食生产,并未减少公众对于粮食安全的关注,新冠肺炎疫情、洪涝灾害,特殊的2020年,国人更需要认真对待粮食的巨大浪费现象。
8月13日上午,国新办发布会透露, 今年洪涝灾害,已经导致6032.6千公顷农作物受灾,其中绝收1140.8千公顷。
从国际环境看,上个月,粮农组织就再次发出了预警。
联合国粮农组织首席经济学家 马克西莫·托雷罗:受新冠肺炎疫情影响,我们预估,在现有饥饿人口基础上,2020年会新增8300万到1.3亿人口出现缺粮情况。
中国科学院地理科学与资源研究所研究员 成升魁:疫情全球肆虐,粮食的供应链、食物的供应链受阻,所以对各个国家粮食都带来了非常大的影响。
作为一个人口众多,土地资源相对不足的国家,中国始终把解决人民吃饭问题作为治国安邦的首要任务。专家认为,尽管我国粮食生产连年丰收,但时刻保持对粮食安全的危机意识,仍然有着重大的现实意义。
党的十八大以来,中国树立了“确保谷物基本自给、口粮绝对安全”的新粮食安全观,这样的粮食结构决定了我国对于豆类、肉类等食物还需要大量进口,豆类、玉米等还是我国动物性饲料的重要来源。
中国科学院地理科学与资源研究所研究员 成升魁:现在我们缺的是饲料粮,饲料粮最缺的是蛋白饲料,就是大豆,这一块我们自己资源里没法满足的。
中国社科院农村发展研究所研究员 李国祥:我们的粮食安全形势有喜有忧,喜的就是主粮,供给有保障,但是我们其它方面还需要国际市场,比如大豆、食用油、肉类、奶类还需要大量进口。
厉行节约,反对浪费,我们要杜绝的浪费不仅仅是米饭、馒头等主食,而是包括鸡鸭鱼肉蛋奶在内的所有食物,这样的行为对于保障我国整体粮食安全意义重大。
8月13日下午,中央纪委国家监委网站发布消息,全国人大常委会法工委,已经决定成立专班,开展制止餐饮浪费行为立法工作。目前正在对国内外有关制止餐饮浪费行为相关立法、文件和政策措施进行梳理研究。
除了法律和制度的刚性约束,制止餐饮浪费行为还有赖于全社会形成更广泛的共识,从而真正形成一个节俭的社会风气和氛围。
年的疫情改变了人们的方方面面,无论是生活还是工作都受到了很大的影响。
在商业领域,大家最直观的感受就是实体店铺受到了严重的冲击,特别是餐饮行业,某地如果出现疫情,“禁止或限制餐饮堂食”成为防疫标配。于是,很多人断言:餐饮行业将迎来“倒闭潮”!
< class="pgc-img">>那么,如今的餐饮行业现状是怎样的呢?我们用2个月的时间对深圳餐饮市场进行了实地调研。
深圳,三年来屡次出现较大规模的疫情,特别是2022年3月14日至20日期间实行了7天的“封城”,部分区域禁止餐饮堂食甚至长达2个月。那段时间,深圳很多餐饮店铺感受到了什么是“凛冬”。
如今,距“解封”已经过去2个多月了,现在深圳的餐饮市场情况如何?
一座难求,排队重现
深圳人的消费能力毋庸置疑,疫情似乎并没有让人们的钱包“缩水”。无论是写字楼的商务餐还是购物中心里的休闲餐饮,不管是社区餐厅还是高端酒楼,排队盛况又回到了疫情之前,甚至有过之而无不及。
< class="pgc-img">>中午11:45,开在某写字楼的“大米先生”深圳首店已经排起了长队,店里也是人山人海。大米先生作为一家主打中式快餐的连锁餐饮企业,目前在全国开出了一千多家店。即使是疫情发生这三年,其发展势头依然迅猛。
< class="pgc-img">>开在某大型商场里的“啫两手”主营粤式啫啫煲,下午1点半店内依然没有空位,店外还有很多人在排着长队等位。此时商场内其他餐饮店铺的情况也差不多,可见深圳人的消费能力之旺盛。
< class="pgc-img">>这家叫“破店”的社区餐饮店开在深圳最著名的城中村“白石洲”,主营东北烧烤和麻辣烫。即使是凌晨两点,店内还是灯火通明,客人络绎不绝。
< class="pgc-img">>提供高端餐饮定制的某团膳服务公司,这两个月的订单也排得满满当当。他们为顾客提供上门服务,订单主要来自于别墅、轰趴馆、会所举行的小型聚会用餐。公司负责人表示:“疫情之后公司的业务迎来了爆发式增长,可能是人们压抑已久的消费需求集中释放。”
看到这些生意火爆的餐饮店,那些断言疫情会带来“倒闭潮”的人是否有被“打脸”的感觉呢?
几家欢喜几家愁,倒闭店铺年年有
有生意好的店,自然就有生意差的店。
餐饮行业是一个高淘汰率的行业,停业、转让、倒闭每天都在上演。
< class="pgc-img">>这样的“旺铺招租”随处可见,疫情或许有一定的影响,但是高昂的租金或许才是“压死骆驼的最后一根稻草”。这家以前做羊肉汤的店铺,面积80平米,月租金高达9万。以30块钱一碗的羊肉汤计算,每天得卖出100碗羊肉汤才能赚到店租,还不包括原材料和人员工资及其他费用。可想而知,当初这家店铺老板需要多大的勇气和自信。
< class="pgc-img">>这家当初耗资千万装修的高档酒楼,位于深圳罗湖,如今也已是人去楼空。现在由物业方招租,不需要转让费,设施设备齐全,缴纳押金和租金即可进驻。
< class="pgc-img">>长沙超级网红“文和友”获几亿资本加持后,2021年4月,“深圳文和友”开业,开业当天排队超过5万个号,半年后却更名为“老街蚝市场”,如今已是风光不再,门可罗雀。
餐饮行业在发生变化,与疫情有关,但是关系不大
通过对深圳“解封”之后两个多月的实地调研发现,疫情确实让一些餐饮企业举步维艰。但是即使没有疫情,餐饮行业也会发生很大的变化。
1,大型商场具有“虹吸效应”,传统的街边店顾客正在慢慢流失;
< class="pgc-img">>2,“小而美”的社区店展示出极强的生命力和发展势头,传统“夫妻档”、“苍蝇馆子”的成功只是偶然性;
3,资本的加速布局让某些品类迅速爆发,个体店铺无力抵抗;
4,高端餐饮机会与危机并存,对品牌运营能力有了更高的要求;
5,新型餐饮业态在试错中前行,跟风者宜谨慎;
< class="pgc-img">>本文仅浅谈深圳餐饮行业现状,下一篇文章我们将对餐饮行业的变化作出具体的分析,对此有兴趣的朋友可以关注作者,一起探讨交流。