재고 소진 예측과 안전재고

데이터 · 크롤링4분 읽기

재고 관리에서 진짜 어려운 질문은 "지금 얼마 남았나"가 아니라 "언제 부족해지나" 예요. 현재고만 보면 늦어요. 이미 잡혀 있는 출고 예정 주문을 감안해야 "이 품목은 사흘 뒤면 안전재고 아래로 떨어진다"를 미리 알 수 있죠. 케이터링 식자재 ERP에서 재고 소진 예측을 넣은 이유가 여기 있어요. 전체 그림은 케이터링 식자재 ERP 구축 사례에 있습니다.

재고 소진 예측은 무엇을 계산하나요

재고 소진 예측은 현재고에서 앞으로 나갈 출고 예정 물량을 날짜순으로 빼 나가며, 각 품목이 안전재고 아래로 떨어지는 첫 날짜를 찾는 계산이에요. 케이터링은 주문이 배송일 기준으로 미리 잡혀 있어요. 즉 미래에 어떤 재료가 얼마나 나갈지가 이미 주문 데이터에 들어 있는 거예요. 이 "확정된 미래 수요"를 쓰면 예측이 막연한 추정이 아니라 근거 있는 계산이 돼요.

그래서 우리 예측은 통계 모델이 아니라 결정론적 순산(simulation) 이에요. 오늘 현재고에서 시작해, 출고대기 주문을 배송일 순서로 하나씩 빼 나가면서 재고가 어떻게 변하는지를 날짜별로 그려요.

출고 예정 주문을 미래로 순산하기

핵심은 아직 나가지 않은 출고대기 주문만 미래 수요로 삼는 거예요. 이미 출고완료된 건 재고에 반영됐고, 취소된 건 빼야 하니까요. 주문의 필요 재료는 이미 자재명세서(BOM)로 자동 산출돼 있어서, 각 날짜에 어떤 품목이 얼마나 빠지는지 바로 알 수 있어요.

projected = item.current_stock
pending_orders_by_date.each do |date, qty|
  projected -= qty
  break if projected <= item.min_stock  # 안전재고 도달
end

여기서 안전재고선은 품목의 min_stock 값이에요. 부족 판정 규칙도 이 값으로 통일했어요. 시스템 전체에서 "부족"은 현재고가 안전재고 이하이면서 안전재고 값이 설정된 품목으로 정의돼요.

이 순산을 모든 품목에 대해 돌리면, 품목별 "부족 도달 예상일" 표가 나와요. 이걸 달력에 표시하면 담당자가 "이번 주 목요일에 양파가 바닥난다"를 눈으로 잡을 수 있어요.

예를 들어 어떤 품목의 현재고가 200개이고 안전재고가 50개라고 해볼게요. 앞으로 출고대기 주문이 월요일 60개, 수요일 70개, 금요일 80개로 잡혀 있으면, 순산은 이렇게 흘러가요. 월요일에 200에서 60을 빼 140, 수요일에 70을 더 빼 70, 금요일에 80을 빼면 -10이 돼요. 안전재고 50을 처음 밑도는 시점은 금요일이니, 부족 예상일은 금요일이고 늦어도 수요일까지는 발주가 들어와야 한다는 결론이 나오죠. 담당자는 이 계산을 손으로 하지 않고 결과만 확인해요.

왜 통계 예측이 아니라 순산인가요

재고 예측이라고 하면 흔히 과거 판매 패턴으로 미래를 추정하는 통계 모델을 떠올려요. 하지만 케이터링은 그럴 필요가 적어요. 주문이 배송일 기준으로 미리 확정돼 있어서, 미래 수요가 "추정"이 아니라 "사실"에 가깝거든요. 통계 모델은 데이터가 많고 수요가 불규칙할 때 빛나지만, 확정 주문이 있는 케이터링에서는 오히려 순산이 더 정확하고 설명하기 쉬워요. "왜 이 날 부족한가"를 물으면 "이 주문들 때문"이라고 근거를 바로 댈 수 있으니까요.

물론 갑작스러운 주문이나 취소는 예측을 흔들어요. 그래서 예측을 한 번 계산하고 저장해 두지 않고, 조회할 때마다 그 시점의 출고대기 주문으로 다시 순산해요. 주문이 추가되면 부족 예상일이 앞당겨지고, 취소되면 뒤로 밀려요. 예측이 "지금 이 순간의 주문 상황"을 항상 반영하는 셈이죠. 발주 리드타임이 긴 품목은 이 예상일에서 하루 이틀 앞을 발주 기준으로 잡으면 돼요. 이렇게 예측을 "확정 주문 기반 순산"으로 두면, 담당자는 감으로 발주하던 일을 근거로 발주하는 일로 바꿀 수 있어요. 부족을 닥쳐서 알던 데서, 며칠 전에 미리 보는 데로 넘어가는 거죠. 예측이 맞고 틀리고를 떠나, 언제 무엇이 부족할지를 매일 눈으로 확인할 수 있다는 것만으로도 발주 실수와 급한 조달이 눈에 띄게 줄어요. 재고 소진 예측은 그렇게 재고 관리를 사후 대응에서 사전 대비로 바꿔 놓는 장치예요.

기능

출고 예정 주문으로 재고 소진일을 예측

출고대기 주문을 배송일 순으로 재고에서 빼 나가며 각 품목이 안전재고 아래로 떨어지는 예상일을 계산합니다. 과거 실적과 미래 예상을 한 타임라인에 겹쳐 발주 타이밍을 잡습니다.

재고 소진 예측 화면

숫자 대신 '추이 차트'로 보여주기

부족 예상일을 숫자로만 주면 감이 안 와요. 그래서 품목 상세에는 14일 추이 차트를 넣었어요. 과거 실제 입출고로 그린 실선과, 미래 출고 예정으로 그린 예상선을 한 그래프에 겹치고, 그 위에 안전재고선을 수평으로 그어요. 예상선이 안전재고선과 만나는 지점이 곧 발주해야 할 시점이죠.

재고 추이 예측 차트 화면

재고 추이 예측 차트 화면

재고 부족 목록 화면

재고 부족 목록 화면

이 예측이 정확하려면 입력인 재고가 흔들리면 안 돼요. 그래서 재고 단위 환산으로 현재고를 한 기준으로 통일한 게 예측의 전제였어요. 재고·가격을 상시 모니터링하는 인접 사례는 유통 가격·재고 모니터링에서 볼 수 있어요.

자주 묻는 질문

재고 소진일을 어떻게 예측하나요?

현재고에서 출고대기 주문의 필요 재료를 배송일 순서로 빼 나가면서, 품목별로 안전재고 아래로 떨어지는 첫 날짜를 찾습니다. 확정된 미래 주문을 근거로 삼는 결정론적 순산이라, 통계 추정보다 근거가 분명해요.

안전재고 미달을 미리 알 수 있나요?

네. 안전재고는 품목의 최소 재고값으로 설정하고, 현재고가 그 값 이하로 내려간 품목을 부족 목록으로 모아 보여줍니다. 예측 순산에서는 이 안전재고선에 언제 도달하는지를 계산해 부족 예상일로 알려줘요.

예측이 빗나가면 어떻게 하나요?

예측은 확정된 출고대기 주문을 기준으로 하므로 주문이 바뀌면 예측도 다시 계산됩니다. 추가·취소된 주문이 곧바로 반영되기 때문에, 한 번 계산하고 끝나는 값이 아니라 주문 상황을 따라 계속 갱신되는 값이에요.

#재고소진예측#안전재고#재고부족#수요예측#데이터

업무자동화 구축이 필요하신가요?

무료 상담 신청