쉽게 말하면, 창고에 지금은 없지만 일주일 후에 들어올 물건을 "지금 주문받는" 방식이다. 고객한테는 "배송이 조금 늦어지는 대신 품절 없이 살 수 있어요"라고 알려주는 거다. 물류 시스템 적으로는 매우 훌륭한 결정이었다. 창고에 물건 쌓아둘 필요가 없으니 비용도 줄고, 그 공간에 다른 신상품도 넣을 수 있으니까.
그런데 누군가 물었다.
"근데 배송이 늦어지면 손님들이 안 사지 않을까요? 실제로 이게 도움이 된 건가요?"
나는 이렇게 생각했다.
가상재고의 순이득은 결국 이 두 가지를 더한 거 아닐까?
1. (+)가상재고로 판 물건들의 매출
2. (+)비워진 창고 공간에 다른 물건 넣어서 번 돈
3. (-) 가상재고 도입을 통해 배송이 늦어저셔 일어나지 않은 매출
간단해 보였다. 계산만 하면 되는 거 아닌가?
문제는 "배송이 늦어지면 고객이 얼마나 포기하는가?"를 어떻게 측정하느냐였다.
커머스 플랫폼에서 보통 고객들은 이런 과정을 거친다:
1. 상품 페이지 본다
2. "배송일 선택"(캘린더) 페이지를 연다
3. 배송일 보고 구매 결정
여기서 힌트를 얻었다.
캘린더를 여는 순간, 시스템은 "가장 빠른 배송 가능일"을 계산한다. 예를 들어 오늘이 10월 1일인데 배송이 10월 8일부터 가능하면 "7일 후 배송"인 거다. 이 "며칠 후 배송 가능한지"를 배송일 단위마다 전환율을 봤다. 당연하게도. 배송이 늦어질수록 사람들이 포기한다는 것을 알수 있었다. 가상재고 도입 전후를 비교하니, 평균 배송일이 늘어났고 전환율은 떨어졌다. 이를 통해 위 3가지 요소를 조합한 가상재고의 매출 영향도를 추론 할수 있었다.
"좋아, 이걸로 손실을 계산하면 되겠네!"
그런데 문제가 생겼다 계산은 했다. "이론적으로는 이 정도 이득이 있을 것 같다"는 결과가 나왔다. 그런데 뭔가 찝찝했다. "근데 실제로 전체 매출이 올랐어? 아니면 내가 착각하는 거야?"
문제 1: 가상재고 상품을 딱 떼서 볼 수가 없다
같은 상품이 어떨 땐 실물 재고로 팔리고, 어떨 땐 가상재고로 팔린다. 고객이 "이건 가상재고 상품이야"라고 알고 보는 게 아니다. 그냥 "배송이 늦네" 정도만 느낀다.
그러니 "가상재고 상품 그룹"을 따로 뽑아서 전후 비교를 할 수가 없다.
문제 2: 다른 것들도 같이 움직였다
가상재고 도입 시점에 우연히: 계절이 바뀌었고, 프로모션도 했고, 신상품도 들어왔다면?
그럼 매출이 올랐다고 해도, 그게 가상재고 덕분인지 프로모션 덕분인지 어떻게 하는가? 단순히 "9월 vs 10월" 매출 비교해서 끝낼 수 없는 거다.
결론: 이론적 계산은 했지만, 실제로 영향을 줬는지는 모르겠다.
AB 테스트를 할 수 없는 상황이었다. "A그룹은 가상재고 있음, B그룹은 없음" 이렇게 나눠서 실험할 수 없으니까. 고민하던 중에 "Causal Inference in Python"이라는 책을 발견했다. 핵심 아이디어는 이거였다:
"적절한 비교 대상을 찾으면, AB 테스트 없이도 인과관계를 알 수 있다"
그래서 이렇게 생각했다:
1.우리 직접판매 상품: 가상재고 도입함. 2.셀러 상품: 가상재고 없음 (비교 대상). 이 두 그룹 모두 똑같이 계절 변화, 프로모션 등의 영향을 받는다. 만약 가상재고가 정말 효과가 있었다면:
도입 전: 두 그룹 모두 비슷한 추세로 매출 움직임
도입 후: 직접판매만 달라짐
이 차이가 순수한 "가상재고 효과"가 되는 거다. 계절성이나 프로모션 영향은? 양쪽 다 똑같이 받으니까 자동으로 상쇄된다.
단, 전제조건이 있다 이 방법이 제대로 작동하려면 "가상재고 도입이 없었다면, 두 그룹이 계속 비슷하게 움직였을 것" 이라는 가정이 맞는지 확인해야 한다. 도입 전 몇 달간 데이터를 보면서 "정말 비슷하게 움직였나?" 체크하는 거다.
이중차분법
성향점수매칭
합성통제법
아직 공부 중이지만, 이 접근법이 내가 막혔던 부분을 풀어줄 것 같다.
물론, 100% 정확한 답은 안 나올 것 같다.
하지만, 이론적 계산으로 "대략 이 정도" Causal Inference로 "실제로 그랬는지" 검증
둘을 합치면 의사결정하기엔 충분할 것 같다.