---
title: "키퍼 인바운드 '인입' 지표 정합성 검증 — 중복 미제거 과다집계(5월 +11.7%/6월 +15.8%)"
from: claude-code
to: ["jadong"]
project: "keeper-inbound"
date: 2026-06-17T03:01:50.196794+09:00
status: sent
type: report
---

# 키퍼 인바운드 '인입' 지표 정합성 검증 리포트

**작성일** 2026-06-17 · **소스** `Keeper report.xlsx`(구글시트 다운로드, 회의용 대시보드) · **검증** 원천 raw 3종 전수 재계산

---

## BLUF (결론 먼저)

- **현재 대시보드의 '인입'은 전화번호 중복을 제거하지 않는 단순 행(行) 카운트다.** 같은 사람이 N번 문의하면 인입 N으로 집계된다.
- 그 결과 에어테이블 기준 인입이 **5월 +11.7%, 6월 +15.8% 과다집계**됐다(과다폭 증가 추세).
- 분모(인입)가 부풀려져 **전환율(인입→결제)이 실제보다 낮게 표시**된다. 6월 전환율은 **13.2% → 16.3%**로 보정된다(결제 분자 동일, 인입만 정정).
- 시스템은 이미 중복을 **알고 있다** — `[콜]최종결과 = "중복문의"` 라벨과 `전화번호 중복여부` 컬럼이 존재하는데 **인입 수식이 둘 다 무시**한다.

---

## 1. 무엇이 문제인가 — 계산식

대시보드(★ 시트)의 일별 인입 수식:
```
일별 인입 = COUNTIF('raw-airtable'!인입일, 그날)   +   COUNTIF('raw-채널톡'!인입일, 그날)
          = 에어테이블 '행 수'              +   채널톡 '행 수'
```
- 전화번호 기준 중복제거 **없음**.
- `전화번호 중복여부` 컬럼(중복/중복 2회…)이 있는데 **참조 안 함**.
- 에어테이블 행수 + 채널톡 행수 **단순합산** → 양쪽에 모두 있는 리드는 **이중카운트**.

---

## 2. 실측 결과 — 에어테이블 (질문의 핵심: "에어테이블에 꽂힌 고유 리드")

| 기간 | 대시보드 인입(행수) | **실제 고유리드(전화기준)** | 과다집계 | 비고 |
|---|---:|---:|---:|---|
| **5월** | 1,478 | **1,305** | **−173 (11.7%)** | 중복초과 168 + 테스트/이상번호 5 |
| **6월** | 778 | **655** | **−123 (15.8%)** | 중복초과 105 + 테스트/이상번호 18 |

> 5월 에어테이블 행수 1,478은 대시보드의 daily 수식 합계와 **정확히 일치**(검증 기준선). 그 1,478행이 실제로는 **1,305명**이다.

**'문의 건수'와 '인입(사람 수)'은 다른 지표다.**
- 인입(전환 분모) = 고유 전화번호 = **5월 1,305 / 6월 655**
- 문의 건수(콜팀 업무량) = 전체 행수 = 5월 1,478 / 6월 778 ← 이건 따로 보면 됨

---

## 3. 반박 불가 증거 (실제 데이터)

**(a) 시스템이 '중복문의'로 직접 표시한 행을 인입으로 카운트** — 5월 179행, 6월 95행이 `중복문의` 라벨:
| 전화번호 | 이름 | 인입 카운트 | 내역 |
|---|---|---:|---|
| 010-8808-0384 | 김민서 | **5** | 4행이 '중복문의' 표시 |
| 010-8921-0041 | 오석주 | 4 | 3행 '중복문의' |
| 010-4310-3310 | 이혜지 | 4 | 3행 '중복문의' |
| 010-2847-9893 | 윤영수 | 3 | 1행 '결제완료' + 2행 '중복문의' |

**(b) 테스트/가짜 번호가 실 리드로 집계** — `010-1234-5678` 5회, `010-0000-0000` 5회 등.

