在供应链行业,大家都很看重库存的周转率,库存周转率高就意味着产品卖的快,在短时间内产生盈利的次数就多;而周转率越低,则表示产品卖出的慢,库存可能一直积压在手里,可周转资金的资金也就少了。
在WMS中,库龄是指货物在仓库中存放的时长,库龄越大意味着存放的时间越长,也意味着产品不好卖,可能成为了滞销品。同时对于一些第三方仓库来说,由于仓库库容有限,所以为了避免太多客户的货物成为死库存(库龄特别长),会在仓租方面设定阶梯报价。
例如在海外仓领域,很多第三方海外仓都会有30天免仓租的福利。当货物在仓库的库龄不超过30天的时候,就可以免仓租。而超过了30天之后,价格就会有一个梯度递增,即在某个区间内还算便宜,到了另一个梯度就特别贵。
海外仓通过这种「惩罚」的方式,来鼓励客户尽快提升周转率,尽快处理掉库龄过长的产品。
所以,对于海外仓WMS来说,精确地计算库内产品的库龄是一个很关键的功能,因为仓租的梯度报价就需要依赖WMS的库龄数据。
在仓库中,货物的数量是动态变化的。可能每天都会有货品入库上架,也会有货品下架出库,库存数据一直在动态变化。
库龄是指货物在仓库中待的时长,一般是用天
来统计的。那如果货物一直有进有出,系统该如何记录具体的货物到底在仓库待了多少天呢?
这个时候一般会引入一个批次
的概念,也可以称为入库批次号
或者上架批次号
,在这里我们直接简单点叫批次
吧。
当没有批次的时候,如果发生了出库的行为,系统只能知道剩余的总库存有多少,但是不知道具体的不同时间入库的那一批还剩多少,也就没办法统计具体的库龄了。
在引入了批次之后,系统遵循先进先出(FIFO)的原则来计算库龄,就可以精确地知道具体某个批次出库了多少,还剩余多少,这样统计库龄的时候就有依据了。
有了批次之后,每天会对不同批次剩余的SKU数量计算库龄,相当于一次入库上架获得一个批次,但是出库却可以分成多次,每次剩余多少都会被记录,剩余的数量库龄会一直递增,直到全部都出库完成。
当明确了最基础的库龄统计方式之后,接下来我们再来看看关于仓租这一块的内容。
仓租就货物放在仓库中需要支付的租金,类似于我们租房子要付的租金一样。海外仓的仓租计算一般是按货品的体积(CBM)来计算的,也可能有些仓库会按数量或者按重量等,再此为了方便阐述,默认都是用CBM来计算。
假如某客户存放了一个体积为1CBM,数量为1000的货品在仓库,那么他的仓租就会等于
体积*数量*库龄*仓租单价
,但是由于数量与库龄都是动态变化的,所以一般会按每日计算然后做一个累加,即∑(体积*每日数量*仓租单价)
。
以上的仓租计算的初始版本,也是最普通的版本。相当于先计算日租,然后再累积成月租。
但是前面也提到了,海外仓一般会采用仓租梯度计费的方式来作为一种「惩罚」,以推动促进客户尽快处理滞销的产品。而刚刚列出的普通版的仓租计算公式,是不能支持梯度的,也不同支持「30天免租」之类的优惠活动的。
于是我们需要对上述的公式进行一个小小地改动升级,让它变得更强一些。
当需要使用梯度(30天免租也是梯度的一种)的方式来计算仓租的时候,就需要记录下每个批次的当前库龄是多少,是否达到了另一个梯度区间,以此来确定最终的计算单价。
大家在网络上搜索「库龄」或者「库龄计算」的时候,肯定会看到相关的一个回答,如下图所示。
包括百度百科里也有相关的阐述。
但是我看了好几遍都感觉这个描述有点难懂,因为各种细节没有拆解出来,有些人转述的时候还搞错了名词之类的。所以索性就是自己用图中的数据,再结合Excel,用笨办法来倒推了一下数据,重新拆解了图中的公式,希望大家能更容易上手理解。
上图中所说的方式也有人称之为「倒推法」,其实本质上还是先进先出的批次统计。
以当前的时间的库存为总数,然后倒推最近的几次入库的数量,看最后会倒推在哪个批次。
其实从正向来看也是一样的道理,当前剩余了1000个库存,如果系统是严格的先进先出的,那么很早的批次肯定早就出库了,所以现在的1000个库存肯定是最近几次入库的批次剩余的,于是直接采用倒推法就可以算出这些库存的平均库龄是多少。
如果不习惯用倒推法或者理解有些困难,我建议还是用「日推法」来处理,也可以成为「正推法」。也就是每次入库记录一个批次,然后每天24点定时统计一下剩余了多少库存,库龄是多少天,这样汇总起来之后也能算出和倒挤法一样的结果。
由于一些WMS可能早期设计的时候没有考虑批次管理的内容,所以在库存表中没有记录批次,也没有库龄。
但是仓租还是要计算,所以在此介绍一种「日结累积法」,也可以算出仓租。
优点是简单,清晰易懂;缺点就是不能支持梯度计费,拓展性不强。
当需要计算仓租的时候,每个月的月初导出上个月的所有的SKU的日结库存,然后做一个汇总,直接拿总数*计费单价
即可算出月度的仓租。
对于一些快进快出的仓库,很有可能出现这样的场景:一批货物,上午到仓上架,然后下午就需要下架出库。
那么,如果是当天入,当天又出,应该算库龄吗?
这个问题有两个答案,要么算,要么不算。但是我没有想好应该用哪一种,因为这个取决于业务的需求,但是我猜测大多数业务人员并不会注意到这种细节,所以还是需要产品经理来做定夺。
从统计的难易程度或者开发的成本来说,我个人会倾向于:当天入库和当天出不算库龄。
因为每天晚上的库龄统计是在24点左右统计当时的库存结余,然后从库存结余去匹配对应的批次分别有多少数量。
如果当天入了100个,当天又出了100个,那么统计的时候库存结余是0,就无需计算库龄。如果当天入了100个,当天只出了80个,那么统计的库存结余就是20,也就意味着有20个在仓库待了一天(需计算库龄),其他80个是不算库龄的。
如果是当天入,当天出需要算库龄,那么统计的方法就需要一点点改变。
还是先每天晚上24点左右统计当时的库存结余,但同时还需要去统计当天入库的批次的数量,然后两者做比对。
如果当天入了100个,当天又出了100个,那么统计的时候库存结余是0。但是入库记录是100,也就是当天入了100,这100需要算1天的库龄;如果当天入了100个,当天只出了80个,那么统计的库存结余就是20。但是入库记录是100,也就意味着两者有重复,应该以入库记录为主,取入库记录的值,而不取库存结余的值,所以还是需要算100个为1天的库龄;
当第二天没有入库批次的时候,这个时候再去统计库存结余的时候,就可以直接按库存结余来计算库存了。有值则算1天的库龄,无值则不算库龄,也就是库存出完了。
库龄和仓租算是WMS中很核心也很关键的一个模块的了,但是这两天我在找相关资料的时候发现,全网好像都没有人写这一块的内容。即使有写,也是一些搬运和逻辑不通的段落,让我一度怀疑这个东西到底是不是太难了?还是说其实很简单大家都不想写?
既然没人来写,那我就来个抛砖引玉吧。如果我写的内容是正确的,有用的,那么就能帮助很多也需要做这一块功能的朋友;如果我写的内容是错误的,那么也能接受一些大佬的指点,尽快改正我的一些错误认知。
反正怎么算都不会亏。🤔
如果你对我写的这一篇内容有何高见,欢迎与我私聊沟通,期待你的回复。
人工智能深度学习简史(1956~2024)
1332 阅读年营收643亿,净利88亿,航空货运三巨头业绩出炉
1285 阅读2025 LOG低碳供应链物流 杰出贡献奖
1239 阅读2025 LOG 低碳供应链物流 数智化优秀服务商
1173 阅读2025高考试卷正在发往全国各地,中国邮政承担押运任务
1148 阅读老牌跨境物流企业爆雷,资金链断裂
1069 阅读2025 LOG低碳供应链物流 杰出贡献奖
987 阅读买还是租,物流企业持有新能源车的最佳姿势
932 阅读2025 LOG低碳供应链物流 最具影响力品牌商
926 阅读2025 LOG低碳供应链物流 杰出贡献奖
933 阅读