머신러닝이 재고 부족을 3주 앞서 예측하는 방법
약 3,500개의 SKU를 운영하는 중견 뷰티 리테일러에게 지속적인 문제가 있었습니다. 매달 베스트셀러 제품의 8-12%가 보충 물량이 도착하기 전에 재고가 바닥났습니다. 인기 제품의 재고 소진 한 건당 일일 약 $2,800의 매출 손실이 발생했으며, 이는 고객 신뢰도 하락과 품절된 제품 페이지로 트래픽을 유도하는 데 낭비된 광고비를 제외한 수치였습니다.
재고 관리팀은 매일 재고 수준을 확인하고 재고가 사전에 설정된 임계값에 도달하면 재주문을 넣고 있었습니다. 문제는 그 임계값이 정적이었다는 것입니다. 지난 90일간의 평균 일일 판매량을 기반으로 한 고정된 수량이었습니다. 바이럴 TikTok 언급이나 경쟁사의 유사 제품 품절로 인해 수요가 급증하면, 정적 임계값은 충분히 빠르게 대응할 수 없었습니다.
정적 재주문점이 실패하는 이유
정적 재주문점은 미래 수요가 과거 수요와 비슷할 것이며 공급업체 리드타임이 일정할 것이라고 가정합니다. 두 가정 모두 정기적으로 무너집니다. 이커머스에서 개별 SKU의 수요는 불규칙합니다. 어떤 제품이 3주 동안 하루에 20개씩 팔리다가 인플루언서가 언급하거나, 경쟁사가 가격을 올리거나, 계절적 변화가 시작되면서 갑자기 하루에 60개씩 팔릴 수 있습니다. 일일 재고 확인에서 판매 가속을 인지할 때쯤이면, 이미 수요 증가가 2주째 진행 중이고 앞으로 3주의 공급업체 리드타임이 남아 있을 수 있습니다.
공급업체 리드타임도 마찬가지로 변동적입니다. 보통 14일 내에 배송하는 공급업체가 성수기, 원자재 부족, 또는 배송 지연으로 인해 21일이 걸릴 수 있습니다. 재주문점이 14일 리드타임을 가정하는데 실제 리드타임이 21일이라면, 이미 보충되었을 것으로 생각한 재고를 판매하는 7일간의 공백이 발생합니다.
ML 모델이 관찰하는 것
재고 소진 예측 모델은 여러 데이터 스트림을 동시에 처리합니다. 주요 입력값은 판매 속도인데, 단순 평균이 아니라 추세와 계절성 구성 요소가 포함된 시계열 데이터입니다. 모델은 가속(지난주보다 빠르게 판매), 감속, 그리고 각 SKU에 특화된 주기적 패턴을 감지합니다.
재고 포지션(현재 보유 재고 + 운송 중인 수량 - 대기 주문에 할당된 수량)은 모델에 공급 측면의 정보를 제공합니다. 예측 수요와 결합하여 모델은 동적으로 업데이트되는 예상 재고 일수 지표를 계산합니다.
공급업체 성과 데이터는 중요한 차원을 추가합니다. 시간 경과에 따라 각 공급업체의 실제 배송일 대비 예상 배송일을 추적함으로써, 모델은 단일 점 추정치 대신 예상 리드타임의 분포를 구축합니다. 공급업체 A가 중앙값 14일로 12-18일 내에 배송한다면, 모델은 재고 소진 확률을 계산할 때 전체 분포를 사용합니다.
외부 신호는 수요 변화에 대한 조기 경보를 제공합니다. Google에서의 제품 또는 카테고리 검색량, 소셜 미디어 언급, 경쟁사 재고 수준(종종 제품 페이지에서 제한된 재고 표시를 통해 감지 가능), 그리고 시즌 캘린더가 모두 수요 예측에 반영됩니다. 제품에 대한 Google 검색량의 갑작스러운 급증은 종종 매출 급증보다 5-10일 앞서 나타나며, 이는 현재 재고 궤적이 유지되지 않을 수 있다는 조기 신호를 모델에 제공합니다.
3주 전 경고 윈도우
모델은 각 SKU에 대해 다양한 시간 범위(7일, 14일, 21일 후)의 재고 소진 확률을 출력합니다. 일반적인 알림은 다음과 같습니다: SKU #4892(비타민 C 세럼 30ml)의 현재 보유 재고는 340개입니다. 현재 일일 판매 속도 28개 기준으로 약 12일 후 재고가 소진됩니다. 그러나 수요 추세가 주간 15% 가속을 보이고 있습니다. 조정된 소진 예상 시점은 9일입니다. 다음 보충 배송 500개의 예상 도착일은 공급업체 리드타임 분포 기준 16일 후입니다. 14일 내 재고 소진 확률은 78%입니다.
이 3주간의 윈도우가 있으면 재고 관리팀에게 선택지가 생깁니다. 공급업체에 기존 주문의 긴급 처리를 요청하고, 더 빠른 배송을 위해 프리미엄을 지불할 수 있습니다. 리드타임이 더 짧은 대체 공급업체에 소량의 브릿지 주문을 넣을 수 있습니다. 유기적 매출을 유지하면서 수요를 늦추기 위해 해당 제품의 마케팅 지출을 줄일 수 있습니다. 재고 소진 기간 동안의 수요를 포착하기 위해 재입고 알림을 설정할 수 있습니다.
조기 경보가 없으면 이러한 완화 옵션 중 어느 것도 사용할 수 없습니다. 수동 확인을 통해 사람이 재고가 부족하다는 것을 인지할 때쯤이면, 리드타임이 이미 남은 재고를 잠식하고 있습니다.
모델 구축
기술적 구현은 수요 예측을 위한 시계열 예측(일반적으로 Prophet 또는 커스텀 LSTM 모델)과 재고 소진 확률을 위한 분류 모델의 조합을 사용합니다. 분류 모델은 수요 예측, 현재 재고 포지션, 공급업체 리드타임 분포를 입력으로 받아 각 시간 윈도우 내의 재고 소진 확률을 출력합니다.
학습 데이터는 과거 재고 기록에서 가져옵니다. 과거의 모든 재고 소진은 양성 사례이고, 특정 기간 동안 적정 재고를 유지한 모든 SKU는 음성 사례입니다. 유용한 모델을 학습시키려면 해당 판매 데이터가 포함된 최소 12-18개월의 일일 재고 스냅샷이 필요합니다. 일일 재고 수준을 저장하지 않았다면 지금 시작하세요. 이 데이터는 소급하여 재구성하기가 놀라울 정도로 어렵습니다.
피처 엔지니어링이 대부분의 가치가 만들어지는 곳입니다. 원시 판매 수치보다 7일 이동 평균 속도, 주간 속도 변화, 일일 판매의 변동 계수(수요 변동성 측정치), 현재 속도 대비 90일 평균 비율과 같은 파생 피처가 더 유용합니다. 이러한 파생 피처는 모델이 재주문점에 접근하는 꾸준한 판매 제품과 예상보다 훨씬 빠르게 재고를 소진할 수요 급증을 경험하는 제품을 구별하는 데 도움을 줍니다.
기존 시스템과의 통합
모델은 기존 재고 관리 워크플로우에 연결되어야 하며, 이를 대체해서는 안 됩니다. 가장 일반적인 접근 방식은 재고 소진 위험도별로 SKU를 순위 매기고 각각에 대한 권장 조치를 보여주는 일일 알림 대시보드입니다. 재고 기획자는 매일 아침 대시보드를 검토하고 고위험 항목에 대해 조치를 취합니다.
더 고도화된 구현은 저위험 조치에 대한 대응을 자동화합니다. 모델이 재고 소진을 예측하고 권장 조치가 기존 공급업체에 표준 재주문을 넣는 것이라면, 시스템이 자동으로 구매 주문서를 생성하고 재고 관리자의 원클릭 승인을 위해 대기열에 넣을 수 있습니다. 이를 통해 의사결정에는 사람이 관여하면서 주문 생성의 수작업을 제거합니다.
수천 개의 SKU를 운영하는 이커머스 리테일러의 경우, 수동 재고 모니터링은 단순히 확장이 불가능합니다. 하루에 3,500개의 SKU를 확인하는 사람은 조용히 재고 소진을 향해 가속하고 있는 제품을 필연적으로 놓치게 됩니다. ML 모델은 매시간 모든 SKU를 확인하고, 미묘한 패턴을 포착하며, 주의가 필요한 제품을 표면화합니다. 이 글의 시작에서 언급한 뷰티 리테일러는 예측 모델 배포 후 6개월 이내에 재고 소진율을 8-12%에서 3% 미만으로 줄였으며, 이는 연간 약 $940,000의 매출 회복으로 이어졌습니다.