본문 바로가기

TIL

[240307] 실전 프로젝트: 태블로 날짜 매개변수 & 증감률 & KPI달성률

태블로(Tableau)에서 데이터 분석 및 시각화, 대시보드 생성하는 법에 대한 글입니다. 

 

▼ 프로젝트 기획안 

더보기

1. 프로젝트 명
- 효과적인 미디어 플래닝을 위한 마케팅 성과 대시보드

2. 배경 및 문제정의
1) 배경
- 스파르타코딩클럽은 2025년부터 매출 증대를 위한 중장기적인 목표로 lead(잠재고객) 확보 마케팅 캠페인을 진행중
- 2025년 기준 전년대비 광고비 2.7배 가량 투여하며 공격적으로 마케팅한 결과, 총 리드수 2.3배 개선된 3.3만여 명 확보. lead CVR은 0.8%p 개선된 4.01%, CPL은 2.3만원대 기록
- 2026년은 광고 캠페인을 통해 지속적으로 잠재고객을 확보함과 동시에, 매체별 웹사이트 퍼널 분석으로 매출까지 이어지는 고관여 유저의 비중을 높여가고자 함

2) 문제정의

- 2026년 메인 KPI는 lead CVR 4.34%, CPL 18,434원, 서브 KPI는 구매 완료 수 434,520건
 └ 2026년 11월 1일 기준으로 KPI 미달인 lead CVR 개선을 목표로 11~12월 미디어 플래닝 전략 마련 필요
   
3. 프로젝트 목적
리드 전환율(lead CVR) 증대를 위한 2026년도 11월 - 12월 미디어 플래닝 전략 마련

4. 세부 분석 주제
- 광고타입별(or 소스/미디엄별) 리드수 및 lead CVR 성과 분석
- 캠페인별 리드수 및 lead CVR 성과 분석
- 퍼널 분석을 통한 랜딩페이지 이탈률 및 구매 CVR 성과 분석 

 

1. 대시보드 날짜 범위: 매개변수 vs. 필터

- 대시보드 상단에 ① 주요 지표 이름과 값 ② 기간대비 증감 ③ KPI 달성률 표기 & 최상단에 날짜 필터링 추가

└ 이때, 전체 대시보드 데이터의 날짜 필터를 단순 필터를 걸지, 매개변수를 생성해서 걸지 고민함

대시보드 스케치 예시

 

- 그렇다면, 매개변수 vs. 필터의 차이는? 

└ 필터: 데이터 원본에 있는 기존 값을 가지고 항목에 따라 데이터를 필터링함

매개변수: 원본에 없는 값을 활용할 수 있고, 생성된 매개변수를  계산된 필드로 활용해 추가 조건 적용 등 가능 

정리하면, 원본 값을 그대로 필터링만 한다면 필터를, 새로운 값을 지정하거나 조건을 적용한다면 매개변수가 좋음 

   >> 날짜에 따른 증감을 표기하고 싶으므로 매개변수를 생성하기로 결정! 

 

2. 대시보드: 매개변수 활용한 날짜 필터 생성

1) 매개변수 생성

- 매개변수 > 데이터유형 [날짜] > 값은 [범위] > 'Date' 칼럼에서 추가

- 위 과정 반복하여 [StartDate]와 [EndDate] 매개변수 각각 생성 

2) 날짜 범위 계산식 적용 

# Date_range
[StartDate] <= [Date] and [Date] <= [EndDate]

 

3) 생성한 날짜범위 계산식은 필터 '참' 선택하여 추가 

 

4) 완성

- 우측 시작날짜와 종료 날짜를 조정하면 해당 기간에 맞는 값이 업데이트 됨

 

 

4) 추가: 년월 기준 설정 

- 초반 대시보드 스케치 당시엔 년월로 기간을 선택할 수 있도록 yyyy-mm 형식의 매개변수를 생성하고자 함

(시도) 매개 변수 생성 시 값 범위의 단계 크기를 [1 개월]로만 설정

(실패) 데이터는 일자별로 구성돼 있어 2026-10 선택 시, 2026-10-01 데이터만 포함 > 2~31일자 데이터 누락

 

(해결 방법) 

① 날짜 필드에서 년월 정보만 추출하는 신규 필드 [ym] 생성

#ym
str(DATEPART('year', [Date]))+'-'+str(DATEPART('month', [Date]))

 

[ym]를 활용해 문자열 매개변수 생성 후, 날짜 범위 계산 필드 적용 

 

#Date_YM_range
[년월] = str(DATEPART('year', [Date]))+'-'+str(DATEPART('month', [Date]))

 

③ 날짜 범위 [Date_YM_range]를 필터 추가하면 완성!

 

3. 대시보드: 직전동기간 대비 증감률 

- 작업 순서 

└ ① 매개변수 기간 내 측정값 생성 > ② 이전 기간 내 측정값 생성 > ③ 증감률 생성(① / ②  - 1)  

- 하기 계산식 코드 예시는 lead, lead CVR 기준으로만 작성 (다른 지표는 측정값만 변경)

 

1) 매개변수 설정 기간 내 측정값 생성

- 데이터 원본 측정값을 사용할 경우, 지정한 매개변수 날짜 내 데이터만 출력되므로, 그 이전 데이터는 불러와지지 않음

└ ex. 매개변수 날짜 범위 2024-01-08~14(7일) 선택 시, 나머지 날짜는 null 값 처리되어 기간 비교 불가 

