재주문점은 주문을 시작하는 신호이고 발주량은 채울 수량이다. 재주문점 100개가 곧 100개 주문을 뜻하지 않는다. 현재고뿐 아니라 미입고 발주와 미납 주문을 반영해 시점과 수량을 따로 계산해야 한다.
먼저 두 질문을 나눠야 한다. 재고가 어느 수준에 닿으면 주문할 것인가, 주문한다면 어디까지 채울 것인가. 앞의 답이 재주문점이고 뒤의 답이 발주량이다. 같은 숫자를 두 질문의 답으로 쓰면 중복 발주나 과잉재고를 알아차리기 어렵다.
재주문점 100개와 발주량 100개는 다르다
일평균 수요 20개, 입고까지 4일, 안전재고 20개인 가상 품목의 재주문점은 20×4+20=100개다. 안전재고 20개는 계산을 설명하기 위해 정한 가정이며 권장값이 아니다.
재고위치가 100개에 도달했을 때 목표 재고위치를 250개로 채우는 정책이라면 발주량은 150개다. 이미 발주한 미입고분과 미납 주문을 반영한 재고위치로 비교해야 같은 물건을 다시 주문하지 않는다. 최소주문수량 등 제약이 있으면 150개 그대로 발주할 수 없는 경우도 있다.
재주문점과 비교할 재고 범위를 먼저 정한다
재고를 계속 확인하는 연속 검토 방식의 기본식은 다음과 같다.
재주문점(ROP) = 평균 일수요 × 평균 리드타임 + 안전재고
평균 일수요와 평균 리드타임을 곱한 값은 다음 입고까지 예상되는 수요다. 안전재고는 수요나 입고 시점이 예상에서 벗어날 때 추가로 버틸 물량이다. Util Monster의 재주문점 설명도 평균 리드타임 수요와 안전재고를 더한 값을 발주 신호로 정의한다.
다만 ROP와 비교할 재고를 장부의 현재고 한 칸으로 정해서는 부족할 수 있다. 가용재고뿐 아니라 이미 주문한 물량, 고객에게 예약한 물량, 검수 중이라 아직 판매할 수 없는 물량을 어떻게 취급할지 정해야 한다. 예를 들어 사업장이 발주 판단 재고 = 가용재고 + 인정할 입고예정재고 − 예약재고 − 판매 불가 재고로 정할 수 있다. 이는 보편적인 재고위치 공식이 아니라 내부 운영 규칙이다. 입고예정분을 언제 인정하고 검수보류분을 언제 풀 것인지까지 고정해야 같은 주문을 거듭 내는 일을 줄일 수 있다.

