일본 EC 재고 계획 — 소량 운영의 수요 읽기

일본 EC에서 소량으로 시작한 셀러가 처음 두 달 안에 거의 반드시 하는 질문이 있다. 「다음 발주는 몇 개로 할까.」 그리고 대개 지난달 판매량을 보고 정한다. 그 숫자에는 결품이었던 날의 0이 섞여 있고, 세일 직전에 미뤄진 구매가 빠져 있고, 창고에 도착한 뒤 팔 수 있게 되기까지의 날짜가 빠져 있다. 이 글은 그 숫자를 발주 수량으로 바꾸는 순서다.

결론 3줄

  • EC 재고 관리의 출발점은 발주량이 아니라 판매 속도다. 하루에 몇 개가 팔리는가를 먼저 구하고, 결품이었던 날은 계산에서 뺀다 — 재고가 없던 날의 판매 0은 수요 0이 아니다. 세일 전후의 이연 수요도 걷어 낸다.
  • 순서는 판매 속도 → 리드타임(발주에서 「팔 수 있게 되는 날」까지) → 안전재고 → 발주점 → 발주량이다. 발주량은 「목표 커버 일수 × 판매 속도 − 현재고 − 입고 예정」으로 나오고, 커버 일수의 위쪽은 창고의 보충 한도와 보관 비용이 막는다.
  • 소량 운영에서 가장 큰 레버는 발주량이 아니라 리드타임의 흔들림이다. 안전재고는 리드타임의 최댓값에 곱으로 반응해서, 재고를 더 쌓는 것보다 흔들림을 줄이는 쪽 — 중간 창고·경로 분산 — 이 대개 싸다.

이 글의 계산 예시는 전부 판매 속도를 1로 둔 가공의 예입니다. 일수와 배수로만 표기했고, 어느 회사의 실제 재고·발주 수량을 옮긴 것이 아닙니다.

3~4주분만 넣었던 셀러 건 — 그 다음에 필요했던 계산

진출 체크리스트에 출점을 도운 회사 한 곳의 첫 물량 이야기를 썼다. 3~4주면 소진될 만큼만 — 상품당 200개 단위 — 운송비가 비싼 항공편으로 넣었고, 목표는 물량으로 단가를 깎는 것이 아니라 이 시장의 전환율 데이터를 얻고 재고 지표를 지키는 것이었다. 그리고 그 대가로 결품 방어가 상시 업무가 됐다고도 썼다.

FBA 글에는 그 건의 다음 장면을 썼다. 입고 지연에 대비하는 다섯 가지 방법, 1회 발주 로트를 90일치 안쪽으로 줄이고 외부 창고를 중간 버퍼로 두는 구조, 잘 팔리는 상품을 먼저 채우는 순서. 그리고 결론 — 많이도 적게도 아니고, 보충 주기를 짧고 확실하게.

두 글에 쓰지 않은 것이 이 글이다. 「3~4주분」과 「90일치 안쪽」 사이에서 실제 발주 수량은 어떻게 나오는가. 여기서도 선을 긋는다. 그 셀러 건의 SKU 수·발주 주기·리드타임 일수, 그리고 그 밖의 어느 회사의 재고 숫자도 이 글에는 없다. 남기는 것은 계산의 순서이고, 숫자는 판매 속도를 1로 둔 가공의 예로만 쓴다.

구조 — 재고 계획의 일곱 단계 (EC在庫計画の手順)

1. 판매 속도를 구한다 — 결품일과 세일을 걷어 낸다

