TL;DR
CAC dihitung dari total biaya akuisisi dibagi jumlah pelanggan baru di periode yang sama. Payback period adalah berapa bulan sampai margin kumulatif pelanggan nutupin CAC. Rasio LTV per CAC di atas 3 biasanya dianggap sehat, tapi buat UMKM Indonesia dengan siklus belanja pendek angka 2 sudah layak jalan. Semua tiga metrik ini cukup dihitung pakai SUMIFS dan COUNTIFS di satu file.
CAC adalah total biaya buat dapetin satu pelanggan baru. Rumusnya: semua belanja akuisisi di satu periode dibagi jumlah pelanggan baru di periode yang sama.
Dua metrik turunannya yang lebih sering dipakai buat ambil keputusan: payback period (berapa bulan sampai uang itu balik) dan rasio LTV per CAC (seberapa jauh nilai pelanggan ngelewatin biaya dapetinnya).
Ketiganya cukup dihitung di satu file spreadsheet. Nggak butuh tool khusus, nggak butuh Python.
Rumus dasarnya satu baris:
CAC = total biaya akuisisi / jumlah pelanggan baru
Yang bikin angka orang beda-beda bukan rumusnya, tapi isi pembilangnya. Ini pembagian yang aku pakai:
| Masuk hitungan CAC | Nggak masuk |
|---|---|
| Belanja iklan (Meta, Google, TikTok) | Harga pokok produk |
| Gaji tim marketing dan sales | Ongkos kirim |
| Komisi affiliate dan endorse | Gaji tim operasional |
| Biaya produksi konten | Biaya CS buat pelanggan lama |
| Langganan tools marketing | Sewa tempat |
| Diskon khusus pelanggan baru | Diskon buat semua pelanggan |
Baris terakhir itu yang paling sering keliru. Voucher Rp 25.000 khusus pembeli pertama itu biaya akuisisi. Diskon 10% yang berlaku buat semua orang bukan.
Struktur sheet biaya yang aku pakai:
bulan | channel | jenis_biaya | nominal
Terus rumus CAC-nya:
Total biaya bulan itu:
=SUMIFS(biaya[nominal], biaya[bulan], $A2)
Pelanggan baru bulan itu:
=COUNTIFS(pelanggan[bulan_pertama], $A2)
CAC:
=IFERROR(B2 / C2, 0)
SUMIFS dan COUNTIFS ngerjain seluruh hitungan ini. Bungkus hasil akhirnya pakai IFERROR supaya bulan tanpa pelanggan baru nggak nampilin error.
Angka gabungan sering bohong dengan cara yang halus.
Misal CAC gabungan kamu Rp 78.000 dan itu kelihatan sehat. Setelah dipecah, ternyata organik Rp 12.000 dan iklan berbayar Rp 210.000. Yang bikin angka gabungan bagus cuma trafik gratis yang jumlahnya nggak bisa kamu kontrol.
Tambahin dimensi channel ke rumusnya:
=IFERROR(
SUMIFS(biaya[nominal], biaya[bulan], $A2, biaya[channel], B$1)
/ COUNTIFS(pelanggan[bulan_pertama], $A2, pelanggan[channel], B$1),
0)
Susun jadi tabel silang: baris bulan, kolom channel. Dalam tiga bulan kamu bakal lihat channel mana yang CAC-nya naik terus.
Payback period adalah jumlah bulan sampai margin kumulatif dari satu kelompok pelanggan nutup CAC yang dibayar buat dapetin mereka.
Struktur yang paling gampang dibaca: tabel kohort. Baris = bulan pelanggan pertama kali beli. Kolom = bulan ke-0, ke-1, ke-2, dan seterusnya.
| Kohort | CAC | M0 | M1 | M2 | M3 | M4 |
|---|---|---|---|---|---|---|
| Sep 2025 | Rp 92.000 | Rp 41.000 | Rp 68.000 | Rp 88.000 | Rp 104.000 | Rp 119.000 |
| Okt 2025 | Rp 108.000 | Rp 38.000 | Rp 61.000 | Rp 79.000 | Rp 96.000 | - |
Angka di kolom M itu margin kumulatif per pelanggan, bukan omzet. Kohort September nembus CAC Rp 92.000 di bulan ke-3. Payback-nya 3 bulan.
Buat nyari titik potongnya otomatis, pakai MATCH:
=IFERROR(MATCH($B2, C2:H2, 1) - 1, "belum balik")
Argumen ketiga bernilai 1 nyari nilai terbesar yang masih di bawah CAC, jadi hasilnya posisi bulan terakhir sebelum balik modal. Kurangi 1 karena kolom pertama itu bulan ke-0.
Kalau kamu belum kenal cara nyusun kohort, konsepnya ada di cohort analysis. Intinya ngelompokkin pelanggan berdasarkan bulan masuk, terus ngikutin perilaku mereka sepanjang waktu.
Bisnis langganan gampang: harga bulanan dikali umur pelanggan dikali margin.
Ritel dan UMKM butuh pendekatan lain, soalnya nggak ada tagihan rutin. Rumus yang aku pakai:
LTV = margin per transaksi
x frekuensi belanja per tahun
x umur pelanggan (tahun)
Umur pelanggan = 1 / tingkat churn tahunan
Contoh: margin Rp 34.000 per transaksi, belanja 6 kali setahun, churn tahunan 40%.
Umur pelanggan = 1 / 0,40 = 2,5 tahun
LTV = 34.000 x 6 x 2,5 = Rp 510.000
Pakai margin, bukan omzet. Ini kesalahan paling sering. Kalau kamu pakai omzet Rp 180.000 per transaksi, LTV-nya jadi Rp 2,7 juta dan semua keputusan anggaran kamu bakal berdasarkan angka yang nggak ada di rekening.
Buat tingkat churn, hitung dari data: berapa persen pelanggan tahun lalu yang nggak transaksi lagi tahun ini.
=1 - COUNTIFS(pelanggan[transaksi_tahun_ini], ">0",
pelanggan[transaksi_tahun_lalu], ">0")
/ COUNTIFS(pelanggan[transaksi_tahun_lalu], ">0")
Patokan yang beredar di industri langganan: 3 ke atas. Artinya tiap Rp 1 yang kamu keluarin buat akuisisi balik jadi Rp 3 margin sepanjang umur pelanggan.
Tapi angka itu lahir dari SaaS Amerika dengan payback 12-18 bulan. Buat UMKM Indonesia yang belanja iklannya kecil dan siklus belanjanya pendek, patokan itu perlu disesuaikan.
| Rasio LTV/CAC | Bacaan | Tindakan |
|---|---|---|
| Di bawah 1 | Rugi tiap dapat pelanggan | Stop iklan, benerin margin dulu |
| 1 sampai 2 | Tipis, rawan | Naikkan frekuensi belanja ulang |
| 2 sampai 3 | Layak jalan buat ritel | Skalakan pelan sambil pantau payback |
| 3 sampai 5 | Sehat | Tambah anggaran channel terbaik |
| Di atas 6 | Kurang belanja | Coba naikkan anggaran, tes channel baru |
Baris terakhir sering bikin orang kaget. Rasio 9 kedengeran hebat, tapi biasanya artinya kamu cuma manen pelanggan yang paling gampang dan ninggalin pertumbuhan yang bisa diambil.
Aku pakai data dari toko_berkah versi online, 1.240 pelanggan baru sepanjang 2025, tiga channel akuisisi.
| Channel | Pelanggan baru | Total biaya | CAC | LTV | LTV/CAC |
|---|---|---|---|---|---|
| Meta Ads | 612 | Rp 128.500.000 | Rp 210.000 | Rp 468.000 | 2,2 |
| TikTok Shop | 431 | Rp 34.900.000 | Rp 81.000 | Rp 302.000 | 3,7 |
| Organik dan referral | 197 | Rp 4.700.000 | Rp 24.000 | Rp 611.000 | 25,5 |
CAC gabungannya Rp 135.000 dengan rasio LTV/CAC 3,2. Kelihatan sehat di laporan.
Setelah dipecah, ceritanya lain. Meta Ads nyerap 76% anggaran tapi rasionya cuma 2,2. TikTok Shop dapat 431 pelanggan dengan biaya seperempatnya.
Yang paling menarik ada di baris ketiga. Pelanggan organik punya LTV Rp 611.000, dua kali lipat pelanggan TikTok. Masuk akal: orang yang nyari sendiri atau direkomendasikan teman datang dengan niat lebih kuat, dan mereka belanja ulang lebih sering.
Payback per channel juga beda jauh:
| Channel | Payback period |
|---|---|
| Meta Ads | 5 bulan |
| TikTok Shop | 2 bulan |
| Organik dan referral | 1 bulan |
Selisih 3 bulan antara Meta dan TikTok itu masalah arus kas nyata. Dengan belanja Rp 10 juta per bulan di Meta, kamu harus punya Rp 50 juta nganggur buat nutup jarak sampai uangnya balik.
Empat sheet, itu saja.
biaya: bulan, channel, jenis biaya, nominal.pelanggan: id, bulan pertama, channel, total margin per bulan.kohort: tabel margin kumulatif per kohort.ringkasan: CAC, LTV, rasio, payback per channel per bulan.Sheet ringkasan yang dibuka orang lain. Tiga sheet lainnya buat kamu sendiri.
Kalau kamu mau nambahin patokan target di sheet ringkasan, konsep KPI ngebantu nentuin angka mana yang jadi patokan dan angka mana yang cuma pelengkap.
CAC itu pembagian sederhana yang jadi rumit karena orang beda pendapat soal biaya mana yang masuk. Tulis definisimu di sheet, dan jangan diubah tiap kuartal.
Payback period lebih penting dari rasio LTV/CAC buat bisnis yang modalnya terbatas. Rasio bagus dengan payback panjang tetap bisa bikin kas kering.
Dan selalu pecah per channel. Angka gabungan biasanya nyembunyiin satu channel yang lagi bakar uang.
Mau lanjut ke tabel arus kas yang nyambung ke angka ini? Coba template Excel arus kas buat lihat efek payback panjang ke saldo bulanan.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Punya ratusan angka dan mau tau sebarannya masuk ke rentang mana aja? FREQUENCY ngitung distribusi frekuensi sekali jalan, tanpa nulis COUNTIFS berkali-kali.
SUMIFS ribet kalau kriterianya banyak dan sering ganti. Rumus database Excel kayak DSUM baca kriteria dari sel terpisah, jadi kamu tinggal ubah tabel kecil tanpa nyentuh rumus.
DATEDIF ngasih umur bulat, tapi kadang kamu butuh angka desimal kayak 27,6 tahun buat hitung masa kerja atau bunga. YEARFRAC ngasih pecahan tahun dengan presisi.