쇼핑몰 안전재고 계산법: 품절을 줄이는 재주문 기준 만들기
최근 판매량과 실제 입고 소요일을 이용해 안전재고와 재주문점을 계산하고, 잘 팔리는 옵션부터 품절 위험을 관리하는 실무 절차를 정리합니다.

읽기 전에 핵심만
- 재주문점은 하루 평균 판매량과 실제 입고 소요일에 옵션별 안전재고를 더해 정합니다.
- 처음에는 매출 기여도가 큰 옵션 10개만 골라 주간 기록으로 기준을 조정하세요.
- 재고표와 상품 페이지, 광고 상품 피드의 품절 상태가 같은지 함께 확인해야 합니다.
쇼핑몰의 안전재고는 감으로 정하기보다 하루 평균 판매량 × 여유 일수로 시작하는 편이 낫습니다. 여기에 입고까지 걸리는 수요를 더하면 재주문 기준이 됩니다. 즉, 기본 재주문점은 하루 평균 판매량 × 입고 소요일 + 안전재고입니다. 처음부터 복잡한 예측 모델을 만들 필요는 없습니다. 상품이 아니라 색상·사이즈 같은 옵션 단위로 최근 판매량, 실제 입고일, 현재 판매 가능 수량을 기록하는 것이 먼저입니다.
안전재고와 재주문점은 다른 숫자입니다
안전재고는 납품 지연이나 갑작스러운 주문 증가를 견디기 위한 완충 수량입니다. 재주문점은 새 발주를 넣어야 하는 시점입니다. Oracle의 재고 최적화 문서도 재주문점을 안전재고 + 평균 리드타임 × 하루 평균 수요로 계산합니다.[2]
기본식
>
안전재고 = 하루 평균 판매량 × 여유 일수
재주문점 = 하루 평균 판매량 × 실제 입고 소요일 + 안전재고
예를 들어 최근 28일 동안 한 옵션이 84개 팔렸다면 하루 평균은 3개입니다. 발주 후 입고까지 보통 5일이 걸리고, 이틀의 여유를 두고 싶다면 안전재고는 6개입니다. 재주문점은 3 × 5 + 6 = 21개가 됩니다. 현재 판매 가능한 수량이 21개 이하로 내려가면 발주를 검토합니다. 이 수치는 이해를 돕기 위한 예시이며, 실제 기준은 취소·반품과 성수기 변동을 반영해 조정해야 합니다.
계산 전에 옵션별 재고표부터 정리합니다
상품 전체 수량만 보면 특정 색상이나 사이즈의 품절을 놓치기 쉽습니다. 재고표의 한 행을 옵션 하나로 두고 아래 항목을 기록하세요.
| 항목 | 기록할 값 | 확인 이유 |
|---|---|---|
| 옵션 식별값 | SKU 또는 내부 코드 | 비슷한 옵션을 섞지 않기 위해 |
| 최근 판매량 | 최근 28일 판매 수량 | 하루 평균 판매량 계산 |
| 현재 판매 가능 수량 | 주문에 배정되지 않은 수량 | 실제로 더 팔 수 있는 수량 확인 |
| 입고 소요일 | 발주일부터 검수 완료일까지 | 공급처 지연까지 반영 |
| 미입고 발주량 | 주문했지만 아직 받지 못한 수량 | 중복 발주 방지 |
| 다음 행사 일정 | 할인·라이브·광고 시작일 | 평소보다 큰 수요에 대비 |
Shopify의 재고 보고서도 판매량과 남은 재고를 이용해 판매 소진율과 재고 잔여 일수를 봅니다. 잔여 일수는 남은 수량을 기간 중 하루 평균 판매량으로 나눈 값입니다.[1] 어떤 쇼핑몰 도구를 쓰든 같은 두 숫자, 즉 얼마나 팔리는지와 얼마나 남았는지를 먼저 맞춰야 합니다.
재주문 기준은 네 단계로 운영합니다
- 하루 평균 판매량을 구합니다. 최근 28일 판매량을 28로 나눕니다. 품절 기간이 길었다면 그 날짜를 그대로 포함하지 말고 실제 판매 가능했던 날짜를 따로 기록합니다.
- 실제 입고 소요일을 잽니다. 공급처가 말한 출고일이 아니라 발주, 배송, 검수, 판매 가능 처리까지 걸린 날짜를 사용합니다. 최근 입고가 여러 번 있었다면 평균과 최장 소요일을 함께 남깁니다.
- 여유 일수를 정합니다. 잘 팔리고 대체하기 어려운 옵션에는 더 긴 여유를 두고, 느리게 팔리는 옵션은 짧게 둡니다. 모든 상품에 같은 안전재고를 넣으면 재고금액만 커질 수 있습니다.
- 재주문점을 매주 갱신합니다. 판매 속도나 입고 소요일이 달라졌는데 기준을 그대로 두면 계산표는 금방 낡습니다. 행사 전후에는 평소 주간 점검과 별도로 다시 계산합니다.
Oracle 문서는 수요 이력뿐 아니라 입고 이력에서 평균 리드타임과 변동을 계산하고, 계절 상품은 이전의 대응 기간을 별도로 사용한다고 설명합니다.[2] 작은 쇼핑몰이라면 통계 모델을 그대로 구현하기보다, 평상시와 행사 기간을 나누어 기록하는 것부터 시작해도 충분합니다.
모든 상품을 같은 강도로 관리하지 않습니다

