概述

模型概念

库存管理一直是企业管理的重要组成部分,在企业生产经营活动中,库存管理的好坏将影响到企业的购、销活动等,通过对企业的库存数据进行分析,有利于及时发现库存管理中存在的问题并及时地采取某些应对策略,以减少企业库存的资金占用、管理成本等。

  • 平均存货余额:通常是由物流设施中储备的材料、零部件、在制品和产成品构成。
  • 销货成本:企业当期已售商品之成本,即为制造这些产品所直接投入的原材料、劳动力及分摊的制造费用。
  • 库存周转率:企业在一定时期销货成本与平均存货余额的比率,用于反映库存周转快慢程度。周转率越高表明存货周转速度越快,从成本到商品销售到资金回流的周期越短,销售情况越好。
  • 库存周转天数:企业从取得存货开始,至消耗、销售为止所经历的天数。周转天数越少,说明存货变现速度越快,销售状况越良好。
数据指标计算公式
平均存货余额(期初存货金额 + 期末存货金额) / 2
期初存货金额:上期账户结转至本期账户的余额,在数额上等于上期期末金额
期末存货金额 = 期初金额 + 本期增加发生额 - 本期减少发生额
销货成本单件销货成本 * 销售件数
库存周转率销货成本 / 平均存货余额
库存周转天数360 / 库存周转率

应用意义

通过对库存周转率的分析,可以测定企业在一定时期内库存的周转速度。一般来说,库存周转率越高,表明库存周转越快,库存及在库存上占用的资金周转速度越快,企业盈利的机会更大,企业库存资产的变现能力越强,但具体分析应结合企业自身情况。不同行业的平均存货周转率是不同的,企业需与自身所处行业的平均水平进行对比分析,如果自身周转率低于行业水平,那么便需要尽快找到原因并及时改善。

实战

基础数据

这里选择 2016 年 1 月到 2017 年 7 月的销售和库存数据集进行分析,数据字段为:

  • month:月份
  • warehouse:仓库
  • product_code:产品编码
  • product_name:产品名称
  • category:产品类别
  • sale_num:销售数量
  • inventory:库存
  • open_inv_amount:期初库存金额
  • end_inv_amount:期末库存金额
  • cost:销货成本
  • tax:销货税额

部分数据如下:

monthwarehouseproduct_codeproduct_namecategorysale_numinventoryopen_inv_amountend_inv_amountcosttax
2016-012-零货库08.03.0490感冒清热颗粒1-中成药007207212
2016-011-立体仓库13.333连花清瘟胶囊1-中成药4166572661499891421595
2016-011-立体仓库08.02.0917氢溴酸东莨菪碱注射液2-化学药制剂000000
2016-012-零货库13.449盐酸二甲双胍片2-化学药制剂000000
2016-012-零货库13.1229注射用头孢曲松钠4-抗生素000000
2016-011-立体仓库2.08多潘立酮胶囊2-化学药制剂4216800452983954657521569

数据处理

  1. 计算平均存货余额【(期初存货金额+期末存货金额) / 2】、销货成本【单件销货成本 * 销售数量】。

    1
    2
    3
    4
    5
    6
    7
    8
    SELECT
    "month",
    ROUND( SUM ( ( "open_inv_amount" + "end_inv_amount" ) ) / 2, 4 ) AS "avg_inv_amount",-- 平均存货余额
    SUM ( "sale_num" * "cost" ) AS "sale_cost" -- 销货成本
    FROM
    "inventory"
    GROUP BY
    "month"

  2. 计算库存周转率【销货成本/平均存货余额】。

    1
    2
    3
    4
    5
    SELECT
    *,
    ROUND( "sale_cost" / "avg_inv_amount", 4 ) AS "ivn_turnover_ratio" -- 库存周转率
    FROM
    (...) t1

  3. 计算库存周转天数【360 / 库存周转率】。

    1
    2
    3
    4
    5
    6
    7
     SELECT
    *,
    ROUND( 360 / "ivn_turnover_ratio", 4 ) AS "inv_turnover_day" -- 库存周转天数
    FROM
    (...) t2
    ORDER BY
    "month"

完整 SQL:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT
*,
ROUND( 360 / "ivn_turnover_ratio", 4 ) AS "inv_turnover_day" -- 库存周转天数
FROM
(
SELECT
*,
ROUND( "sale_cost" / "avg_inv_amount", 4 ) AS "ivn_turnover_ratio" -- 库存周转率
FROM
(
SELECT
"month",
ROUND( SUM ( ( "open_inv_amount" + "end_inv_amount" ) ) / 2, 2 ) AS "avg_inv_amount",-- 平均存货余额
SUM ( "sale_num" * "cost" ) AS "sale_cost" -- 销货成本
FROM
"inventory"
GROUP BY
"month"
) t1
) t2
ORDER BY
"month"

输出数据

monthavg_inv_amountsale_costivn_turnover_ratioinv_turnover_day
2016-016314146.5047164354674.69634.8195
2016-026114705.0037922843562.01915.8047
2016-036331866.00690545294109.05873.3010
2016-046404496.00799911866124.89852.8823
2016-055984480.5029964132550.06977.1900
2016-065495440.50688046006125.20312.8753

数据可视化

  1. 绘制库存周转分析图,其中 X 轴为月份,左边 Y 轴为周转天数(柱状图),右边 Y 轴为周转率(折线图),可以看出 2016 年 11 月周转天数最小,为 0.46,周转率最高,为 777.88,库存周转情况最好,销售情况最好。 库存周转分析