- [Date_range] 값은 필터에 추가하지 않아야, 매개변수에 영향을 받는 측정값과 아닌 측정값을 모두 볼 수 있음 

#range_true_leads
sum(if [Date_range] = True
then [Leads] end)

# range_true_click
sum(if [Date_range] = True
then [Clicks] end)

# range_true_leadCVR
[range_true_leads]/[range_true_click]

** [Date_range]는 매개 변수 지정값에 따른 날짜 범위 함수_ 2. 2) 내용 참조

 

- 상기 계산식을 반복하여, 노출, CTR, CPC 등 시각화에 필요한 모든 측정값 추가

└ 매개변수 기간 영향을 받는 측정값 이름은 [range_true_]로 시작되도록 통일 

 

2) 매개변수 설정 기간 대비 직전 동기간 내 측정값 생성 

- 증감 날짜 기준: 매개변수로 설정한 기간에서 바로 직전 동기간 대비

 └ ex. 2024-01-08~14(7일) 기간 선택 시 증감 비교 기간은 2024-01-01~07 (7일)

- 함수 설명

 └ if 조건절에서 DATEADD(날짜기준, 더할 숫자, 기준 날짜) 활용하여 이전기간 설정

   : 비교할 날짜는 매개변수 시작날짜([StartDate])에서 총 설정 일수 만큼의 앞에 해당하는 날짜보다 크거나 같음

   : 비교할 날짜는 매개변수 마지막날짜([EndDate])에서 총 설정 일수 만큼의 앞에 해당하는 날짜보다 작거나 같음

 └ then 절에 원하는 측정값을 넣은 뒤, 전체 if-then 절은 괄호처리하여 계산 함수 적용 

  : ex. sum(if 날짜 범위 then [leads]) : 날짜가 비교 날짜 범위 안에 있으면 lead 수를 모두 더하기

구분 시작날짜([StartDate]) 마지막날짜([EndDate]) 총 일수
매개변수 
지정 날짜
2025-01-01  2025-01-07 7일
직전 동기간
(기준날짜 - 총일수) 
2024-12-25 2024-12-31 7일
직전 동기간을
구하는
계산식 함수
DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [StartDate]) <= [Date] [Date] <= DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [EndDate]) datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))

 

#diff_sum_leads
sum
(if 
(DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [StartDate]) <= [Date])
AND 
([Date] <= DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [EndDate]))
then [Leads]
end)


#diff_sum_click
sum
(if 
(DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [StartDate]) <= [Date])
AND 
([Date] <= DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [EndDate]))
then [Clicks]
end)


#diff_leadCVR
[diff_sum_leads]/[diff_sum_click]

 

- 상기 계산식을 반복하여, 비용, CPL 등 증감률 비교가 필요한 모든 측정값 추가

└ 이전 기간의 값 이름은 [diff_]로 시작되도록 통일 

 

3) 증감률 생성

- 상기 매개변수 기간 내 측정값과 매개 변수 이전 기간의 측정값을 나눠서 증감률 계산 

#증감_leads
([range_true_leads]/ [diff_sum_leads]) -1

#증감_click
([range_true_click]/ [diff_sum_click]) -1

#증감_leadsCVR
#백분율 지표는 증감을 차이로 계산해 %p로 표기 
[range_true_leadCVR]-[diff_leadCVR]

 

- 증감률에 화살표를 추가하고 싶다면, 숫자서식 > 사용자 지정형식 > ▲0.00%; ▼0.00% 입력  

 

4) 완성 화면 예시 

 

5) 시각화 한 발 더

- 증감률 부분(▲0.25%p, ▼0.63%p)만 음양에 따라 색상을 넣고 싶다면? 

└ 증감률 필드를 색상으로 옮기고 단계 2, 가운데 값을 0으로 지정  

장점: 적용하면 예쁘고 수치가 한눈에 들어옴

 단점(?): 개별 워크시트에서 작업 후 대시보드에서 부동으로 하나씩 넣어줘야 해 다소 번거로움

 

4. 대시보드: KPI 달성률 

1) KPI 수치(달성 목표치)를 매개변수로 생성

- 현재 값은 임의 숫자로 KPI 변경에 따라 수정 가능

 

2) KPI 달성률 계산 

#kpi_rate_lead
([range_true_leads]/[kpi_lead])

#kpi_rate_lead_CVR
([range_true_leadCVR]-[kpi_lead_CVR])

 

3) 추가: KPI 달성률을 도넛이나 파이 차트 시각화 할 경우

- KPI에 미달한 수치를 별도로 생성하여, 달성치와 미달치를 각 비중에 넣어줘야 함

#kpi_rest_lead
[kpi_lead]-[range_true_leads]

#kpi_rest_lead
[kpi_lead_CVR]-[range_true_leadCVR]

도넛 차트 예시

 

4) 추가 - KPI 달성률과 현시점 기간 진척률을 병기할 경우 

- 데이터 마지막 일자까지를 max 함수로 추출한 뒤, KPI 기간 기준 전체 일수를 나누기

#기간 진척률 
#2026년도 기준 2026-01-01 ~ 2026-10-31까지 경과 시점 
(datediff('day',DATE('2026-01-01'), DATE(max([Date])+1)))
/ (datediff('day',DATE('2026-01-01'), DATE('2027-01-01')))