수익 개선을 위한 실천 방안
취소 후원자 중 후원자 센터를 거치지 않는 24.5%의 후원자에 대한 관리가 필요
취소 인바운드가 몰리는 시간대에 대기 인원 최소화
비숙련 사용자의 취소전화 응대 교육 실시
취소 데이터 불러오기
## Rows: 147
## Columns: 12
## $ sourcecode <chr> "LLF", "LLF", "FIN", "FIN", "ODP", "ODP", "ODP…
## $ canceldate <dttm> 2023-12-04, 2023-12-29, 2023-12-28, 2023-12-2…
## $ cancelcode <chr> "C7", "C1", "C1", "C1", "C24", "C7", "C24", "C…
## $ cancelreasondescription <chr> "Financial constraints", "Not using credit car…
## $ serialno <chr> "DR002291", "DR002383", "FF005626", "FF006553"…
## $ bank <chr> "KFTC", "KFTC", "KFTC", "KFTC", "KFTC", "KFTC"…
## $ frequency <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "…
## $ donationamount <dbl> 10000, 20000, 10000, 10000, 15000, 15000, 1500…
## $ dob <dttm> 1988-02-27, 1961-11-14, 2003-12-26, 1941-02-1…
## $ gender <chr> "Female", "Male", "Male", "Female", "Female", …
## $ firstdeduction <dttm> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ totalcollected <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2…
불러온 취소 후원자 데이터로 취소 코드별 비중을 나타내고 2% 이상의
데이터만 표와 시각화로 구현
| cancelcode | cancelreasondescription | count | perc |
|---|---|---|---|
| C7 | Financial constraints | 43 | 29.25 |
| C1 | Not using credit card / Auto debit account anymore | 39 | 26.53 |
| C24 | Donor refuse to provide reason | 30 | 20.41 |
| C5 | Stop at 12 months / signed up for 1 year only | 11 | 7.48 |
| C22 | Unemployed | 8 | 5.44 |
| C3 | Donation to other charity | 5 | 3.40 |
| C13 | Signed up for a few months only | 4 | 2.72 |
취소코드 중 약 76%를 상위 3개의 코드가 차지 하고 있으며 그중 “C1”코드는 후원자 관리 센터를 거치지 않고 취소가 이루어지고 있어 해당 코드에 대한 관리가 필요해 보이며
전체 후원자로 확대한다면 취소 후원자 100명 중 26명에 대하여 평균 취소
방어율 30% 적용시 7~8명에 대한 후원자 이탈을 막을 수 있다.
또한,
해당 코드 자체는 계좌를 사용하지 않는 코드이므로 취소를 위해 연락하는
후원자보다 더 높은 취소방어율을 기대 해 볼수 있을것이다.
후원자 관리센터 데이터 불러오기
## Rows: 2,019
## Columns: 5
## $ serialno <chr> "DR002378", "FF001712", "DR001102", "FF002298", "FF005250…
## $ user <chr> "yonggi.yeom@sgsupport.com", "sangok.oh@sgsupport.com", "…
## $ `task group` <chr> "Inbound", "Inbound", "Inbound", "Upgrade 12M", "Inbound"…
## $ date <date> 2024-01-08, 2024-01-08, 2024-01-02, 2024-01-02, 2023-12-…
## $ time <Period> 14H 8M 18S, 12H 49M 34S, 9H 54M 27S, 9H 45M 47S, 17H 1…
| task group | n | perc |
|---|---|---|
| Inbound | 628 | 31.10 |
| Upgrade 12M | 361 | 17.88 |
| 긴급 구호 TM | 241 | 11.94 |
| WebAccess | 217 | 10.75 |
| 2M DNH | 136 | 6.74 |
| Reactivation 12M Cancelled | 107 | 5.30 |
| Fix NDNH | 88 | 4.36 |
| OUTBOUND | 83 | 4.11 |
후원자 관리 센터로 들어오는 전화 중 30% 이상이 인바운드이며 앞선
c1 코드의 테스크 명인 “WebAccess”도 10% 정도로 확인 할수 있다
관리센터 데이터와 취소 데이터 병합
can_call <- can_sel %>% left_join(call_sel, by = "serialno")
## Rows: 147
## Columns: 16
## $ sourcecode <chr> "LLF", "LLF", "FIN", "FIN", "ODP", "ODP", "ODP…
## $ canceldate <dttm> 2023-12-04, 2023-12-29, 2023-12-28, 2023-12-2…
## $ cancelcode <chr> "C7", "C1", "C1", "C1", "C24", "C7", "C24", "C…
## $ cancelreasondescription <chr> "Financial constraints", "Not using credit car…
## $ serialno <chr> "DR002291", "DR002383", "FF005626", "FF006553"…
## $ bank <chr> "KFTC", "KFTC", "KFTC", "KFTC", "KFTC", "KFTC"…
## $ frequency <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "…
## $ donationamount <dbl> 10000, 20000, 10000, 10000, 15000, 15000, 1500…
## $ dob <dttm> 1988-02-27, 1961-11-14, 2003-12-26, 1941-02-1…
## $ gender <chr> "Female", "Male", "Male", "Female", "Female", …
## $ firstdeduction <dttm> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ totalcollected <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2…
## $ user <chr> "jaeim.jung@sgsupport.com", "yonggi.yeom@sgsup…
## $ `task group` <chr> "Inbound", "WebAccess", "WebAccess", "WebAcces…
## $ date <date> 2023-12-04, 2023-12-29, 2023-12-28, 2023-12-2…
## $ time <Period> 11H 54M 6S, 13H 34M 2S, 15H 19M 29S, 12H 50…
| task.group | count | perc | avg_h | avg_m |
|---|---|---|---|---|
| Inbound | 59 | 40.14 | 12.0 | 29.0 |
| WebAccess | 36 | 24.49 | 13.5 | 25.5 |
| OUTBOUND | 11 | 7.48 | 16.0 | 34.0 |
| Upgrade 12M | 9 | 6.12 | 11.0 | 27.0 |
구성된 데이터 마트로 확인한 결과 전체 취소경로의 40% 이상이 인바운드로 들어오고
있음을 확인할 수 있다.
| cancelreasondescription | mean_amount | avg_h | avg_m |
|---|---|---|---|
| Donor refuse to provide reason | 17500.00 | 15 | 29 |
| Financial constraints | 13906.98 | 13 | 26 |
단순 취소 코드의 평균 인입 시간대는 13~ 15시 30분경으로 해당 시간대에
인바운드 투입인원을 취소화하여
인입량을 줄이는 방법도 실험이 필요해
보인다
인입 테스크 전화 종료 사유 확인
## Rows: 2,377
## Columns: 9
## $ serialno <chr> "CI000009", "IM000214", "SR000000000000000098", "SR…
## $ `source code` <chr> "CONV", "ETC", "ETC", "ETC", "ETC", "ETC", "ETC", "…
## $ user <chr> "jihye.kim@sgsupport.com", "sangok.oh@sgsupport.com…
## $ `task group` <chr> "2M DNH", "Inbound", "OUTBOUND", "5, 6주년 리워드 …
## $ `task closed date` <dttm> 2023-07-11 14:26:18, 2023-12-22 12:03:33, 2023-07-…
## $ `task type` <chr> "Fix", "Inbound", "Inbound", "General", "General", …
## $ outcome <chr> "Successful", "Upgraded", "Maintained", "Successful…
## $ `pledge status` <chr> "Unrealised", "Active", "Active", "Active", "Active…
## $ `donation amount` <dbl> 10000, 30000, 20000, 10000, 30000, 30000, 50000, 30…
chr 특성이 컬럼이 다수라서 숫자 컬럼과 데이터 분포 형태로 데이터
확인
사용자 마다 전화 수신량의 차이가 있고 인바운드의 기록이 전체 기록 중
대부분을 차지 하고 있음을 알 수 있다.
| outcome | n | per |
|---|---|---|
| Cancelled | 407 | 52.99% |
| Maintained | 292 | 38.02% |
| Downgraded | 46 | 5.99% |
| Upgraded | 14 | 1.82% |
| Reactivated | 9 | 1.17% |
큰 비중을 차지 하고 있는 인바운드 기록에서 취소 만큼이나 취소
방어율도 비슷하게 나오고 있는 부분도 눈여겨 볼 부분이다.
가설설정 및 검증
사용자 별로 전화 수신량의 차이가 존재하는데
취소와 취소방어
비율이 비슷하게 나타나는 것은 사용자와 관계 없이 취소가 발생하는지
확인이 필요해 보인다
즉 사용자별 취소 방어율 차이가 통계족으로 유의한 수준인지
확인 해본다
##### 전처리 1. 사용자를 숙련과 비숙련 사용자
그룹으로 분리
2. 취소에 가장 큰 영향을 주는 인바운드 기록만 추출
3. 전화 결과 값을 취소와 방어로
수정하여 이진변수 생성
가설
H0 : 두 그룹의 차이는 없다.
H1 : 두 그룹의 차이는 존재 한다.
| Name | call_in |
| Number of rows | 714 |
| Number of columns | 10 |
| _______________________ | |
| Column type frequency: | |
| character | 2 |
| factor | 6 |
| numeric | 1 |
| POSIXct | 1 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| serialno | 0 | 1 | 4 | 20 | 0 | 622 | 0 |
| expert | 0 | 1 | 3 | 4 | 0 | 2 | 0 |
Variable type: factor
| skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
|---|---|---|---|---|---|
| source code | 0 | 1 | FALSE | 7 | FIN: 277, LLF: 264, ODP: 132, SG: 16 |
| task group | 0 | 1 | FALSE | 1 | Inb: 714 |
| task type | 0 | 1 | FALSE | 1 | Inb: 714 |
| outcome | 0 | 1 | FALSE | 2 | can: 363, def: 351 |
| pledge status | 0 | 1 | FALSE | 6 | Can: 422, Act: 246, Unr: 25, Hol: 11 |
| user | 0 | 1 | FALSE | 9 | won: 203, myu: 166, jae: 163, san: 46 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| donation amount | 0 | 1 | 39589.63 | 290536 | 4000 | 10000 | 15000 | 20000 | 5e+06 | ▇▁▁▁▁ |
Variable type: POSIXct
| skim_variable | n_missing | complete_rate | min | max | median | n_unique |
|---|---|---|---|---|---|---|
| task closed date | 0 | 1 | 2023-07-03 14:31:24 | 2024-01-08 12:49:34 | 2023-10-18 15:12:01 | 714 |
expert 컬럼으로 숙련과 비숙련 사용자로 구분되었고 결과 값을
나타내는 outcome 컬럼도 n_unique 값이 2로 이진값으로 분류 되었다.
## outcome
## expert cancelled defense
## exp 47.39229 52.60771
## nobi 56.41026 43.58974
인바운드 처리결과를 숙련과 비숙련으로 나눈 결과로
숙련사용자의 취소방어가 비숙련사용자에 비해 9% 정도 높은 것으로 확인
되었다
두 그룹간의 차이가 통계적으로 유의한 차이인지 확인하는
카이제곱검정으로 진행한다.
call_table %>% chisq.test() %>% broom::tidy()
## # A tibble: 1 × 4
## statistic p.value parameter method
## <dbl> <dbl> <int> <chr>
## 1 5.13 0.0235 1 Pearson's Chi-squared test with Yates' continuity…
결론
P값이 0.02로 유의수준 0.05보다 낮기 때문에 귀무가설(HO)을 기각하고 대립가설(H1)을 채택 할수 있다
즉 숙련사용자들의 취소방어가 높기 때문에 숙련 사용자들의 취소 방어
전화녹취 중 일부를 선정하여
비숙련 사용자에게 공유 및 학습하는 방식으로 취소 방어률을 높일수
있을 것이라 예상한다.