안전재고는 한 줄의 수식으로 정리됩니다. 서비스 수준의 Z점수 × 수요의 표준편차 × 리드타임의 제곱근. 이 세 가지 숫자를 정확히 잡으면 품절과 과잉 재고가 훨씬 드물어집니다.

2023년 가을, 저는 멤피스 외곽의 3PL 창고를 방문했습니다. 약 200,000제곱피트, 주로 소형 가전제품이었습니다. 그곳의 베스트셀러 전기 히터가 블랙 프라이데이 9일 전에 품절됐습니다. 보충 컨테이너가 아직 해상에 떠 있는 동안 약 $35,000의 매출이 증발했습니다. 선반에는 아무것도 없고, 팔 물건도 없었습니다.

3개월 후, 같은 건물에서 정반대의 광경을 봤습니다. 다른 고객이 회전이 느린 가습기 필터를 9개월치나 쌓아 놓고, 약 50만 달러의 자금이 선반 위에서 먼지를 뒤집어쓰고 있었고, 매달 보관료를 내면서 재고를 줄여 달라고 애원했습니다.

두 관리자 모두 같은 질문을 했습니다. 실제로 얼마나 가져가야 하느냐고요. 제 답은 두 번 모두 같았습니다. 감으로 하지 말고, 계산하세요.

첫 번째 질문: 주문을 몇 건까지 잃어도 괜찮은가

첫 번째 변수는 감당할 수 있는 품절 확률입니다. 통계학자들은 이를 서비스 수준이라 부르며, Z점수로 매핑됩니다.

채우고 싶은 주문 비율 Z점수
90% 1.28
95% 1.65
97.5% 1.96
99% 2.33
99.9% 3.09

여기에는 대부분의 사람들이 실제로 계산해 본 적 없는 트레이드오프가 있습니다. 서비스 수준을 95%에서 99%로 올리면 Z점수가 1.65에서 2.33으로 올라갑니다. 즉 안전재고가 41% 늘어난다는 뜻입니다. 실제 선반에 놓이는 실제 돈이, 충당률 4포인트를 위해 들어갑니다.

그래서 저는 고객들에게 항상 등급을 나누라고 말합니다. A품목(회전 빠른 제품): 95~98%. B품목(꾸준한 판매): 90~95%. C품목(롱테일): 안전재고를 거의 또는 전혀 두지 않기. 99% 서비스 수준을 지키겠다고 C품목 돈까지 쓰는 건 현금을 태우는 일입니다.

평균은 거짓말을 한다. 진실을 말하는 건 표준편차다

두 번째 변수는 수요의 표준편차입니다. 많은 창고가 일평균 판매량으로 안전재고를 계산하는데, 이것이 이 작업 전체에서 가장 큰 함정입니다.

두 SKU를 상상해 보세요. 둘 다 하루 평균 200단위를 팝니다. 하나는 매일 지루하게 190~210단위를 팝니다. 다른 하나는 평소에는 80단위, 프로모션 때는 800단위를 팝니다. 평균은 같습니다. 이 둘이 같은 안전재고를 가져야 할까요? 당연히 아닙니다.

표준편차는 이 널뛰기를 숫자로 바꿔줍니다. 어렵지 않습니다. SKU의 최근 12주 출고 수량을 일별 또는 주별로 추출해서 Excel의 STDEV 함수에 넣으면 됩니다. 데이터가 8주치밖에 없어도 8주로 하세요. 감보다는 낫습니다.

상자가 쌓인 창고 선반, 한 구역이 재고가 부족해 빈 공간이 보이는 모습

또 하나의 함정: 프로모션 주간은 기준선에서 빼세요. 800단위짜리 블랙 프라이데이 주간을 일상 데이터에 섞으면 표준편차가 부풀어 오르고, 평소에는 쓸모없고 피크 때는 여전히 모자라는 안전재고가 됩니다. 제 고객들은 프로모 주간을 따로 표시해 둡니다. 평소 주간은 평소 계산으로, 프로모 2개월 전에 전용 버퍼를 쌓는 겁니다.

