概述

模型概念

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

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

应用意义

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

实战

基础数据

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

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

部分数据如下:

month warehouse product_code product_name category sale_num inventory open_inv_amount end_inv_amount cost tax
2016-01 2-零货库 08.03.0490 感冒清热颗粒 1-中成药 0 0 72 0 72 12
2016-01 1-立体仓库 13.333 连花清瘟胶囊 1-中成药 4 1665 7266 14998 9142 1595
2016-01 1-立体仓库 08.02.0917 氢溴酸东莨菪碱注射液 2-化学药制剂 0 0 0 0 0 0
2016-01 2-零货库 13.449 盐酸二甲双胍片 2-化学药制剂 0 0 0 0 0 0
2016-01 2-零货库 13.1229 注射用头孢曲松钠 4-抗生素 0 0 0 0 0 0
2016-01 1-立体仓库 2.08 多潘立酮胶囊 2-化学药制剂 42 16800 45298 39546 5752 1569

数据处理

  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"

输出数据

month avg_inv_amount sale_cost ivn_turnover_ratio inv_turnover_day
2016-01 6314146.50 471643546 74.6963 4.8195
2016-02 6114705.00 379228435 62.0191 5.8047
2016-03 6331866.00 690545294 109.0587 3.3010
2016-04 6404496.00 799911866 124.8985 2.8823
2016-05 5984480.50 299641325 50.0697 7.1900
2016-06 5495440.50 688046006 125.2031 2.8753

数据可视化

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