판매 기여도가 큰 옵션, 대체가 어려운 옵션, 입고가 오래 걸리는 옵션부터 봐야 합니다. Shopify의 ABC 분석은 매출 기여도에 따라 상품을 나누고, 상위 등급 상품의 재고를 더 일찍 보충하는 판단에 쓰입니다.[1]
다음 조건에 해당하면 우선 관리 목록에 올리세요.
- 최근 28일 판매량이 상위권인 옵션
- 입고 소요일의 편차가 큰 옵션
- 한 번 품절되면 대체 옵션으로 이동하기 어려운 상품
- 광고나 행사에 직접 연결된 대표 상품
- 예약판매나 주문 후 입고가 잦은 상품
반대로 판매가 느린 옵션은 안전재고를 늘리기 전에 묶음 판매, 발주 주기 연장, 판매 종료 여부를 검토합니다. 품절을 한 건도 만들지 않겠다는 목표는 재고 비용을 과도하게 늘릴 수 있습니다.
재고 숫자와 상품 페이지 표시를 맞춥니다
재주문 계산이 맞아도 쇼핑몰 화면, 광고 상품 피드, 결제 단계의 재고 상태가 서로 다르면 주문 취소가 생길 수 있습니다. Google Merchant Center는 상품 데이터의 재고 상태가 상품 페이지와 일치해야 한다고 안내합니다. 주문을 받지 않는 품절 상품은 out_of_stock, 현재 재고는 없지만 주문을 받고 입고 후 발송할 상품은 backorder로 구분하며, 후자의 경우 발송 가능일을 함께 제공해야 합니다.[3]
주 1회 아래 항목을 확인하세요.
- 쇼핑몰 관리자 수량과 실제 보관 수량이 맞는가
- 옵션별 품절 표시와 구매 버튼 상태가 일치하는가
- 외부 광고·쇼핑 채널의 재고 상태가 갱신되는가
- 예약판매·입고지연 상품에 예상 발송일이 보이는가
- 취소·반품 수량이 자동으로 판매 가능 재고에 섞이지 않는가
여러 판매 채널의 재고를 한곳에서 맞추기 어렵다면 POEMORA 자동화 서비스처럼 주문·재고 흐름을 연결하는 방법을 검토할 수 있습니다. 자동화보다 먼저 정할 것은 기준입니다. 어떤 수량을 판매 가능 재고로 볼지, 어느 시점에 알림을 보낼지, 누가 발주를 확정할지를 문서로 남겨야 합니다.
첫 주에는 상위 옵션 10개만 계산합니다
처음부터 전 상품을 정리하면 숫자를 입력하다 멈추기 쉽습니다. 최근 매출 기여도가 큰 옵션 10개를 고르고, 28일 판매량과 최근 세 번의 입고 소요일을 적어 보세요. 기본식으로 재주문점을 만든 뒤 일주일 동안 품절, 긴급 발주, 남은 재고를 기록합니다.
계산 결과가 실제보다 자주 늦으면 여유 일수나 입고 소요일을 늘립니다. 반대로 재고가 계속 쌓이면 판매 속도 산정 기간과 안전재고를 낮춥니다. 좋은 재주문 기준은 한 번 정한 숫자가 아니라, 판매와 입고 기록을 보고 고치는 운영 규칙입니다.
자주 묻는 질문
쇼핑몰 안전재고는 며칠치가 적당한가요?
모든 상품에 같은 일수를 적용하지 마세요. 최근 판매 속도, 실제 입고 소요일의 편차, 행사 일정, 대체 가능성을 보고 옵션별로 정하는 편이 낫습니다. 처음에는 상위 옵션에 2~3일의 예시 완충치를 두고 매주 부족과 과잉을 기록해 조정할 수 있습니다.
재주문점과 최소 재고는 같은 뜻인가요?
운영 도구마다 이름은 다를 수 있지만 이 글에서는 구분합니다. 안전재고는 예상 밖의 수요와 지연을 견디는 완충 수량이고, 재주문점은 입고 기간의 예상 수요에 안전재고를 더한 발주 검토 기준입니다.
판매 이력이 적은 신상품은 어떻게 계산하나요?
충분한 이력이 없으므로 유사 상품의 판매 속도와 공급처의 실제 입고 소요일을 임시 기준으로 씁니다. 적은 초도 물량으로 시작하고 매주 기준을 갱신하세요. 신상품 예측값은 확정 수요가 아니라 임시 가정이라고 재고표에 표시하는 것이 좋습니다.
여러 쇼핑몰 채널의 재고가 다르면 무엇부터 고쳐야 하나요?
판매 가능 재고의 정의를 먼저 통일하세요. 주문 배정 수량, 미입고 발주량, 반품 검수 대기 수량을 어느 채널에 언제 반영할지 정한 뒤, 상품 옵션 식별값을 맞추고 동기화 주기와 실패 알림 담당자를 정해야 합니다.

