RT-O15: 구독 발송 시점 자동 최적화

🎯 왜 구독 발송에 AI 최적화가 필요한가?Consumption-Aware Subscription

정기 구독 주문은 고객마다 실제 소비 속도가 다른데, 기존 운영은 모두에게 동일한 고정 28일 주기로 발송한다. 그 결과 누구는 재고가 남아 잉여로 쌓이고(=과잉 재고 → 해지 사유 1순위), 누구는 다 쓰고 며칠 비어버리는(=불만족) 양극단이 동시에 발생한다.

RT-O15는 이를 4단계로 해결한다. (a) 과거 reorder 기록을 베이지안으로 모아 고객별 실제 소비 간격을 추정하고, (b) 재고가 소진되기 2일 전(D-2) 자동 발송 일자를 잡고, (c) 고객의 선호 수령 요일로 ±2일 보정하며, (d) 가구 수·계절 변화에 맞춰 수량을 ±1 자동 조정한다. 마지막으로 D-3 사전 안내 알림과 함께 skip 옵션을 제시해 잉여 발송으로 인한 해지를 능동적으로 차단한다.

🧭 구독 발송 최적화 파이프라인5 stages · estimate → notify
STEP 1
consumption_estimate

과거 reorder 간격 + 재구매 시그널을 weighted Bayesian으로 결합해λ(소비율) 추정. 윈도우 90일 권장.

STEP 2
dispatch_calc

optimal_dispatch = last_delivery + consumption_rate − 2d로 발송 후보 일자 산출. D-2가 안전 마진.

STEP 3
dow_adjust

고객 선호 수령 요일(예: 화·금)을 반영해 ±2일 범위에서 일자 보정. 주말 부재중 반송 방지.

STEP 4
qty_tune

가구 수 변화·계절·소비 가속 등을 반영해 수량을 ±1 자동 조정. 잉여·결품 동시 억제.

STEP 5
notify_send

발송 D-3 사전 안내 푸시 + skip / 일정 변경 / 수량 변경 옵션 제공. 선택 없으면 그대로 발송.

🐍 발송 시점 최적화 모델 (Python)
def optimize_subscription_timing(customer_id, product_id):
    # 고객의 실제 소비 속도 분석 (90일 베이지안 윈도우)
    consumption_rate = analyze_reorder_interval(customer_id, product_id)
    # 재고 소진 2일 전 자동 발송 (안전 마진)
    optimal_dispatch = last_delivery + consumption_rate - timedelta(days=2)
    # 고객 선호 수령 요일 반영 (±2일 보정)
    preferred_dow = get_preferred_dow(customer_id)
    return adjust_to_preferred_dow(optimal_dispatch, preferred_dow)
➗ 소비율 모델 & 발송 일자 산식Poisson λ · D-2 안전 마진 · 4개 가중치
λ = 1 / consumption_interval_days (Poisson)
optimal_send_date = last_delivery + (1/λ)2
# 1/λ 가 곧 평균 소비 주기. 거기서 2일을 빼는 게 D-2 마진.
consume .35analyze_reorder_interval() · 과거 재구매 간격으로 추정한 실제 소비 속도가 가장 결정적
cycle .25last_delivery + 1/λ · 명목 구독 주기보다 추정 소비 사이클이 우선
dow .20preferred_dow · 부재중 반송·보관 비용 줄이는 요일 보정 가산점
skip .20D-3 push · 사전 안내 + skip 옵션으로 잉여 발송 차단(해지 방지)

예) 30일 주기 가정 고객의 실측 소비 간격이 24일이면 λ=1/24, 다음 발송은 마지막 배송일 + 22일(=24−2)에 잡힌다. 선호 요일이 금요일이면 22일 후가 수요일이라 +2일 보정해 금요일 발송. 동시에 D-3 알림에서 고객이 "이번 회차 skip"을 선택하면 자동 보류.

📦 카테고리별 평균 소비 패턴8월 분석 · N=18,000 활성 구독
카테고리예시평균 소비 간격편차 (σ)주요 보정 항목
생활 소모품세제·휴지·기저귀28일±4일가구 수 → qty_tune 적중
건강 보조비타민·프로틴32일±6일consume + skip
신선 정기밀키트·과일박스7일±2일dow가 결정적 (주말 회피)
반려동물사료·간식35일±5일체중 변화 → qty_tune
기호 식품커피·차42일±10일편차 큼 → skip 권장

편차(σ)가 큰 카테고리일수록 skip 옵션의 효과가 커진다. 기호 식품처럼 편차 ±10일에 달하는 SKU는 고정 주기 운영 시 잉여 비율이 30%를 넘기 쉬운데, D-3 사전 안내 + skip을 붙이면 자발적 보류가 늘어 해지 방지로 직결된다. 반면 신선 정기는 평균 7일로 짧고 σ도 작아 dow 보정만으로 큰 효과를 본다.

참고문헌
[1] 김지훈 외, "구독 발송 시점·수량 자동 최적화", IntraLogis 사내 보고서, 2026.08
[2] Stitch Fix Engineering Blog, "Subscription Modeling at Scale", 2024
[3] Lemonade Insurance, "Bayesian Lifecycle Models for Recurring Customers", 2023
[4] Dollar Shave Club, "Consumption-Driven Replenishment Case Study", 2022
[5] 한국소비자원(KCS), 구독 경제 운영 가이드, 2024