판매 속도는 하루 평균 판매 개수다. 여기까지는 단순한데, 소량 운영의 데이터에는 세 가지 오염이 섞여 있다.

  • 결품일의 0 — 재고가 없던 날은 팔 수 없었을 뿐, 사려던 사람이 없었던 것이 아니다. 결품일을 분모에서 빼고 판매가 가능했던 날로만 나눈다. KPI 리포트 글에서 전환율 하락의 원인이 재고일 수 있다고 쓴 것과 같은 이야기를 수요 쪽에서 본 것이다
  • 세일 회차 — 세일 주간의 판매는 평소 속도가 아니다. 그리고 판촉 캘린더 글에 쓴 대로 세일 직전은 대기 수요로 가라앉고 직후는 반동으로 가라앉는다. 세일 전후 몇 주를 묶어서 따로 빼고, 평소 속도는 나머지 기간으로 구한다
  • 첫 4주 — 출시 직후의 판매는 속도가 아니라 가설이다. 노출·리뷰· 순위가 아직 자리 잡지 않았다. 앞에 쓴 셀러 건이 첫 물량을 「확인용」으로 정의한 이유가 여기 있다 — 첫 4주의 숫자는 다음 발주의 근거가 아니라 두 번째 발주의 가설로 쓴다

그리고 평균만이 아니라 흔들림을 같이 적는다. 가장 많이 팔린 주의 하루 평균이 얼마였는가 — 이 최댓값이 3단계에서 쓰인다.

가공의 예: 평소 판매 속도 = 1(하루 1단위), 가장 많이 팔린 주의 하루 평균 = 1.5.

2. 리드타임을 분해한다 — 「도착」이 아니라 「팔 수 있게 되는 날」까지

리드타임은 발주한 날부터 판매 가능 재고로 반영되는 날까지다. 판촉 캘린더 글의 역산이 같은 기준을 썼다. 분해하면 넷이다.

  • 생산·출하 준비 — 공급처가 물건을 내보낼 수 있게 되기까지
  • 운송 — 해상이냐 항공이냐로 자릿수가 달라지는 구간
  • 통관·국내 배송 — 서류가 어긋나면 여기서 늘어난다
  • 창고 수령 처리 — FBA 글에 쓴 대로 「보냈다」가 아니라 「받아들여졌다」에서 끝나고, 물동량이 몰리는 시기에 밀린다

평균만 적지 말고 최댓값을 같이 적는다. 네 구간 중 어느 것이 흔들렸는지 기록해 두면 5단계에서 줄일 곳이 보인다.

가공의 예: 평균 리드타임 = 20일, 가장 늦었던 회차 = 28일.

3. 안전재고 — 판매와 리드타임의 흔들림을 흡수하는 층

안전재고는 「평소보다 많이 팔리고, 평소보다 늦게 도착하는」 경우를 버티는 몫이다. 통계식도 있지만, 데이터가 몇 달치밖에 없는 소량 운영에서는 간이식이 실용적이다.

  • 안전재고 = (최대 판매 속도 × 최대 리드타임) − (평균 판매 속도 × 평균 리드타임)

가공의 예로 넣으면 (1.5 × 28) − (1 × 20) = 22일분이다. 평소 판매 속도로 22일 동안 팔 수 있는 양이 「흔들림 보험」으로 늘 창고에 있어야 한다는 뜻이다.

이 식에서 중요한 것은 계산이 아니라 구조다. 리드타임의 최댓값이 판매 속도의 최댓값과 곱해져 들어간다. 판매가 조금 더 흔들리는 것보다 리드타임이 며칠 더 늦어지는 쪽이 안전재고를 크게 밀어 올린다. 이것이 결론 셋째 줄의 근거다.

4. 발주점 — 「지금 발주해야 하는 재고 수준」

발주점은 재고가 그 아래로 내려가면 발주를 넣어야 하는 선이다.

  • 발주점 = 평균 판매 속도 × 평균 리드타임 + 안전재고

가공의 예: 1 × 20 + 22 = 42일분. 재고가 평소 판매 속도로 42일분 아래로 내려간 날이 발주일이다. 이 선을 SKU마다 두면 「이번 주에 무엇을 발주해야 하는가」가 감이 아니라 목록으로 나온다.

여기서 소량 운영의 긴장이 보인다. 이 가공의 예(발주점 42일분)에 3~4주분 물량을 넣으면, 입고한 날 이미 발주점 아래에 있다. 즉 소량 운영은 「입고와 동시에 다음 발주」가 기본 리듬이 되고, 그래서 결품 방어가 상시 업무가 된다. 그 리듬을 버틸 수 없다면 물량을 늘리는 것이 아니라 리드타임을 줄이는 쪽(5단계)을 먼저 본다.

