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