Menghitung CAC, Payback Period, dan Rasio LTV per CAC di Spreadsheet
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.
Gimana cara menghitung CAC dengan benar?
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.
Kenapa CAC harus dipecah per channel?
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.
Cara menghitung payback period di spreadsheet
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.
Cara menghitung LTV untuk bisnis non-langganan
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")
Rasio LTV per CAC yang sehat berapa?
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.
Contoh kasus: toko online dengan 1.240 pelanggan
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.
Kesalahan umum waktu hitung CAC dan LTV
- Pakai omzet buat LTV. Angkanya jadi 4-6 kali lipat lebih besar dari yang sebenarnya, dan kamu bakal ngerasa boleh belanja iklan jauh lebih banyak dari yang aman.
- Nggak masukin gaji tim ke CAC. Kalau ada dua orang full time ngurusin akuisisi, gaji mereka sering lebih besar dari belanja iklannya.
- Beda periode antara biaya dan pelanggan. Biaya November dibagi pelanggan Oktober bikin CAC melompat-lompat tanpa alasan nyata.
- Ngitung pelanggan lama sebagai baru. Pelanggan yang balik setelah setahun vakum itu retensi, bukan akuisisi. Tandai dengan kolom bulan transaksi pertama.
- Nge-set churn tahunan dari tebakan. Angka umur pelanggan bergerak drastis dengan churn. Churn 20% ngasih umur 5 tahun, churn 40% ngasih 2,5 tahun. LTV-nya beda dua kali lipat.
- Ngabaikan payback demi rasio. Rasio LTV/CAC 5 dengan payback 14 bulan bisa bikin bisnis kehabisan kas sebelum sampai bulan ke-14.
Struktur file yang aku sarankan
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.
Ringkasnya
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.
Artikel terkait
INDEX MATCH Google Sheets: Lookup Lebih Fleksibel dari VLOOKUP (2026)
INDEX MATCH gabung dua fungsi buat lookup yang bisa nyari ke kiri dan nggak gampang rusak. Ini alasan banyak analis pindah dari VLOOKUP.
SUMPRODUCT Google Sheets: Hitung Berbobot Tanpa Ribet (2026)
SUMPRODUCT ngaliin dua kolom atau lebih baris per baris, terus jumlahin hasilnya. Cocok buat total qty kali harga sampai hitungan bersyarat.
REGEXMATCH Google Sheets: Cek Kecocokan Pola Teks (2026)
REGEXMATCH ngecek apakah teks cocok sama pola tertentu dan balikin TRUE atau FALSE. Cocok buat validasi nomor HP, email, sampai filter data berantakan.