1. 데이터 수집
- 광주에 위치한 모 개인카페의 실제 데이터를 사용했다. 해당 카페는 2022년 1월부터 현재까지 17개월간 운영되고 있는 1인 카페로, 주로 홀 손님을 중심으로 운영되고 있었다.
- 제공받은 데이터 :
- 일일 영수증 데이터(POS 시스템 제공) + 일일 결제 데이터(VAN사 제공)를 받았다.
결제 데이터에는 간편결제 데이터도 포함되어있는걸까?
: Yes(partly) , 카카오페이카드는 van방식으로 승인이 나는거라서 van데이터에 집계된다. 카카오페이(SQR)키트의 qr방식 결제는 van데이터에 집계가 되지 않는데 해당 카페는 사용하지 않는다. 삼성페이는 아는것 처럼 van데이터에 포함되어 있다. 결론적으로, 간편결제건은 별도의 항목으로 볼 수 없으나 결제 데이터에 포함되어있다.
영수증 데이터와 결제 데이터간의 불일치 발생. 영수증 데이터의 양이 많음. 현금결제라고 보면 될까?
: Yes, 현금영수증 미발행 현금결제건이다. 그리고 사실 pos 데이터보다 더 많은 매출이 발생했다.(+10~%) 주변 가게들, 단골 손님은 장부 등을 통해 계좌이체하는 케이스가 존재한다. POS에 해당 현금결제건을 기입하지 않는(?) 사장님의 개인적인 습관때문에, 현금결제 중 10% 정도는 현재 데이터에 포함되어있지 않은 매출이 발생했다고 봐도 된다고 한다.
2. 데이터 전처리
Challenges
- 환불 데이터 처리 : 오프라인 데이터셋(요식업)엔 환불 데이터의 존재 자체에 대해 자각하지 못했는데.. 0.5~1% 정도 환불 데이터가 존재한다. (주문 변경, 결제 수단 변경으로 유추됨) 따라서 순수한 매출 데이터를 구하기 위해 기주문건과 환불 데이터를 비교하여 제거해주는 전처리가 필요하다. 다운로드 받은 POS 데이터셋엔 어떤 주문에 대한 환불인지가 표기되어있지 않았다. → 환불 데이터는 해당 날짜에 같은 결제액과 상세 주문값이 같은 기준으로 삭제 처리를 우선 진행했다.
- 시간 불일치 : 결제 데이터와 영수증 데이터 간의 시간단위가 초단위까지 일치하지 않았다. VAN사 승인 시간 때문에 POS 데이터 대비 VAN사의 결제 데이터가 일반적으로 3~초 가량 딜레이 발생한다.
- 조인 조건 불명확 : 2가지의 데이터에 대한 정확하게 열의 값이 일치하는 것을 기준으로 JOIN을 할 수 없었다. 앞서 Timestamp의 경우 VAN사 데이터가 승인과정 때문에 시간 격차가 발생한다. 결제액으로 보기에는 부분결제 Case를 고려해야한다. 카드 + 현금으로 결제한 고객의 경우 결제 데이터에는 영수증 데이터보다 액수가 적게 입력되는 경우가 존재할 수 있기 때문이다. → 부분 현금,카드결제 등의 Case가 발생할 수 있어 결제시간 기준으로 +3초 이내에 영수증 이력이 있는 건들끼리 merge를 해준다. (delay고려) 영수증에 모든 매출기록이 있는 것으로 간주하고, 카드결제 내역에 없는 이력은 현금영수증을 신청하지 않은 현금결제 이력으로 본다. merge 해준 이후 영수증의 금액과 결제금액이 다른 경우는 수기 확인했다. 이런 경우가 수월했던 이유는 초 단위로 주문 건수가 들어올 정도로 바쁜 매장이 아니기 때문에 가능했다.
데이터 셋 정제
- 오프라인 데이터 특성상 온라인 서비스처럼 고객을 특정할 수 있는 확실한 식별자가 존재하지 않는다. 한국신용데이터 대표님의 언더스탠딩 해당 영상을 참고하여, 개인정보를 침해하지 않는 선에서 개인 식별 용도로 카드 번호를 사용했다. 대표님의 말에 따르면 오차범위가 존재하나, 생각보다 신뢰도가 높다고 한다.
- 다만, 분석을 진행한 카페는 현금결제(계좌이체 포함) 비중도 꽤 높은 편이라(전체 매출의 20%~), 이러한 점을 고려할 때 스포카 같은 매장용 CRM툴이 있으면 더 정밀한 리텐션 분석이 가능할 것 같다.
3. Data Schema
Share article