跨境電商海外倉(cāng)(10):WMS的庫(kù)齡與倉(cāng)租功能設(shè)計(jì)
編輯導(dǎo)語(yǔ):WMS指?jìng)}庫(kù)管理系統(tǒng),在WMS中,庫(kù)齡是指貨物在倉(cāng)庫(kù)中存放的時(shí)長(zhǎng),庫(kù)齡越大意味著存放的時(shí)間越長(zhǎng),也意味著產(chǎn)品不好賣(mài),可能成為了滯銷品。庫(kù)齡和倉(cāng)租是WMS中很核心也很關(guān)鍵的一個(gè)模塊,但卻少有文章涉及這一方面。本篇文章作者將WMS中的庫(kù)齡和倉(cāng)租功能設(shè)計(jì)詳細(xì)拆解開(kāi)來(lái),為我們分享這一WMS中關(guān)鍵模塊的干貨,一起來(lái)看。
在供應(yīng)鏈行業(yè),大家都很看重庫(kù)存的周轉(zhuǎn)率,庫(kù)存周轉(zhuǎn)率高就意味著產(chǎn)品賣(mài)的快,在短時(shí)間內(nèi)產(chǎn)生盈利的次數(shù)就多;而周轉(zhuǎn)率越低,則表示產(chǎn)品賣(mài)出的慢,庫(kù)存可能一直積壓在手里,可周轉(zhuǎn)資金的資金也就少了。
在WMS中,庫(kù)齡是指貨物在倉(cāng)庫(kù)中存放的時(shí)長(zhǎng),庫(kù)齡越大意味著存放的時(shí)間越長(zhǎng),也意味著產(chǎn)品不好賣(mài),可能成為了滯銷品。同時(shí)對(duì)于一些第三方倉(cāng)庫(kù)來(lái)說(shuō),由于倉(cāng)庫(kù)庫(kù)容有限,所以為了避免太多客戶的貨物成為死庫(kù)存(庫(kù)齡特別長(zhǎng)),會(huì)在倉(cāng)租方面設(shè)定階梯報(bào)價(jià)。
例如在海外倉(cāng)領(lǐng)域,很多第三方海外倉(cāng)都會(huì)有30天免倉(cāng)租的福利。當(dāng)貨物在倉(cāng)庫(kù)的庫(kù)齡不超過(guò)30天的時(shí)候,就可以免倉(cāng)租。而超過(guò)了30天之后,價(jià)格就會(huì)有一個(gè)梯度遞增,即在某個(gè)區(qū)間內(nèi)還算便宜,到了另一個(gè)梯度就特別貴。
海外倉(cāng)通過(guò)這種「懲罰」的方式,來(lái)鼓勵(lì)客戶盡快提升周轉(zhuǎn)率,盡快處理掉庫(kù)齡過(guò)長(zhǎng)的產(chǎn)品。
所以,對(duì)于海外倉(cāng)WMS來(lái)說(shuō),精確地計(jì)算庫(kù)內(nèi)產(chǎn)品的庫(kù)齡是一個(gè)很關(guān)鍵的功能,因?yàn)閭}(cāng)租的梯度報(bào)價(jià)就需要依賴WMS的庫(kù)齡數(shù)據(jù)。
一、庫(kù)齡的計(jì)算
在倉(cāng)庫(kù)中,貨物的數(shù)量是動(dòng)態(tài)變化的??赡苊刻於紩?huì)有貨品入庫(kù)上架,也會(huì)有貨品下架出庫(kù),庫(kù)存數(shù)據(jù)一直在動(dòng)態(tài)變化。
庫(kù)齡是指貨物在倉(cāng)庫(kù)中待的時(shí)長(zhǎng),一般是用天來(lái)統(tǒng)計(jì)的。那如果貨物一直有進(jìn)有出,系統(tǒng)該如何記錄具體的貨物到底在倉(cāng)庫(kù)待了多少天呢?
這個(gè)時(shí)候一般會(huì)引入一個(gè)批次的概念,也可以稱為入庫(kù)批次號(hào)或者上架批次號(hào),在這里我們直接簡(jiǎn)單點(diǎn)叫批次吧。
當(dāng)沒(méi)有批次的時(shí)候,如果發(fā)生了出庫(kù)的行為,系統(tǒng)只能知道剩余的總庫(kù)存有多少,但是不知道具體的不同時(shí)間入庫(kù)的那一批還剩多少,也就沒(méi)辦法統(tǒng)計(jì)具體的庫(kù)齡了。
在引入了批次之后,系統(tǒng)遵循先進(jìn)先出(FIFO)的原則來(lái)計(jì)算庫(kù)齡,就可以精確地知道具體某個(gè)批次出庫(kù)了多少,還剩余多少,這樣統(tǒng)計(jì)庫(kù)齡的時(shí)候就有依據(jù)了。
庫(kù)齡每日流水記錄
有了批次之后,每天會(huì)對(duì)不同批次剩余的SKU數(shù)量計(jì)算庫(kù)齡,相當(dāng)于一次入庫(kù)上架獲得一個(gè)批次,但是出庫(kù)卻可以分成多次,每次剩余多少都會(huì)被記錄,剩余的數(shù)量庫(kù)齡會(huì)一直遞增,直到全部都出庫(kù)完成。
當(dāng)明確了最基礎(chǔ)的庫(kù)齡統(tǒng)計(jì)方式之后,接下來(lái)我們?cè)賮?lái)看看關(guān)于倉(cāng)租這一塊的內(nèi)容。
二、倉(cāng)租的計(jì)算
倉(cāng)租就貨物放在倉(cāng)庫(kù)中需要支付的租金,類似于我們租房子要付的租金一樣。海外倉(cāng)的倉(cāng)租計(jì)算一般是按貨品的體積(CBM)來(lái)計(jì)算的,也可能有些倉(cāng)庫(kù)會(huì)按數(shù)量或者按重量等,再此為了方便闡述,默認(rèn)都是用CBM來(lái)計(jì)算。
假如某客戶存放了一個(gè)體積為1CBM,數(shù)量為1000的貨品在倉(cāng)庫(kù),那么他的倉(cāng)租就會(huì)等于體積*數(shù)量*庫(kù)齡*倉(cāng)租單價(jià),但是由于數(shù)量與庫(kù)齡都是動(dòng)態(tài)變化的,所以一般會(huì)按每日計(jì)算然后做一個(gè)累加,即∑(體積*每日數(shù)量*倉(cāng)租單價(jià))。
以上的倉(cāng)租計(jì)算的初始版本,也是最普通的版本。相當(dāng)于先計(jì)算日租,然后再累積成月租。
但是前面也提到了,海外倉(cāng)一般會(huì)采用倉(cāng)租梯度計(jì)費(fèi)的方式來(lái)作為一種「懲罰」,以推動(dòng)促進(jìn)客戶盡快處理滯銷的產(chǎn)品。而剛剛列出的普通版的倉(cāng)租計(jì)算公式,是不能支持梯度的,也不同支持「30天免租」之類的優(yōu)惠活動(dòng)的。
于是我們需要對(duì)上述的公式進(jìn)行一個(gè)小小地改動(dòng)升級(jí),讓它變得更強(qiáng)一些。
改動(dòng)過(guò)后的計(jì)算方式
當(dāng)需要使用梯度(30天免租也是梯度的一種)的方式來(lái)計(jì)算倉(cāng)租的時(shí)候,就需要記錄下每個(gè)批次的當(dāng)前庫(kù)齡是多少,是否達(dá)到了另一個(gè)梯度區(qū)間,以此來(lái)確定最終的計(jì)算單價(jià)。
三、庫(kù)齡的拓展知識(shí)
1. 倒推法與日推法
大家在網(wǎng)絡(luò)上搜索「庫(kù)齡」或者「庫(kù)齡計(jì)算」的時(shí)候,肯定會(huì)看到相關(guān)的一個(gè)回答,如下圖所示。
包括百度百科里也有相關(guān)的闡述。
但是我看了好幾遍都感覺(jué)這個(gè)描述有點(diǎn)難懂,因?yàn)楦鞣N細(xì)節(jié)沒(méi)有拆解出來(lái),有些人轉(zhuǎn)述的時(shí)候還搞錯(cuò)了名詞之類的。所以索性就是自己用圖中的數(shù)據(jù),再結(jié)合Excel,用笨辦法來(lái)倒推了一下數(shù)據(jù),重新拆解了圖中的公式,希望大家能更容易上手理解。
倒推法計(jì)算平均庫(kù)齡
上圖中所說(shuō)的方式也有人稱之為「倒推法」,其實(shí)本質(zhì)上還是先進(jìn)先出的批次統(tǒng)計(jì)。
以當(dāng)前的時(shí)間的庫(kù)存為總數(shù),然后倒推最近的幾次入庫(kù)的數(shù)量,看最后會(huì)倒推在哪個(gè)批次。
其實(shí)從正向來(lái)看也是一樣的道理,當(dāng)前剩余了1000個(gè)庫(kù)存,如果系統(tǒng)是嚴(yán)格的先進(jìn)先出的,那么很早的批次肯定早就出庫(kù)了,所以現(xiàn)在的1000個(gè)庫(kù)存肯定是最近幾次入庫(kù)的批次剩余的,于是直接采用倒推法就可以算出這些庫(kù)存的平均庫(kù)齡是多少。
如果不習(xí)慣用倒推法或者理解有些困難,我建議還是用「日推法」來(lái)處理,也可以成為「正推法」。也就是每次入庫(kù)記錄一個(gè)批次,然后每天24點(diǎn)定時(shí)統(tǒng)計(jì)一下剩余了多少庫(kù)存,庫(kù)齡是多少天,這樣匯總起來(lái)之后也能算出和倒擠法一樣的結(jié)果。
日推法計(jì)算平均庫(kù)齡
2. 倉(cāng)租日結(jié)累積法
由于一些WMS可能早期設(shè)計(jì)的時(shí)候沒(méi)有考慮批次管理的內(nèi)容,所以在庫(kù)存表中沒(méi)有記錄批次,也沒(méi)有庫(kù)齡。
但是倉(cāng)租還是要計(jì)算,所以在此介紹一種「日結(jié)累積法」,也可以算出倉(cāng)租。
優(yōu)點(diǎn)是簡(jiǎn)單,清晰易懂;缺點(diǎn)就是不能支持梯度計(jì)費(fèi),拓展性不強(qiáng)。
倉(cāng)租日結(jié)累積法
當(dāng)需要計(jì)算倉(cāng)租的時(shí)候,每個(gè)月的月初導(dǎo)出上個(gè)月的所有的SKU的日結(jié)庫(kù)存,然后做一個(gè)匯總,直接拿總數(shù)*計(jì)費(fèi)單價(jià)即可算出月度的倉(cāng)租。
3. 入庫(kù)當(dāng)天是否算庫(kù)齡
對(duì)于一些快進(jìn)快出的倉(cāng)庫(kù),很有可能出現(xiàn)這樣的場(chǎng)景:一批貨物,上午到倉(cāng)上架,然后下午就需要下架出庫(kù)。
那么,如果是當(dāng)天入,當(dāng)天又出,應(yīng)該算庫(kù)齡嗎?
這個(gè)問(wèn)題有兩個(gè)答案,要么算,要么不算。但是我沒(méi)有想好應(yīng)該用哪一種,因?yàn)檫@個(gè)取決于業(yè)務(wù)的需求,但是我猜測(cè)大多數(shù)業(yè)務(wù)人員并不會(huì)注意到這種細(xì)節(jié),所以還是需要產(chǎn)品經(jīng)理來(lái)做定奪。
從統(tǒng)計(jì)的難易程度或者開(kāi)發(fā)的成本來(lái)說(shuō),我個(gè)人會(huì)傾向于:當(dāng)天入庫(kù)和當(dāng)天出不算庫(kù)齡。
因?yàn)槊刻焱砩系膸?kù)齡統(tǒng)計(jì)是在24點(diǎn)左右統(tǒng)計(jì)當(dāng)時(shí)的庫(kù)存結(jié)余,然后從庫(kù)存結(jié)余去匹配對(duì)應(yīng)的批次分別有多少數(shù)量。
如果當(dāng)天入了100個(gè),當(dāng)天又出了100個(gè),那么統(tǒng)計(jì)的時(shí)候庫(kù)存結(jié)余是0,就無(wú)需計(jì)算庫(kù)齡。如果當(dāng)天入了100個(gè),當(dāng)天只出了80個(gè),那么統(tǒng)計(jì)的庫(kù)存結(jié)余就是20,也就意味著有20個(gè)在倉(cāng)庫(kù)待了一天(需計(jì)算庫(kù)齡),其他80個(gè)是不算庫(kù)齡的。
如果是當(dāng)天入,當(dāng)天出需要算庫(kù)齡,那么統(tǒng)計(jì)的方法就需要一點(diǎn)點(diǎn)改變。
還是先每天晚上24點(diǎn)左右統(tǒng)計(jì)當(dāng)時(shí)的庫(kù)存結(jié)余,但同時(shí)還需要去統(tǒng)計(jì)當(dāng)天入庫(kù)的批次的數(shù)量,然后兩者做比對(duì)。
如果當(dāng)天入了100個(gè),當(dāng)天又出了100個(gè),那么統(tǒng)計(jì)的時(shí)候庫(kù)存結(jié)余是0。但是入庫(kù)記錄是100,也就是當(dāng)天入了100,這100需要算1天的庫(kù)齡;如果當(dāng)天入了100個(gè),當(dāng)天只出了80個(gè),那么統(tǒng)計(jì)的庫(kù)存結(jié)余就是20。但是入庫(kù)記錄是100,也就意味著兩者有重復(fù),應(yīng)該以入庫(kù)記錄為主,取入庫(kù)記錄的值,而不取庫(kù)存結(jié)余的值,所以還是需要算100個(gè)為1天的庫(kù)齡;
當(dāng)?shù)诙鞗](méi)有入庫(kù)批次的時(shí)候,這個(gè)時(shí)候再去統(tǒng)計(jì)庫(kù)存結(jié)余的時(shí)候,就可以直接按庫(kù)存結(jié)余來(lái)計(jì)算庫(kù)存了。有值則算1天的庫(kù)齡,無(wú)值則不算庫(kù)齡,也就是庫(kù)存出完了。
四、最后
庫(kù)齡和倉(cāng)租算是WMS中很核心也很關(guān)鍵的一個(gè)模塊的了,但是這兩天我在找相關(guān)資料的時(shí)候發(fā)現(xiàn),全網(wǎng)好像都沒(méi)有人寫(xiě)這一塊的內(nèi)容。即使有寫(xiě),也是一些搬運(yùn)和邏輯不通的段落,讓我一度懷疑這個(gè)東西到底是不是太難了?還是說(shuō)其實(shí)很簡(jiǎn)單大家都不想寫(xiě)?
既然沒(méi)人來(lái)寫(xiě),那我就來(lái)個(gè)拋磚引玉吧。如果我寫(xiě)的內(nèi)容是正確的,有用的,那么就能幫助很多也需要做這一塊功能的朋友;如果我寫(xiě)的內(nèi)容是錯(cuò)誤的,那么也能接受一些大佬的指點(diǎn),盡快改正我的一些錯(cuò)誤認(rèn)知。
反正怎么算都不會(huì)虧。
如果你對(duì)我寫(xiě)的這一篇內(nèi)容有何高見(jiàn),歡迎與我私聊溝通,期待你的回復(fù)。
#專欄作家#
我叫維他命(Vitamin),微信公眾號(hào):PM維他命。前PHPer,做過(guò)在線教育類產(chǎn)品,也做過(guò)3年半的跨境倉(cāng)儲(chǔ)物流方向的產(chǎn)品,目前是一位外貿(mào)SaaS領(lǐng)域的供應(yīng)鏈產(chǎn)品經(jīng)理。主要專注于WMS/OMS/TMS/BMS/ERP等領(lǐng)域,分享供應(yīng)鏈相關(guān)的產(chǎn)品知識(shí)。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
大佬,實(shí)際操作如盤(pán)盈,商品歸屬于哪個(gè)批次,盤(pán)虧扣減哪個(gè)批次,都直接會(huì)影響庫(kù)齡的計(jì)算,請(qǐng)問(wèn)你們是怎么設(shè)計(jì)的呢?
日推法計(jì)算平均庫(kù)齡計(jì)算平均庫(kù)齡還可以,但是沒(méi)法計(jì)算倉(cāng)租費(fèi)(先不論階梯計(jì)價(jià)和免租期)。
因?yàn)樗荒苡涗浻袔?kù)存記錄的庫(kù)存快照的倉(cāng)租 。就像你的「日推法計(jì)算平均庫(kù)齡」圖中,列出的計(jì)算公式 落掉了BN20211011批次5天的倉(cāng)租費(fèi)
我們的不是這樣算,感覺(jué)你這個(gè)比我們算的還復(fù)雜。很容易亂
庫(kù)齡和倉(cāng)租是不是應(yīng)該放到BMS里去計(jì)算啊
計(jì)算可以在BMS,但是基礎(chǔ)的數(shù)據(jù)需要進(jìn)行統(tǒng)計(jì),所以要在OMS或者WMS進(jìn)行統(tǒng)計(jì)
明白了!感謝分享
感謝分享,講得通俗易懂。
第二張貼圖最后的數(shù)據(jù)應(yīng)該是剩余240,發(fā)現(xiàn)一處錯(cuò)誤
是的,數(shù)據(jù)寫(xiě)錯(cuò)了,
此時(shí)BN20210920剩余庫(kù)存為0,而B(niǎo)N20210921剩余庫(kù)存為240(圖中是260)
我怎么覺(jué)得是140啊。完了,是我理解有問(wèn)題嗎?
請(qǐng)問(wèn)這個(gè)剩余數(shù)量不是入庫(kù)之后還是計(jì)算的嘛?
BN20210920入庫(kù)100,剩余數(shù)量100。
BN20210921入庫(kù)200,剩余數(shù)量是100+200.
BN20210922出庫(kù)160,根據(jù)先入先出就是BN20210920剩余庫(kù)存為0,BN20210921剩余庫(kù)存200-60=140啊。就算加上BN20210923入庫(kù)50,也是190
為啥是240?求解
嗯,我打錯(cuò)了字,不好意思哈,應(yīng)該是剩余140的。
有一些表格中描述數(shù)據(jù)錯(cuò)誤了
嗯?哪些呢?