검토 주기가 다르면 보호 기간도 달라진다
연속 검토에서는 대체로 리드타임 동안의 수요를 보호한다. 반면 매주 특정 요일에만 발주를 검토한다면 다음 검토일까지 기다리는 기간도 고려해야 한다. 수요와 안전재고가 같아도 정기 검토의 발주 기준이 더 높아질 수 있는 이유다.
연속검토와 주기검토를 비교한 국방 보급 연구도 두 방식의 발주 신호와 보호 기간을 구분한다. 다만 군수 환경의 시뮬레이션 결과이므로 효과의 크기를 소매점이나 소규모 제조업에 그대로 옮길 수는 없다. 이 글에서 적용할 수 있는 범위는 검토 방식과 계산식의 전제를 맞춰야 한다는 원칙이다.
정기 검토의 단순한 판단식은 다음과 같이 쓸 수 있다.
보호 기간 = 검토 간격 + 리드타임발주 기준 재고 = 보호 기간의 예상 수요 + 안전재고
평균 일수요가 10개, 평균 리드타임이 4일, 안전재고가 15개라고 하자. 연속 검토 ROP는 10×4+15인 55개다. 7일 간격으로만 검토한다면 단순화한 보호 기간은 11일이고 발주 기준은 10×11+15인 125개가 된다. 125개를 주문하라는 뜻은 아니다. 다음 검토 전에 발생할 수요까지 발주 신호에 반영한 값이다.
55개
125개
최대값 방식과 통계식은 필요한 데이터가 다르다
판매·입고 기록이 짧아 변동을 안정적으로 추정하기 어렵다면 최대 수요와 최대 리드타임을 이용한 방식이 임시 출발점이 될 수 있다. 그러나 최대 수요가 나온 때와 최대 리드타임이 발생한 때가 다르면 두 최대값을 결합한 결과는 관측되지 않은 최악의 조합을 가정한다. 만물툴 계산기 설명도 이런 경우 안전재고가 지나치게 보수적으로 계산될 수 있다고 경고한다. 최대값을 쓸 때는 관측 기간과 판촉·장기 지연 같은 예외 사건을 함께 기록해야 한다.
일별 수요와 실제 입고까지 걸린 시간이 같은 품목과 단위로 충분히 쌓였다면 수요 표준편차와 목표 서비스 수준을 이용하는 방식을 검토할 수 있다. StackCube의 안전재고 안내도 데이터 수준에 따라 최대값 방식과 표준편차 기반 방식을 구분한다. 다만 통계식도 자동으로 정답을 주지는 않는다. 판촉, 계절성, 공급처 변경으로 과거 자료의 대표성이 약해질 수 있고, 일부 식은 수요 분포나 수요와 리드타임의 독립성을 전제로 한다. 서비스 수준은 높을수록 무조건 좋은 값이 아니라 품절 손실과 보유·폐기·진부화 비용을 비교해 정할 변수다. 검토 근거에는 이 비용을 서비스 수준으로 바꾸는 정량 기준이 없으므로 품목별 목표값은 별도 경영 판단으로 남는다.
발주량은 목표재고에서 별도로 계산한다
발주 판단 재고가 기준 이하라면 그때 주문량을 계산한다. 목표 수준까지 채우는 단순 규칙은 다음과 같다.
발주량 = 목표재고 − 발주 판단 재고
정기 검토의 목표재고에는 검토 간격과 리드타임의 예상 수요, 안전재고를 반영할 수 있다. 연속 검토라면 주문량 정책을 별도로 정하므로 검토 간격을 일률적으로 더하지 않는다. 계산 결과가 최소주문수량(MOQ)보다 작아도 공급자가 MOQ를 요구하면 그 수량을 주문해야 할 수 있다. 이때 목표재고를 얼마나 초과하는지 기록해야 과잉재고 비용을 확인할 수 있다.
분할입고 가능 여부, 검수 기간, 유통기한과 진부화 위험도 주문량을 바꾸는 조건이다. 스톡업의 발주 관리 설명처럼 저회전 품목을 고회전 품목과 같은 자동 발주 규칙에 넣으면 과잉재고가 커질 수 있다. 검토 근거에는 저회전 품목을 가르는 정량 기준이 없으므로 회전율·폐기 위험에 따른 예외 기준은 사업장이 따로 정해야 한다.
발주를 확정하기 전과 변경 뒤에 다시 보는 항목
ROP 미달은 조달을 검토할 신호다. 발주서를 확정하기 전에는 기준 시각을 적고, 가용재고·인정한 입고예정재고·예약재고·판매 불가 재고를 앞에서 정한 같은 규칙으로 다시 합산한다. 그 결과를 목표재고, MOQ, 발주 단위와 함께 남기면 신호가 난 시점의 숫자와 실제 발주 수량이 왜 다른지 나중에도 확인할 수 있다.
발주 후보나 조달 제안을 만든 뒤 반품, 예약 취소, 입고 수량·일정 변경처럼 재고 위치를 바꾸는 일이 생길 수도 있다. 이때는 새로 계산한 재고 위치가 목표재고를 넘는지 먼저 확인하고, 아직 확정하지 않은 제안은 보류·수정할지 검토한다. 이미 공급자에게 보낸 주문은 자동으로 없애지 말고 취소 가능 시점, 수수료, 승인 절차를 확인한다. SAP의 재주문점 계획 절차도 계획 입고가 더는 필요하지 않을 때 구매 또는 생산 부서가 취소 가능 여부를 점검하도록 구분한다.

계산 전에 고정할 다섯 가지 규칙
- 판매·발주·입고 기록의 단위를 낱개, 박스, 세트 중 하나로 통일한다.
- 연속 검토와 정기 검토 중 실제 운영 방식을 정하고 보호 기간에 반영한다.
- 가용·입고예정·예약·검수보류 물량을 발주 판단 재고에 넣는 기준을 문서화한다.
- 기록이 부족해 최대값을 쓴다면 관측 기간과 예외 사건을 표시한다. 데이터가 쌓인 뒤에는 수요와 리드타임의 변동을 다시 평가한다.
- ROP는 발주 여부를 판단하는 데 쓰고, 목표재고·MOQ·유통 위험을 반영해 발주량을 따로 계산한다.
안전재고를 현재고로 보거나 ROP를 한 번에 주문할 수량으로 쓰면 계산식은 남아도 운영 기준은 흐려진다. 기록 단위, 검토 방식, 발주 판단에 포함할 재고를 먼저 정해야 한다. 이후 ROP로 주문 시점을 판단하고 목표재고와 제약조건으로 수량을 계산하면 두 숫자의 역할이 분명해진다. WeaveJam의 재주문점 안내가 수요와 리드타임이 함께 변할 때 별도의 안전재고 식을 구분하는 것도 계산 전제를 먼저 확인해야 한다는 점을 보여준다.