那麽我們來總結壹下供應鏈中的需求預測。需求預測不等於銷售預測。是在銷售預測的基礎上結合實際經營情況進行的綜合預測,決定什麽時候購買,數量多少。我先從銷售預測說起,說到銷售預測,首先要明確預測框架。
至少應該涵蓋以下幾個角度:預測的對象、預測的精度、預測的對象、預測的時間段、預測的數據需求。
預測的目標:預測要解決什麽問題?是為了制定年度采購計劃或OTB,還是監控日常運營或其他目的?
本文的預測目標是使退貨決策更加準確,在最合適的時間買到最合適的數量。
預測的準確性:銷售的變化有許多復雜的原因。我們基本上不可能建立壹個完美的模型來考慮所有的因素。預測的本質是不可靠,但只要結果能比人工預測更準確,目標就達到了。因此,有必要通過查看歷史退貨單數據來分析人工預測的準確性,並以此為基準衡量機器預測的有效性。
接下來,明確了如何計算精度,可以引入幾個回歸指標:MAD/RMSE/MAPE。
計算示例:
下圖是根據甜甜圈周壹到周五的預測銷量和實際銷量數據計算出來的三個指標。
MAD = 54/5 = 10.8
RMSE = sqrt(126.8)= 11.3
MAPE = 104%/5 = 21%
預測對象:預測對象可以是大規模銷售、區域銷售、品類銷售、單品銷售,也可以是各種粒度的區域維度、品類緯度、時間維度的組合。
這裏定義的對象是大規模頭部商品的銷量,即預測銷量最高的頭部商品。十大暢銷SKU的寬度已經可以貢獻壹半的銷量,而長尾產品的日均銷量太低,預測誤差太大,價值不大。最後,還要考慮商品的交貨期和生命周期。我選擇生命周期較長,發貨周期在壹個月左右的百貨公司。
壹般來說,預測粒度的聚集度越高,結果越可靠。品類銷量預測比單品銷量預測更可靠,區域銷量預測比單店銷量預測更可靠,周銷量預測比日銷量預測更可靠。實力最細的是單店單品單日預測,基本屬於占蔔的範疇。
預測的時間段:有短期、中期、長期預測,短期最多不超過壹年。對於供應鏈需求的預測,我們可以選擇不同商品的發貨周期作為預測時間段,暫定我想預測單個商品未來壹個月的銷量。下圖顯示了時間段和目的之間的完整對應關系:
預測數據需求:要求商品有壹年的銷售數據,覆蓋100家以上的店鋪。
銷售預測不是壹個純粹的技術算法問題。壹個好的預測模型需要對業務邏輯有清晰深刻的洞察力。這就像我們在求解壹個多元函數。了解業務可以幫助我們找出函數有哪些輸入,算法的選擇只是幫助我們更快更準確地解這個方程。如果我們連輸入都不知道,算法就不會得到正確的輸出。
思考這個問題時,可以先用壹批商品銷售數據(可比門店範圍內)生成趨勢圖進行觀察,猜測可能的原因:
案例1:春節過後,下圖的商品銷售呈現出壹個相對穩定的脈沖波形,呈有規律周期性的矩形振蕩,高點都是周末的銷售。供應鏈的鋸齒波節奏和波長也相對穩定,表現良好,需求預測相對容易。
案例二:下圖商品8月上半月銷量明顯偏低,因為7月中旬總倉開始斷貨,水位見底後沒有及時反彈,店鋪數量、店鋪庫存、銷量都快速下滑。另外,6月1日出現了壹個秒殺,因為玩具類在兒童節(也是周六)會特別突出,可以是平日的兩倍多。
案例3:該產品在6月進入生命周期末期。估計已經被貼上了淘汰的標簽,有可能被新型棉簽取代。最後壹次歸還倉庫是在5月底。因為退貨量大,8月份銷量開始下滑。
概括起來,主要原因如下:
外部原因
A.行業趨勢或商品受歡迎程度的變化
B.節假日周期性波動,包括公休日和周末。
C.季節系數
內因
D.缺貨造成的影響可能是補貨單造成的總倉缺貨,也可能是配送邏輯造成的門店缺貨。
E.經營規模的變化,如開店、關店等。
F.產品生命周期,當產品進入淘汰期,就不會被退回或者會有新的主替代品出現(但是預淘汰基金其實不需要預測銷量)。
G.經營策略的變化,品類比例和寬度規劃的變化。
H.促銷活動引起的銷售量變化
壹、營銷推廣計劃帶來的客流或單品熱度的變化
這些因素對單個產品銷量的影響,應該比預測的算法選擇重要得多,需要決定我們可以將哪些歸因自動整合到模型中。
接下來了解壹下當前實際操作過程中退貨數量的判斷邏輯。
1.銷售額的預測基本上是根據過去28天的商品日均銷售額加上人工決策。
對於銷售預測,這種估算方法需要考慮未來某段時間有多少個周末,是否有節假日,是否有促銷活動,以及過去的銷售趨勢是上升還是下降(雖然兩者的日均銷量可能相同),依靠人工判斷極難保證準確性。
2.下單時間的計算公式為[退貨單生產周期+滯留天數+內部流程-當前庫存周轉天數]
庫存周轉天數準確與否,取決於未來壹段時間需求預測的進度。
3.決策的頻率是壹周壹次。每周檢查所有商品的銷售和庫存變化,決定是否補貨。
如果系統自動計算,完全可以把壹周壹次減少到壹天壹次。
4.訂單深度是[訂單天數*預測日均銷售額*店鋪數量]和[最小訂貨量]之間的最大值。
單品在店內的銷量有明顯的差異,僅通過店鋪數量來推斷訂貨量會比較粗略。可以初步細分,計算出壹個店群的品類銷售指數作為權重,計算出對品類和店群維度的總需求。
1.引入日系數。
根據整個自然年的銷售數據,可以計算出全年的日銷售額占比,應該覆蓋公共節假日和周末帶來的銷售波動的影響。如果將銷售數據分成幾類,它也可以涵蓋季節性影響。
商品在壹個自然年度的銷售趨勢擬合為隨機波動+周期性波動+增長趨勢。我們可以提取周期因子生成日系數,這是壹個時間序列的分解過程。對於單品銷售預測的場景,需要將日系數分解到最小的品類,比如牙刷,就要提取口腔清潔品類的日系數。
2.在訓練集中發現異常缺貨期,修復數據,恢復損失的銷售額。
用有效日均銷售額來修復和減少庫存低於最低陳列量的店鋪和單店的銷售損失。
3.剔除異常值,剔除明顯異常的單日數據。
數據異常極有可能是大型團購帶來的銷售額暴增,可能是區域斷網影響收銀導致的銷售額下降。
4.介紹店群品類的銷售指標。
簡單地將計劃的門店數量乘以日均銷售額,只關註了門店數量卻忽略了每家門店某壹產品的巨大銷售差異。我們可以根據單品的品類,計算出歷史銷售數據中每個店鋪的品類銷售指數,從而對店鋪進行劃分,計算出每個店鋪群中單品的日均銷售額。而未來要鋪貨的店鋪與歷史上銷售過這種單品的店鋪不同,所以可以將計劃鋪貨的目標店鋪再次按品類銷售指數分組,每個店鋪組的店鋪數乘以店鋪組。
5.打通全年的營銷日歷和促銷日歷,前提是營銷計劃和促銷計劃至少提前三個月,可以根據活躍度人為設置壹個權重參數。
6.打開渠道的開店關店計劃,根據新店開業的預計銷售目標和老店的實際銷售數據計算銷售比例權重。
以上1/2/3/4相對容易實現,5/6依靠成熟的運營體系,可以前瞻性的制定更為精準的季度推廣日歷/營銷日歷和季度開店閉店計劃,實現這些數據的系統化和整合。
參考資料:
需求計劃與管理導論。預測
從數據中提取季節性和趨勢:使用R分解