글로벌 재고는 충분한데, 왜 품절이 나는가 — 멀티 창고 시대의 재고·수요 예측
숫자만 보면 그렇습니다. 그런데 같은 시점, 이 브랜드의 대시보드는 전혀 다른 이야기를 하고 있었습니다.

"글로벌 전체 재고 4만 6천 개면 넉넉한 거 아닌가요?"
숫자만 보면 그렇습니다. 그런데 같은 시점, 이 브랜드의 대시보드는 전혀 다른 이야기를 하고 있었습니다.
한 해외 창고에는 베스트셀러 재고가 86일치 묶여 있는데, 다른 창고는 6일 뒤 품절이 예정되어 있었습니다. 합계로는 "충분"인데, 실제로는 과잉과 품절이 동시에 벌어지고 있는 것입니다.
국내 단일 창고에서 자사몰만 운영할 때는 "현재고 vs 안전재고" 하나로 충분했습니다. 하지만 해외 노드를 하나둘 추가하고, 운임 절감을 위해 항공에서 해상 운송으로 전환하고, 마켓플레이스 채널이 늘어나는 순간 — 재고 관리의 난이도는 선형이 아니라 곱셈으로 올라갑니다.
이 글은 글로벌 멀티 창고를 운영하는 한 D2C 브랜드의 실제 컨설팅 케이스를 바탕으로, 단순 안전재고 공식을 넘어서는 3단계 재고·수요 예측 모델 — ① ADI 수요 진단, ② DDMRP 기반 NFP·버퍼 발주, ③ DAF 동적 조정 — 을 정리합니다.
이전 글 "재고가 얼마나 남았는지는 아는데, 언제 발주해야 하는지는 모르는 브랜드에게"에서 다룬 안전재고·ROP·ABC 분석이 재고 관리의 기본기라면, 이 글은 멀티 창고·긴 리드타임·변동성 큰 수요라는 조건이 더해졌을 때의 심화편입니다.
왜 표준 안전재고 공식만으로는 부족해지는가
안전재고 공식(Z × σ × √리드타임)은 하나의 암묵적 전제 위에 서 있습니다. 수요가 꾸준하고 비교적 일정하다는 전제입니다. 이 전제가 깨지는 순간 공식의 신뢰도도 함께 무너집니다.
전제가 깨지는 대표적인 상황들:
-
판매가 매일 일어나지 않는 상품. 한 달에 몇 번, 한 번에 수십 개씩 팔리는 상품은 "일별 출고 표준편차"라는 개념 자체가 왜곡됩니다.
-
프로모션 스파이크가 큰 상품. 평시 수요로 계산한 버퍼는 프로모션 한 번에 무력화됩니다.
-
리드타임이 몇 주 단위인 해상 운송. 리드타임이 길어질수록 √리드타임 항이 커져 안전재고가 비대해지고, 그 사이 "운송 중 재고"라는 새 변수가 생깁니다.
-
창고가 여러 개. 전사 합계 기준 안전재고는 의미가 없어지고, 창고 단위로 쪼개는 순간 "어느 창고에 얼마를 배분할 것인가"라는 새 문제가 열립니다.
또 하나 중요한 관찰이 있습니다. 상품의 물성에 따라 참고해야 할 재고 운영 방법론 자체가 다르다는 점입니다.
| 구분 | 소모품형 상품 (예: 화장품·식품) | 내구재형 상품 (예: 전자기기·디바이스) |
|---|---|---|
| 유통기한 | 있음 — 소진 압박 존재 | 없음 — 장기 보관 가능 |
| 단가·회전 | 저단가·고회전 | 고단가·저회전 |
| 수요 패턴 | 대체로 꾸준(Smooth) | 변동·간헐 혼재, 프로모션 스파이크 큼 |
| 부자재 | 비중 작음 | 노즐·필터·어댑터 등 간헐 수요 다수 |
| 운송 | 항공 비중 높음 | 해상 전환 적합 — 파이프라인 버퍼 활용 |
내구재형 상품을 운영하는 브랜드가 소모품형 벤치마크(고회전 전제의 재고 지표)를 그대로 가져다 쓰면 판단이 어긋납니다. 이 케이스에서도 동종 업계 데이터가 거의 없어, 오히려 전자기기(휴대폰·태블릿) 재고 운영 방법론을 레퍼런스로 삼는 것이 더 정확했습니다.
그래서 첫 단계는 발주 계산이 아니라, 우리 SKU들의 수요가 어떤 성격인지부터 진단하는 것입니다.
1단계. 수요 진단 — ADI × CV²로 SKU를 4가지 유형으로 나눈다
수요 예측 학계에서 널리 쓰이는 Syntetos–Boylan 분류는 SKU의 수요를 두 축으로 진단합니다.
이 두 축으로 사분면을 그리면 모든 SKU가 4가지 유형 중 하나에 떨어집니다.
| 유형 | 특성 | 대응 전략 |
|---|---|---|
| Smooth | 꾸준하고 일정 — 베스트셀러 본품 | 표준 안전재고 공식이 잘 작동하는 유일한 구간 |
| Erratic | 자주 팔리지만 수량 변동이 큼 | 변동성 버퍼 가중 — Red 안전분을 두껍게 |
| Lumpy | 드물게, 크게 팔림 — 한정판·기프트세트 | 통계 버퍼보다 프로모션·시즌 계획(DAF) 중심 대응 |
| Intermittent | 간헐적 소량 — 부자재·부속품 | 예측 모델 대상에서 제외, 별도 단순 룰로 관리 |
이 분류가 중요한 이유는 하나입니다. 유형이 다르면 같은 공식을 쓰면 안 되기 때문입니다. Smooth SKU에 잘 맞는 안전재고 공식을 Lumpy SKU에 적용하면, 평시에는 과잉재고를, 이벤트 때는 품절을 동시에 만들어냅니다. 반대로 Intermittent 부자재까지 정교한 예측 모델에 넣으면 노이즈만 커집니다 — 과감히 제외하는 것이 정확도를 높입니다.
이 분류, 수기로 하지 않습니다
ADI·CV² 계산에 필요한 것은 SKU별 수요 시계열 — 즉 이미 쌓여 있는 출고 이력입니다. 라플라스는 RPA로 수집되는 입고예정·실입고·발주(PO) 데이터로 SKU별 ADI·CV²를 자동 산출하고 4유형으로 자동 태깅합니다. 임계값(1.32 / 0.49), 집계 기간(주간/월간), SKU별 수동 오버라이드는 관리화면에서 직접 제어할 수 있습니다 — 학술 표준값으로 시작하되, 우리 브랜드 데이터에 맞게 조정하는 구조입니다.
2단계. 발주 모델 — 현재고가 아니라 NFP로 판단한다
멀티 창고·긴 리드타임 환경에서 "현재고"는 발주 판단 기준으로 부적합합니다. 창고에 있는 재고 중 일부는 이미 주문에 묶여 있고, 바다 위에는 몇 주 뒤 도착할 재고가 떠 있기 때문입니다. 그래서 DDMRP(Demand Driven MRP) 방법론은 **NFP(Net Flow Position)**라는 합성 지표로 판단합니다.
말로 풀면: "지금 창고에 있는 것 + 오고 있는 것 − 이미 나가기로 확정된 것". 이 NFP를 SKU별 버퍼 존에 대입해 발주 여부를 판정합니다.
실제 판정은 이렇게 나옵니다
수요 유형이 다른 세 SKU의 같은 날 스냅샷입니다.
| SKU (유형) | 현재고 | 미입고 | 확정수요 | NFP | 판정 | 발주 |
|---|---|---|---|---|---|---|
| SKU A (Smooth) | 1,180 | 2,400 | 920 | 2,660 | 🟢 Green | — |
| SKU B (Lumpy) | 420 | 300 | 230 | 490 | 🟡 Yellow | +390 |
| SKU C (Erratic) | 310 | 0 | 240 | 70 | 🔴 Red | +570 |
주목할 점: 현재고만 보면 SKU B(420개)가 SKU C(310개)보다 여유 있어 보이지만, 미입고와 확정 수요까지 반영한 NFP로는 둘 다 발주 대상이고 C는 긴급 상태입니다. "창고에 몇 개 있나"와 "실질 포지션이 어디인가"는 다른 질문이며, 발주는 후자로 판단해야 합니다.
버퍼 크기를 결정하는 입력들
Red·Yellow·Green 존의 크기는 임의로 정하는 것이 아니라, 세 가지 데이터 입력과 한 가지 정책 입력으로 결정됩니다.
데이터 입력 (자동 수집·산정):
-
발주처 구분 — 같은 출고라도 성격이 다릅니다. 재고 보충(Replenishment)인지, 실제 납기가 존재하는 주문(Order)인지를 AI가 자동 분류하고, 국내/글로벌·B2B/B2C 권역까지 태깅합니다. Order는 허용 납기가 있으므로 품절 방지 버퍼에 직접 반영되고, 사용자는 관리화면에서 구분을 직접 재설정할 수 있습니다.
-
공급 신뢰도 — 발주처가 약속을 지키는 정도를 수치화합니다.
신뢰도가 0.9인 발주처와 0.6인 발주처의 안전분(Red)이 같을 수 없습니다. 신뢰도가 낮을수록 Red를 두껍게 — 이 조정이 자동으로 이뤄집니다.
- 리드타임 — 실제 발주→출고→입고 이력에서 구간별(운송·통관·기타)로 실측합니다. 데이터가 없는 구간은 업계 표준 소요시간으로 시작하되, 이력이 쌓일수록 추정치가 실측치로 대체됩니다.
정책 입력 (사용자 설정):
- 버퍼 프로파일 — 변동성 팩터(수요·공급 변동이 클수록 Red 확대, ADI 유형별 차등)와 리드타임 팩터(리드타임이 길수록 Green 확대). 이전 글의 Z값과 마찬가지로, 이것은 데이터가 아니라 "품절 비용과 재고 비용 중 무엇을 더 경계할 것인가"의 경영 판단이며, 브랜드가 직접 설정하는 다이얼입니다.
3단계. DAF 동적 조정 — 버퍼는 고정값이 아니다
여기까지의 버퍼는 과거 데이터 기반입니다. 문제는 미래에 이미 알고 있는 변화 — 프로모션, 시즌, 신규 채널 오픈 — 는 과거 데이터에 없다는 점입니다. DDMRP는 이것을 DAF(Demand Adjustment Factor)로 해결합니다.
핵심은 마지막 줄입니다. 해상 운송으로 전환해 리드타임이 몇 주가 된 브랜드에게, 프로모션 대응은 "임박해서 항공으로 긁어오기"가 아니라 **"몇 주 전에 버퍼를 미리 키워 배에 실어두기"**여야 합니다. DAF는 그 역산을 시스템이 하게 만드는 장치입니다.
같은 맥락에서 파이프라인(운송 중) 재고의 위상도 달라집니다. 항공에서 해상으로 전환하면 운임은 절감되지만 리드타임이 길어지고, 바다 위에 떠 있는 재고가 상시 존재하게 됩니다. 이것을 "아직 없는 재고"로 취급하면 과발주가 나고, "이미 있는 재고"로 취급하면 결품이 납니다. 정답은 On-Order로 NFP 계산에 정확히 반영하는 것 — 공짜 버퍼도, 무시할 대상도 아닌 관리 대상입니다.
대시보드에서는 이렇게 보인다 — 3가지 운영 화면
모델이 아무리 정교해도, 매일 보는 화면이 없으면 운영에 쓰이지 않습니다. 이 케이스에서 실제로 구성된 세 가지 화면입니다.
① 창고별 DOS 비교 — "합계"가 숨기는 편중을 드러낸다
글 서두의 그 화면입니다. 같은 베스트셀러 SKU의 재고 일수가 창고별로:
이 화면의 가치는 세 가지 의사결정이 한 화면에서 동시에 나온다는 점입니다: ① 과잉 노드의 재고 소진 캠페인, ② 허브→품절 임박 노드 긴급 이송, ③ 차기 발주의 노드별 비중 재배분. 합계 수치만 보던 시절에는 셋 다 보이지 않던 결정들입니다.
② 재고 상태 분해 — Available / Committed / QC Hold
총 재고 46,200개의 실체를 상태별로 쪼개면:
| 상태 | 의미 | 수량 | 비중 |
|---|---|---|---|
| Available | 광고·판매에 실제 쓸 수 있는 재고 | 14,420 | 31.2% |
| Committed | 주문·창고간 이동에 묶인 재고 | 24,880 | 53.8% |
| QC Hold | 입고 검수 대기 | 6,900 | 14.9% |
광고 예산을 태울 수 있는 재고는 전체의 31%뿐이었습니다. 특히 QC Hold 14.9%는 통상 수준(약 7%)의 2배 — 특정 노드의 입고 검수 병목이 다른 노드의 품절 위기를 키우는 연쇄가 이 화면에서 드러났습니다. "재고가 있다"와 "쓸 수 있는 재고가 있다"는 다른 말입니다.
③ 품절 위험도 추이 — 재고 데이터를 광고 운영에 연결한다
판매 속도 × 가용 재고 × 리드타임을 합성한 위험도 지표(0~100)를 창고×SKU 단위로 추적합니다. 한 노드의 주력 SKU 위험도가 7일 만에 14 → 86으로 치솟았을 때, 운영팀은 한 화면에서 세 가지를 일괄 실행했습니다.
-
해당 SKU 광고 일예산 30% 축소 (위험도 임계 초과 시 광고 페이싱 슬로우다운)
-
허브 → 해당 노드 긴급 항공 이송
-
Available 재고 우선 노출 정렬
이것이 이 모델의 종착점입니다. 재고 분석이 물류팀 리포트로 끝나지 않고, 광고·이송·발주라는 실행과 같은 화면에서 동기화되는 것. 품절 상태로 태우는 광고비는 그대로 증발하는 돈인데, 재고 시스템과 광고 시스템이 분리된 조직에서는 이 낭비가 매번 사후에 발견됩니다.
정리 — 단계별 요약
| 단계 | 질문 | 방법 | 산출물 |
|---|---|---|---|
| 1. 수요 진단 | 이 SKU의 수요는 어떤 성격인가 | ADI × CV² 자동 분류 (Syntetos–Boylan) | SKU 4유형 태깅, 예측 대상 확정 |
| 2. 발주 모델 | 언제, 얼마나 발주하는가 | NFP = OH + OO − QD, RGY 버퍼 판정 | SKU별 발주 시점·수량 |
| 3. 동적 조정 | 프로모션·시즌은 어떻게 반영하나 | DAF로 ADU 선반영, 파이프라인 재고 포함 | 이벤트 전 선제 버퍼 상향 |
| 운영 화면 | 매일 무엇을 보는가 | 창고별 DOS · 상태 분해 · 품절 위험도 | 광고·이송·발주 동기화 실행 |
한 줄로 압축하면: 진단(ADI) 없이 계산하지 말고, 계산(NFP)은 현재고가 아닌 포지션으로 하고, 실행은 광고와 같은 화면에서 하라.
우리 브랜드에 적용하려면
이 모델의 원료는 특별한 데이터가 아닙니다. 발주(PO), 입고예정, 실입고, 출고 이력 — 대부분 브랜드의 풀필먼트·WMS에 이미 쌓여 있는 데이터입니다. 라플라스는 이 데이터를 RPA로 자동 수집·표준화하고, 위의 진단·계산·화면을 운영 가능한 형태로 구성합니다.
Step 1. 출고 이력 기반 ADI·CV² 자동 분류 → 우리 SKU 중 Smooth가 몇 %인지부터 확인. Smooth 비중이 낮다면 표준 안전재고 공식에 의존해온 지금까지의 발주가 왜 자꾸 어긋났는지 이 단계에서 설명됩니다.
Step 2. 발주처 구분·공급 신뢰도·리드타임 실측 데이터 정비 — 특히 공급 신뢰도는 대부분 브랜드가 한 번도 수치화해본 적 없는 지표입니다.
Step 3. 버퍼 프로파일(변동성·리드타임 팩터)을 정책으로 확정 — ADI 유형별 차등 적용
Step 4. NFP·RGY 판정을 주간 발주 루틴으로 편입, DAF로 프로모션 캘린더 연동
Step 5. 창고별 DOS·재고 상태·품절 위험도 화면을 광고 운영과 연결
멀티 창고, 해외 진출, 해상 운송 전환 — 이 셋 중 하나라도 해당된다면, "현재고 vs 안전재고" 프레임은 이미 한계에 와 있을 가능성이 높습니다. 재고가 충분한데 품절이 나고 있다면, 문제는 재고량이 아니라 재고를 읽는 프레임입니다.
라플라스와 함께 우리 브랜드의 수요 유형 진단부터 시작해보세요.
방법론 레퍼런스: 수요 유형 분류의 ADI·CV² 임계값(1.32/0.49)은 Syntetos, Boylan & Croston (2005), "On the categorization of demand patterns"에 근거하며, 발주 모델은 DDMRP(Demand Driven MRP) 방법론의 NFP·버퍼 존 개념을 따릅니다.