---

## 4. 전환율 영향 (인입→결제) — 6월이 가장 명확

| | 인입(분모) | 결제 | 전환율 |
|---|---:|---:|---:|
| **6월 대시보드 표시** | 813 | 107 | **13.16%** |
| **6월 보정(중복·이중카운트 제거)** | 655 | 107 | **16.34%** |

> 결제(분자) 107은 동일하다. 인입만 정정해도 전환율이 **3.2%p 상승**한다. = 우리는 실제보다 전환을 못 한다고 착각하고 있었다.

---

## 5. 부수 발견 (인입 외 — #3에서 정리할 항목)

1. **채널톡 무전화 리드** — 5월 채널톡 286건 중 **164건(57%)이 전화번호 없는 웹챗**. 결제·에어테이블과 매칭 불가. 인입에 포함할지 **정책 결정 필요**(첫 행은 한화 내부 테스트 `platform.biz@hanwha.com`).
2. **채널톡 ⊂ 에어테이블** — 6월 채널톡 10개 번호가 전부 에어테이블에도 존재. 단순합산은 구조적 이중카운트.
3. **결제 합계 불일치** — 대시보드 월계 결제 **5월 148** vs 원천 `영원결제='o'` **124** (24건 차이). 대시보드 자체 daily 수식 합계도 124. → 월계 셀에 수동 입력이 섞인 듯. 별도 점검 필요.

---

## 6. 권고 / 다음 단계

| # | 조치 | 상태 |
|---|---|---|
| **즉시** | 인입 수식을 '고유 전화번호 기준'으로 교체 (아래 부록 수식) | 적용 가능 |
| **즉시** | 재실행 스크립트로 매주 자동 검증: `scripts/inwon_dedup_recalc.py` | ✅ 완성 |
| **결정필요** | 채널톡 무전화 웹챗 리드를 인입에 포함할지 운영 정책 | #3 |
| **점검** | 결제 월계 148 vs 124 불일치 원인 / 인입일 부여 프로세스(Apps Script) | #3 |

---

## 부록 A. Google Sheets 수정 수식

**방법 1 — 즉시 1셀 검증 (헬퍼 불필요, 근사치)**
```
=COUNTUNIQUEIFS('raw-airtable'!$B:$B, 'raw-airtable'!$K:$K, ">="&DATE(2026,6,1), 'raw-airtable'!$K:$K, "<="&DATE(2026,6,30))
```
→ 6월 고유 전화번호 수(테스트번호·빈칸 일부 포함되므로 ~정확값+α).

**방법 2 — 생산용 (raw-airtable에 헬퍼 2열 추가, 정밀)**
```
M2 (정규화번호) = IF($B2="","", REGEXREPLACE(SUBSTITUTE(TO_TEXT($B2),"+82","0"),"\D",""))

N2 (유효고유인입) =
 IF( OR($K2="", $M2="", $M2="01012345678", $M2="01000000000",
        REGEXMATCH($M2,"^(\d)\1+$"), LEN($M2)<9, LEN($M2)>11),
     0,
     IF(COUNTIFS($M$2:$M2,$M2, $K$2:$K2,"<>")=1, 1, 0) )
```
대시보드 일별 인입 교체: `COUNTIF(...K..., 날짜)` → `SUMIFS('raw-airtable'!$N:$N, 'raw-airtable'!$K:$K, 날짜)`

채널톡 이중카운트 방지(헬퍼 N): 정규화번호가 **에어테이블에 없고**(`COUNTIF('raw-airtable'!$M:$M, 채널톡_M)=0`) 채널톡 내 첫 등장일 때만 1.

## 부록 B. 검증 방법
- 도구: `keeper-data/scripts/inwon_dedup_recalc.py` (openpyxl 

*(이하 생략 — full report: keeper-data/docs/인입_정합성_검증_리포트_260617.md)*
