Kamis, 01 November 2018

[Tutorial] Membuat Retention Rate menggunakan Tableau

Pada tutorial kali ini saya akan menjelaskan cara pembuatan retention rate visualization dengan menggunakan Business Intelligence tools (BI), Tableau. Pada tutorial kali ini saya akan merefer cara yang telah di upload sebelumnya di salah satu community forum tableau yang dapat di temukan di link berikut (Cohort Analysis : Reactivation, Retention, Churn, created by Yuriy Fal)

sebelumnya pada beberapa tahapan yang ada di tutorial ini, harap di ketahui bahwa pemahaman yang saya miliki masih berupa pemahaman teknis pembuatan saja, dan belum hingga level logic dari fungsi yang di gunakan. Untuk diskusi mengenai detail logic yang di gunakan, saya open untuk kita berdiskusi bersama di kolom komentar :)

untuk mempersingkat artikel, langsung saja langkah yang harus dilakukan adalah,

1. Pembuatan Parameter Periode
pertama-tama untuk membuat opsi periode retention yang ingin kita tampilkan, kita dapat membuat parameter control dengan setup seperti gambar berikut
kalian dapat menambahkan value berupa year, quarter, atau day pada kolom value jika ingin menambahkan opsi periode sesuai dengan kebutuhan visualisasi kalian.

setelah itu langkah selanjutnya adalah membuat field-filed dimension yang di butuhkan untuk menandai status customer di tiap bulannya (Churn, retain, or last period)

2. Pembuatan customer field status "Retention Status"
pertama-tama buatlah field dengan nama "Period #" dengan menggunakan function berikut

datepart ([Parameters].[Period], [Order date])

kemudian selanjutnya buatlah field dengan nama "Period Frame 1" dengan menggunakan function berikut

IF DATEPART([Parameters].[Period], [Order date]) % 2 = 1
THEN DATETRUNC([Parameters].[Period], [Order date])
ELSE DATEADD([Parameters].[Period], -1, DATETRUNC([Parameters].[Period], [Order date]))
END

dan field "Period Frame 2" dengan menggunakan function berikut

IF DATEPART([Parameters].[Period], [Order date]) % 2 = 1
THEN DATEADD([Parameters].[Period], -1, DATETRUNC([Parameters].[Period], [Order date]))
ELSE DATETRUNC([Parameters].[Period], [Order date])
END

kemudian langkah selanjutnya buatlah field dengan nama "Period Bin 1" menggunakan function berikut