5. 리드타임의 흔들림을 줄인다 — 재고보다 싼 보험

3단계의 식으로 돌아가 보자. 가공의 예에서 가장 늦은 회차를 28일에서 23일로 줄이면 안전재고는 (1.5 × 23) − 20 = 14.5일분이 된다. 판매는 그대로인데 창고에 늘 있어야 하는 양이 3분의 1 넘게 줄었다. 재고를 더 쌓아서 같은 효과를 내려면 그만큼의 보관 비용과 현금이 묶인다.

흔들림을 줄이는 수단은 FBA 글의 입고 지연 대응 다섯 가지가 그대로다 — 버퍼 일수, 납품 시기 조정, 통제할 수 있는 중간 창고, 여러 창고로 분할, 성수기 마감 단위 관리. 이 글의 관점에서 다시 분류하면, 이것들은 전부 리드타임의 최댓값을 평균 쪽으로 끌어오는 장치다. 특히 중간 창고는 멀리서 길게 사 오되 판매 창고에는 짧게 넣는 구조라, 판매 창고 기준의 리드타임을 짧고 고르게 만든다.

운송 수단의 선택도 같은 계산 위에 있다. 항공은 단가가 높지만 리드타임이 짧고 덜 흔들린다. 운송비의 차이를 안전재고의 차이(보관 비용·묶이는 현금·결품 확률)와 같은 줄에 놓고 비교하면, 그 셀러 건의 항공 선택이 단순한 사치가 아니었다는 것이 보인다.

6. 발주량 — 커버 일수로 정하고, 위쪽은 제약이 막는다

발주점에 닿았으면 몇 개를 넣을지 정한다.

  • 발주량 = 목표 커버 일수 × 판매 속도 − 현재고 − 입고 예정

목표 커버 일수는 「이번 발주로 며칠치를 확보할 것인가」다. 이 숫자를 정하는 것은 판매가 아니라 제약이다.

  • 아래쪽 — 리드타임 + 안전재고. 이보다 짧으면 다음 입고 전에 끊긴다
  • 위쪽 — 보관 비용과 장기재고 비용, 그리고 창고의 보충 한도. FBA 글에 쓴 대로 재고 지표가 나빠지면 넣을 수 있는 양 자체가 좁아진다. 크게 넣는 결정은 「다음에 넣을 수 있는 권리」까지 같이 쓴다. 그 셀러 건이 로트를 90일치 안쪽으로 줄인 것이 이 위쪽 제약에 대한 대응이었다
  • 현금 — 일본까지 들어온 재고는 팔리기 전까지 현금이고, 철수할 때도 비용이다

가공의 예: 목표 커버 60일분, 현재고 40일분, 입고 예정 0 → 발주량 = 60 − 40 = 20일분. 판매 속도가 1이니 실제 수량은 「하루 판매량 × 20」이다.

「입고 예정」을 빼는 것을 잊는 경우가 많다. 발주는 넣었는데 아직 도착하지 않은 물량을 세지 않으면 같은 물량을 두 번 발주한다.

7. 세일 회차는 따로 계산하고, 주 단위로 다시 본다

세일은 평소 판매 속도의 몇 배가 빠지는 회차다. 1단계에서 걷어 낸 세일 데이터가 여기서 쓰인다.

  • 세일 배수 — 지난 같은 회차의 세일 기간 판매 속도 ÷ 평소 판매 속도. 가공의 예: 세일 주간 3배, 직전 1주 0.7배, 직후 1주 0.8배
  • 세일 회차의 필요량 = 평소 필요량 + (세일 기간 일수 × 평소 속도 × (배수 − 1)) − 전후 이연분
  • 발주일은 역산 — 세일일에서 판매 가능 재고화, 리드타임, 안전재고를 거꾸로 올라간다. 일정의 뼈대는 판촉 캘린더 글 에 있다

그리고 이 계산은 한 번 하고 끝나지 않는다. 주 1회, SKU마다 「현재고 ÷ 판매 속도 = 남은 커버 일수」를 본다. 발주점보다 짧은 것은 발주 목록으로, 목표 커버 일수의 두 배를 넘는 것은 과잉 목록으로 보낸다. 과잉 목록의 처리 — 가격·판촉·반출 — 는 FBA 글의 재고 지표 절에 썼다.