리드타임이 진짜 위험한 구간이다

세 번째 변수는 리드타임으로, 수요 데이터와 같은 시간 단위로 잽니다. 수요가 일 단위면 리드타임도 일 단위입니다.

이 공식은 리드타임 자체가 아니라 제곱근을 씁니다. 이것이 많은 사람들의 직관을 배반합니다. 리드타임을 7일에서 28일로 늘리면 — 4배가 되어도 — 안전재고는 2배만 늘어납니다. 불확실성은 누적되지만, 누적 속도는 점점 느려집니다.

계약상 숫자가 아니라 실제 리드타임을 쓰세요. 계약서에는 21일이라 써 있지만 현실은 30일, 피크 시즌에는 40일이 되는 걸 저는 여러 번 봤습니다. 최근 6개월 실제 도착일의 평균을 내세요. 그게 유일하게 유효한 리드타임입니다.

리드타임 자체가 크게 출렁일 때 — 해상 운송이 어떨 때는 2주, 어떨 때는 5주 — 에는 공식의 풀 버전을 쓰세요. 안전재고 = Z x sqrt(L x 수요분산 + 평균수요제곱 x 리드타임분산). 리드타임 변동성을 그대로 반영합니다. 수요는 안정적인데 선박이 불안정한 SKU에는 이 버전이 생명줄이 됩니다.

직접 숫자를 돌려보자

세 가지 입력이 다 있으면 공식은 한 줄입니다.

안전재고 = Z점수 x 수요 표준편차 x sqrt(리드타임)

실제 예로 보겠습니다. 어떤 SKU: 일평균 수요 150단위, 일 수요 표준편차 45단위, 해상 보충 리드타임 14일, 목표 서비스 수준 95%(Z = 1.65).

안전재고 = 1.65 x 45 x sqrt(14), 계산하면 약 1.65 x 45 x 3.74, 대략 278단위입니다.

재주문점 = 일 수요 x 리드타임 + 안전재고 = 150 x 14 + 278 = 2,378단위. 재고가 2,378에 닿으면 주문을 넣으면, 품절은 드문 일이 됩니다.

이 버퍼의 비용은 얼마일까요? 단위 원가 $30이면 278단위가 $8,340의 자금을 묶어둡니다. 연간 8~10%의 자본 비용이면 연 $670~$830의 보유 비용입니다. 9일 품절로 날린 $35,000 매출과 비교해 보세요. 직접 계산해 보세요. 저는 이미 했습니다.

그리고 거꾸로 진단 도구로도 쓸 수 있습니다. 공식이 어떤 SKU의 안전재고가 반년치 판매를 커버한다고 말하면, 입력이 잘못된 겁니다. 프로모 데이터가 표준편차에 섞였거나, 리드타임이 과대 계상됐거나. 공식은 거짓말을 하지 않습니다. 넣는 숫자가 가끔 거짓말을 할 뿐입니다.

월요일 아침 체크리스트

  1. SKU별로 최근 12주 출고 데이터를 추출해 일평균 수요와 표준편차를 계산하기 — Excel STDEV 함수로 5분 작업.
  2. 실제 리드타임 파악하기: 최근 6개월 실제 도착일의 평균. 계약 숫자가 아닙니다.
  3. ABC 등급별 서비스 수준 설정: A품목 95~98%, B품목 90~95%, C품목은 거의 없음.
  4. 공식을 돌려 SKU별 안전재고와 재주문점을 구하고 WMS 보충 파라미터에 기록하기.
  5. 분기별로 검토하기. 피크 2개월 전에 프로모 SKU용 별도 버퍼 쌓기.

안전재고는 신비주의가 아닙니다. 세 가지 숫자의 곱셈입니다. 어려운 건 공식이 아니라 진짜 데이터를 파내는 수고입니다. 어느 아침 시간을 내어 A품목의 세 가지 숫자를 돌려보세요. 품절과 과잉 재고 문제는 최소 절반으로 줄어듭니다.

영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.