{FIXED [Customer Id/Customer Name], [Period Frame 1] : COUNTD([Period #])}

dan field dengan nama "Period Bin 2" dengan menggunakan function berikut

{FIXED [Customer Id/Customer Name], [Period Frame 2] : COUNTD([Period #])}

setelah semua field di atas telah di buat maka kita dapat mulai membuat field untuk memberikan status customer di tiap bulannya berdasarkan aktivitas dia di bulan selanjutnya, yaitu dengan menggunakan function berikut (Anda bebas memberikan nama field ini, saya menggunakan nama "Churn")

IF DATETRUNC([Parameters].[Period],[Order date]) = {MAX(DATETRUNC([Parameters].[Period],[Order date]))}
THEN   0
ELSEIF [Period #] % 2 = 1
THEN   [Period Bin 1]
ELSE   [Period Bin 2]
END

3. Pembuatan Dimensi period waktu

agar parameter period yang kita buat di awal bisa terkoneksi dengan periode waktu yang di visualisasikan maka langkah terakhir yang harus dilakukan adalah membuat periode waktu untuk field dimension dengan function berikut

DATETRUNC([Parameters].[Period], [Create Order date])

jika semua field sudah anda buat maka setup lah worksheet anda seperti gambar di bawah
Jika tampilan anda sudah sesuai dengan gambar di atas, maka anda telah berhasil membuat data visualization dengan menggunakan tableau

* Note: Beberapa nama field saya samarkan dan sesuaikan dengan tutorial untuk menghindari issue data security

Jumat, 26 Oktober 2018

[Tutorial] Membuat filter date(tanggal) dengan Otomatisasi komparasi Google Analytic di Tableau

Filter tanggal(date) merupakan salah satu filter yang paling umum digunakan dalam proses analisis data, tidak terkecuali analisis data yang dilakukan di tableau. Hal ini tidak lepas dari banyaknya bentukan data yang memiliki timestamp dependencies (log data). pada level yang lebih mendalam, selain memfilter tanggal pada suatu periode yang spesifik, umumnya seorang data analyst juga akan melakukan komparasi terhadap suatu periode pembanding. Pada tutorial tableau kali ini, saya akan memberikan sedikit tutorial mengenai bagaimana cara membuat filter data yang akan memunculkan nilai pada rentang tanggal terpilih plus nilai pada periode sebelumnya sebagai pembanding

Pada salah satu platform analytic yang sudah cukup terkenal yaitu Google Analytics, secara default saat kita membuka website tersebut kita akan di sajikan gambaran yang kurang lebih adalah sebagai berikut (data di samarkan untuk menghindarda data security issue)

Seperti yang kita bisa lihat, pada setiap card score yang di tampilkan terdapat nilai persentase growth yang di bandingkan sesuai dengan tanggal yang sedang di pilih. seperti pada gambar di atas, dapat terlihat bahwa tanggal terpilih yang di set adalah last 7 days, sehingga comparation datenya pun mengikuti tanggal tersebut, yaitu prev. last 7 days dari last 7 days tanggal tersebut (Jika kita memilih tanggal 21/01/2018 - 27/01/2018 maka comparation datenya adalah 14/01/2018 - 20/01/2018)

kondisi seperti ini sering kali digunakan dalam proses analisis data jika kita ingin melihat performa suatu kegiatan atau strategi dari dua periode yang berbeda, khususnya komparasi yang sifatnya berurutan, tidak seasonal (Komparasi seasonal yang dimaksud adalah komparasi Year on Year, Quarter on Quarter, Month to Date on Month to Date).

Di tableau sendiri, secara manual anda bisa membuat visualisasi data di dua sheet berbeda dan melakukan manual filtering spesifik, sesuai tanggal yang ingin kita komparasi. Namun bagaimana jika anda ingin mengimplementasikan hal ini di visualisasi di dashboard tableau? metode seperti sebelumnya tentu bukan metode yang cukup praktis, karena kita harus melakukan dua kali filtering date dan akan banyak sekali filter tanggal serta card yang ada hanya untuk memunculkan dua score card, dan masalah yang paling utama juga kita tidak dapat membuat card growth score yang akan bekerja secara otomatis. oleh sebab itu pada tutorial kali ini saya akan mengajarkan cara membuat score card seperti kondisi pada google analytics

1. Langkah pertama
Hal pertama yang anda harus lakukan adalah membuat parameter dengan tipe "date". buat dua parameter date yang berfungsi sebagai filter tanggal "start" hingga "end". ikuti opsi seperti gambar berikut
dengan opsi seperti di atas, lakukan proses tersebut dua kali dengan membedakan namanya, yaitu "begin" dan "end". sehingga kalian akan mempunya dua parameter filter seperti berikut
2. Langkah kedua
Setelah membuat parameter, maka langkah selanjutnya adalah membuat calculated field measure yang berfungsi untuk menghitung objek yang ingin kalian munculkan nilainya, seperti "sales", "Profit", "Jumlah Install", "Jumlah Visitor", dll. Function yang dapat di gunakan adalah

IF [Date] >= [Parameter begin] AND [Date] <= [Parameter end] THEN [Object yang ingin di hitung] END

Selain menghitung nilai yang ingin di munculkan, kita juga harus menghitung nilai dari periode sebelumnya. untuk dapat menghitung nilai dari periode sebelumnya ada dua langkah yang harus dilakukan. yang pertama adalah membuat rentang periode tanggal terpilih, dengan menggunakan rumus berikut

DATEDIFF('day',{ FIXED : MIN([Parameter begin])}, { FIXED : MAX([Parameter end])}+1)

setelah menghitung rentang periode maka kita dapat membuat calculation untuk nilai objek dari previous periode dengan function berikut

IF [Date] >= [parameter begin] - [Comparation Period] AND [Date] <= [parameter end] - [Comparation Period] THEN [objek yang ingin di hitung] END

3. Langkah ketiga
setelah melakukan langkah kedua, langkah terakhir yang dilakukan adalah membuat growth card. untuk membuat growth card, dapat menggunakan function berikut

(SUM([Install (New)])- SUM([Prev. MTD])) / SUM([Prev. MTD])

Tiga langkah di atas merupakan langkah utama yang dapat digunakan untuk membuat filter date yang serupa dengan google analytics. untuk case lainnya hal yang dapat dilakukan adalah penyeseuai dengan dimensi dan measure parameter yang ingin anda gunakan. sekian

*note: untuk nama di setiap calculated field dapat anda sesuaikan dengan kebutuhan anda