데이터를 분석하기 전, 데이터 내부의 값을 통해 비즈니스의 전체적인 윤곽을 생각함
기존에 제시된 3개의 테이블(user, email, event) 의 칼럼들을 보며 비즈니스 형태를 가정함
팀에서 주목한 칼럼
user 테이블 : company_id, language
event 테이블 : event_name, location, device
email 테이블 : action
칼럼을 바탕으로 비즈니스 요약
이유: 유저가 company_id로 바로 세분화되고 있으며, language 수가 10개 이상으로 다양함
또한 event 테이블의 location 또한 다양한 국가에서 집계가 되고 있음
매출 구조 : 파악 어려움. 이용자 가입이 중요한 KPI → event 테이블의 event_name 칼럼 참고
검색 기능성 : 1~100까지의 결과 조회 가능하며, 자동 완성 기능 보유
타인의 메시지 수신과 답변, 이와 더불어 타인의 글에 공감 가능
→ Slack과 같은 메신저 서비스 혹은 Facebook 같은 SNS 요소가 포함됨
호환성 : 앱은 아니라, 웹을 기반으로 하되 모바일과 태블릿에서 호환 가능한 UI/UX
3-1) Signup
주니어 분석
<aside> 💡 Q) Weekly Active Users 감소 원인 파악을 위해 먼저 할 일 → 신규 가입자 성장이 감소한 것 아닐까?
</aside>
all_users와 activated_users의 Daily Signup 그래프
<aside> 💡 A) 여전히 주중에는 가입 수가 높고 주말에는 가입 수가 낮다.
</aside>
접근 1) 패턴의 일정함 외의 다른 변수가 있을 가능성
개선 의견
<aside> 💡 주중과 주말의 패턴이 비슷하게 반복한다면 주 단위로 살펴 보자!
</aside>
- '주'단위 신규 가입자 증감추이 쿼리
SELECT DATE_TRUNC('week',created_at) AS week,
COUNT(*) AS all_users,
COUNT(CASE
WHEN activated_at IS NOT NULL THEN u.user_id
ELSE NULL END) AS activated_users
FROM tutorial.yammer_users u
WHERE created_at >= '2014-06-01'
AND created_at < '2014-09-01'
GROUP BY 1
ORDER BY 1
all_users와 activated_users의 Daily Signup 그래프
→ 7/28 주간에 감소하는 'event'발생 BUT! 8/4부터 증가세 회복 → 임시적 요인의 영향 가능성 추측 (예: 여름휴가)
→ 대시보드 상 Weekly Active Users 감소 시점에 함께 신규 가입자 수도 감소하지만 다시 증가 추세로 회복하므로 Weekly Active Users가 꾸준히 감소하는 현상과 직접적인 관련은 없는 것으로 판단 (주니어의 판단에 동의)
<aside> 💡 성장률을 일별, 주별, 월별로 계산해보자!
</aside>
코드)
--주별, 월별은 'day'부분을 'week','month'로 변경
WITH summary AS (
SELECT DATE_TRUNC('day',created_at) AS day,
COUNT(*) AS all_users,
COUNT(CASE WHEN activated_at IS NOT NULL THEN u.user_id ELSE NULL END)
AS activated_users
FROM tutorial.yammer_users u
WHERE created_at >= '2014-06-01' --'month'계산시 WHERE절 삭제
AND created_at < '2014-09-01'
GROUP BY 1
ORDER BY 1)
SELECT day --, all_users, activated_users
, 100 * (all_users - LAG(all_users,1) OVER (ORDER BY day)) /
LAG(all_users,1) OVER (ORDER BY day) || '%' AS all_users_growth_rate
, 100 * (activated_users - LAG(activated_users,1) OVER (ORDER BY day)) /
LAG(activated_users,1) OVER (ORDER BY day) || '%'
AS activated_users_growth_rate
FROM summary
전일 대비 성장률 그래프)
→ 패턴에 변함이 없음을 확인할 수 있다. (Yammer 서비스 특성상 seasonality를 타기 때문에 주중엔 높고 주말엔 낮은 패턴이 일관성있게 나타나고 있다.)
전주 대비 성장률 그래프)
→ 위의 'Weekly Signup'그래프와 마찬가지로 Weekly Active Users가 감소하는 시기와 동일한 시기에 감소하고 다시 증가하여 평균 수준 회복.
전월 대비 성장률 그래프)
→ 7월 ~ 8월 넘어가는 주간에 감소하는 이유가 임시적인 영향(예: 휴가)의 가능성을 전년도와 비교하면서 다시 한번 확인
의의
1. 'Weekly'그래프로 가독성을 높이고 성장추이 파악을 용이하게 만듬
2. 성장률그래프를 일별, 주별, 월별로 파악하여 패턴파악 및 다른 인사이트 도출
3. 주별 그래프에서 6월23일 주에 성장률이 2주 연속으로 낮음 -> 문제 제기
4. 월별 그래프에서 전년도 8월과 당해 8월이 동일하게 감소 -> 여름휴가 가능성 뒷받침
5. 한계: 데이터가 2013, 2014년 밖에 없어서 8월 감소가 계절성을 띄는지 확실치 않음
3-2) 코호트
<aside> 💡 그렇다면, 유저를 Age(기존 고객~신규 고객)로 묶어 주별로 코호트 분석하자.
</aside>
week별 유저 코호트 분석