함정 — 수요를 잘못 읽는 여섯 가지

함정 1. 결품이었던 달의 판매량으로 다음 발주를 정한다

결품일의 0이 섞인 평균은 실제 수요보다 낮다. 그 숫자로 발주하면 또 결품이 나고, 그 결품이 다시 평균을 끌어내린다. 결품이 결품을 부르는 고리다. 결품일을 분모에서 빼는 것이 이 고리를 끊는 첫 번째 일이다.

함정 2. 리드타임을 「도착일」로 잡는다

창고에 도착한 날과 팔 수 있게 된 날 사이에는 수령 처리가 있고, 그 기간은 성수기에 늘어난다. 도착일 기준으로 짠 발주점은 성수기에만 체계적으로 늦는다 — 가장 비싼 시기에 결품이 난다.

함정 3. 평균만 보고 최댓값을 버린다

평균 판매 속도 × 평균 리드타임으로만 발주점을 잡으면 안전재고가 0이다. 확률적으로 절반의 회차에서 부족하다. 흔들림은 기록해 두지 않으면 계산에 들어갈 수 없다.

함정 4. 결품이 무서워 커버 일수를 늘린다

FBA 글의 함정 4와 같은 이야기를 계산으로 보면 이렇다. 커버 일수를 늘리면 결품 확률은 내려가지만, 보관 비용·장기재고·보충 한도 축소가 위쪽에서 동시에 온다. 결품이 반복된다면 먼저 볼 것은 커버 일수가 아니라 리드타임의 최댓값이다(5단계).

함정 5. 입고 예정을 빼지 않는다

발주는 넣었고 아직 도착하지 않은 물량이 계산에서 빠지면, 같은 부족분에 두 번 발주한다. 소량 운영은 「입고와 동시에 다음 발주」 리듬이라 입고 예정이 늘 걸려 있고, 그래서 이 실수가 더 자주 난다.

함정 6. 세일 주간의 매출로 세일을 평가하고 다음 물량을 정한다

세일 주의 3배만 보면 성공이고, 다음 회차에 물량을 크게 늘리게 된다. 직전·직후의 가라앉음까지 합치면 배수는 그보다 작다. 세일의 수요는 기간 합계로 읽는다. 판매 속도와 공헌이익을 같이 보는 법은 채널 손익 글에 썼다.

여섯 개를 하나로 줄이면

재고 계획은 미래를 맞히는 일이 아니라, 과거 숫자에서 가짜 신호를 걷어 내고 흔들림을 값으로 바꾸는 일이다. 결품일의 0과 세일의 3배를 걷어 내면 판매 속도가 남고, 리드타임의 최댓값을 적어 두면 안전재고가 나온다. 그 다음은 계산이고, 계산이 불편하게 큰 숫자를 내면 줄일 곳은 대개 재고가 아니라 리드타임이다.

정리

  • 판매 속도부터 — 결품일은 분모에서 빼고, 세일 전후는 따로 떼고, 첫 4주는 가설로 둔다
  • 리드타임은 「팔 수 있게 되는 날」까지 — 생산·운송·통관·수령 처리로 분해하고 최댓값을 기록한다
  • 안전재고 = 최대 판매 × 최대 리드타임 − 평균 판매 × 평균 리드타임
  • 발주점 = 평균 판매 × 평균 리드타임 + 안전재고
  • 발주량 = 목표 커버 일수 × 판매 속도 − 현재고 − 입고 예정
  • 커버 일수의 위쪽은 보관 비용·보충 한도·현금이 막는다
  • 소량 운영의 레버는 리드타임의 흔들림 — 중간 창고·경로 분산은 재고보다 싼 보험이다
  • 세일은 배수와 이연으로 따로 계산하고, 주 1회 남은 커버 일수를 본다

SKU별로 채워 넣는 계산 시트는 이 글에 담지 않는다. 이 글이 담는 것은 「어떤 순서로 계산하는가」까지다.

함께 읽으면 좋은 글

댓글 남기기