Cara Membangun Model DCF di Google Sheets (2026)
Bangun model DCF siap investor di Google Sheets: enam tab tertaut dari Asumsi hingga equity bridge dan tabel sensitivitas. Formula lengkap disertakan.
Bangun model DCF lengkap siap investor di Google Sheets: enam tab tertaut dari tab Assumptions hingga equity value bridge dan tabel sensitivitas, dengan setiap formula yang saling mengacu dengan benar dan pengecekan terminal value yang tidak akan mempermalukan Anda dalam sesi review sindikasi bank.
Panduan ini mengasumsikan Anda memodelkan bisnis B2B SaaS atau recurring-revenue dengan pendapatan LTM Rp 389 miliar, margin EBITDA 18,7%, dan horizon proyeksi 5 tahun. Ganti dengan asumsi Anda sendiri dan struktur ini tetap berlaku di sektor manapun.
Yang Anda Perlukan
- Google Sheets dengan setidaknya satu tab data yang sudah ada (aktual atau laporan keuangan LTM)
- Laporan Laba Rugi LTM dengan pendapatan, HPP, opex, D&A, dan beban bunga
- Neraca untuk posisi net debt
- Sumber data beta (Bloomberg, Damodaran, atau set perusahaan publik yang sebanding)
- Pemahaman kerja dasar tentang named ranges dan referensi absolut
Panduan Langkah demi Langkah
Rancang Arsitektur Tab DCF Anda
Menentukan urutan tab sebelum menulis satu formula pun akan menyelamatkan Anda dari masalah circular reference di kemudian hari. Model DCF yang bersih di Google Sheets berjalan dari kiri ke kanan, dengan data mengalir dari tab Assumptions hingga ke tab output. Tidak ada tab yang boleh mengacu ke tab di sebelah kanannya.
- Assumptions - semua sel input berada di sini; setiap tab lain membaca dari sini, tidak sebaliknya
- Revenue & OpEx - pembangunan P&L hingga EBITDA, sepenuhnya digerakkan oleh Assumptions
- FCF - perhitungan unlevered free cash flow, mengambil data dari Revenue & OpEx
- WACC - pembangunan cost of capital, hanya mengacu pada input di Assumptions
- DCF - mesin diskonto, perhitungan TV, dan bridge EV/ekuitas
- Sensitivity - data table yang menggerakkan WACC dan terminal growth terhadap output EV
Pro Tip
Letakkan sel "Versi Model" beserta tanggalnya di sudut kiri atas tab Assumptions. Ketika tiga orang saling mengirim DCF_v7_FINAL_2.xlsx melalui email, Anda akan tahu mana yang sedang aktif digunakan.Bangun Tab Assumptions (Satu Sumber Kebenaran)
Setiap driver yang berpotensi berubah harus ada di sini. Tidak ada yang di-hardcode di tempat lain. Jika asumsi pertumbuhan pendapatan Anda ada di Assumptions maupun di Revenue & OpEx sekaligus, Anda memiliki model yang akan rusak tanpa peringatan.
Susun Assumptions dalam blok berlabel jelas: Revenue Drivers, Margin Drivers, Capex & NWC, Tax, dan WACC Inputs. Berikan named ranges pada sel-sel kunci agar formula terasa seperti dokumentasi.
Named ranges yang perlu dibuat:
RevGrowth → Assumptions!$B$5 (Revenue CAGR: 12,5%)
EBITDAMargin → Assumptions!$B$8 (18,7%)
TaxRate → Assumptions!$B$12 (26,0%)
TerminalGrowth→ Assumptions!$B$15 (3,0%)
NetDebt → Assumptions!$B$20 (99.200.000.000)
Untuk tahun-tahun proyeksi, gunakan satu sel tahun awal di Assumptions dan turunkan semua header kolom secara dinamis. Header tab Revenue Anda kemudian terlihat seperti ini:
='Assumptions'!$B$2 (tahun dasar, mis. 2025)
='Assumptions'!$B$2+1 (2026)
='Assumptions'!$B$2+2 (2027)
Artinya, memajukan tahun dasar untuk pembaruan tahunan hanya membutuhkan satu pengeditan sel, bukan find-and-replace di 6 tab.
Pro Tip
Tambahkan bagian "Check" di bagian bawah Assumptions. Satu sel yang menampilkan "OK" atau "ERROR" berdasarkan apakah neraca Anda seimbang dan konvensi tanda FCF Anda konsisten. Butuh 10 menit untuk membuatnya dan mampu menangkap kesalahan input sebelum sampai ke PDF.Proyeksikan Pendapatan dan EBITDA
Revenue & OpEx adalah tempat model membuktikan kredibilitasnya. Satu growth rate yang diterapkan ke seluruh P&L sudah memadai untuk screening cepat; model yang sesungguhnya mensegmentasi pendapatan berdasarkan lini produk atau cohort dan memisahkan asumsi margin dari asumsi volume.
Untuk proyeksi 5 tahun dengan satu growth rate yang mengambil dari Assumptions:
Baris Revenue (B5:F5, di mana B5 adalah Year 1):
B5: ='Assumptions'!$B$3*(1+RevGrowth)
C5: =B5*(1+RevGrowth)
Baris EBITDA (B8:F8):
B8: =B5*EBITDAMargin
Baris D&A (B10:F10, sebagai % pendapatan):
B10: =B5*'Assumptions'!$B$9
Jika Anda memodelkan beberapa aliran pendapatan, SUMIFS dari tab Cohorts atau SKU-level membuat proses ini lebih mudah diaudit:
=SUMIFS('Revenue Detail'!$D:$D,
'Revenue Detail'!$B:$B, ">="&'Assumptions'!$B$3,
'Revenue Detail'!$C:$C, "Recurring")
Dengan pendapatan LTM Rp 389 miliar yang tumbuh 12,5% per tahun, Year 5 menghasilkan sekitar Rp 704 miliar. EBITDA dengan margin stabil 18,7% mencapai Rp 131 miliar di Year 5, sebelum asumsi ekspansi margin apapun diperhitungkan.
Pro Tip
Sertakan kolom aktual di sebelah kiri proyeksi Anda dan hardcode baris varians. Ketika aktual LTM diperbarui setiap kuartal, baris varians langsung memberi tahu Anda seberapa jauh model Anda sudah menyimpang dari realitas.Hitung Unlevered Free Cash Flow untuk DCF
Unlevered FCF (UFCF) mengabaikan pembiayaan: tidak ada bunga, tidak ada pembayaran utang. Anda menilai bisnis seolah-olah seluruhnya dibiayai dengan ekuitas, itulah mengapa struktur modal ada di WACC, bukan di sini.
Formulasinya adalah: UFCF = NOPAT + D&A - Capex - Perubahan Net Working Capital
Baris EBIT (B5:F5) mengacu ke Revenue & OpEx:
B5: ='Revenue & OpEx'!B12 - 'Revenue & OpEx'!B14
Baris NOPAT (B7:F7):
B7: =B5*(1-TaxRate)
Baris UFCF (B12:F12):
B12: =B7
+'Revenue & OpEx'!B10 (add-back D&A)
-'Assumptions'!$B$11*'Revenue & OpEx'!B5 (Capex sebagai % pendapatan)
-(('Revenue & OpEx'!B5-'Revenue & OpEx'!A5)*'Assumptions'!$B$13) (ΔNWC)
Beberapa hal yang diam-diam merusak model UFCF: konvensi tanda pada NWC (peningkatan NWC adalah penggunaan kas, sehingga mengurangi), perlakuan stock-based compensation yang tidak konsisten, dan memasukkan pendapatan bunga dalam EBIT. Periksa kembali baris EBIT Anda terhadap P&L sebelum mendiskon apapun.
Untuk model ini, UFCF meningkat dari sekitar Rp 35 miliar di Year 1 menjadi Rp 62 miliar di Year 5.
Pro Tip
Buat baris "UFCF Check" yang menghitung UFCF secara independen dari EBITDA: EBITDA dikurangi pajak atas EBIT, dikurangi capex, dikurangi perubahan NWC, lalu bandingkan dengan baris berbasis formula Anda. Jika keduanya tidak cocok hingga rupiah terakhir, cari tahu penyebabnya sebelum Anda mendiskon.Bangun Tab WACC
WACC adalah tempat model paling sering salah, biasanya karena inputnya sudah usang atau bobot struktur modal didasarkan pada nilai buku alih-alih nilai pasar.
Per pertengahan 2026, US Treasury 10 tahun berada di sekitar 4,3%. Estimasi equity risk premium AS versi Damodaran per Januari 2026 adalah 5,5% (diperbarui setiap tahun di pages.stern.nyu.edu). Untuk beta, gunakan raw beta Bloomberg yang disesuaikan mendekati 1,0 menggunakan Blume adjustment: Adjusted Beta = 0,67 × Raw Beta + 0,33. Set perusahaan pembanding untuk bisnis B2B SaaS mid-market menghasilkan median levered beta sebesar 1,35 di Bloomberg per Mei 2026.
Formula tab WACC, semua input mengambil dari Assumptions:
RiskFreeRate: ='Assumptions'!$B$25 (0,043)
ERP: ='Assumptions'!$B$26 (0,055)
BetaLevered: ='Assumptions'!$B$27 (1,35)
CostOfEquity: =RiskFreeRate + BetaLevered*ERP
→ 4,3% + 1,35 × 5,5% = 11,7%
PreTaxCostDebt: ='Assumptions'!$B$28 (0,082)
AfterTaxCostDebt: =PreTaxCostDebt*(1-TaxRate)
→ 8,2% × 0,74 = 6,1%
EquityWeight: ='Assumptions'!$B$30 (0,90)
DebtWeight: =1-EquityWeight (0,10)
WACC: =CostOfEquity*EquityWeight + AfterTaxCostDebt*DebtWeight
→ 11,7% × 0,90 + 6,1% × 0,10 = 11,2%
Gunakan bobot berbasis nilai pasar, bukan nilai buku. Jika Anda mengerjakan transaksi perusahaan privat tanpa market cap, pendekatan standar adalah iterasi: asumsikan struktur modal, hitung WACC, hitung EV, turunkan implied market cap, perbarui bobot, ulangi hingga konvergen (biasanya 2-3 putaran).
Pro Tip
Tambahkan catatan sensitivitas di tab WACC itu sendiri yang menampilkan output WACC pada perubahan ±50bps pada ERP dan ±0,2 pada beta. Reviewer hampir selalu menekan dua input ini pertama kali.Diskonto Arus Kas dan Selesaikan Penilaian DCF
Di sinilah model menghasilkan outputnya. Tab DCF mengambil UFCF dari tab FCF, mendiskontonya pada WACC, menghitung terminal value menggunakan Gordon Growth Model, dan menjembatani dari enterprise value ke equity value.
Faktor diskonto (baris 5, B5:F5):
B5: =1/(1+WACC)^1
C5: =1/(1+WACC)^2
...
F5: =1/(1+WACC)^5
PV of FCF (baris 6, B6:F6):
B6: =FCF!B12*B5
Jumlah PV of FCFs:
=SUM(B6:F6) → ~Rp 190 miliar
Terminal Value (perpetuity growth):
=FCF!F12*(1+TerminalGrowth)/(WACC-TerminalGrowth)
→ 62,4 miliar × 1,03 / (0,112 - 0,030) = Rp 784 miliar
PV of Terminal Value:
=TerminalValue * F5 → ~Rp 466 miliar
Enterprise Value:
=SUM(B6:F6) + PVTerminalValue → Rp 656 miliar
Equity Value bridge:
=EnterpriseValue - NetDebt → Rp 557 miliar
Terminal value menyumbang sekitar 71% dari enterprise value di sini: standar untuk horizon 5 tahun pada profil pertumbuhan ini, tetapi layak disampaikan kepada investor yang hanya terbiasa dengan model 10 tahun di mana persentase TV lebih rendah. TV di atas 75% biasanya berarti periode proyeksi terlalu pendek atau asumsi terminal terlalu banyak menanggung beban.
Tambahkan bagian "Checks" di bawah bridge: TV sebagai % dari EV, implied EV/EBITDA exit multiple (Enterprise Value dibagi EBITDA Year 5), dan implied perpetuity growth rate menggunakan exit multiple untuk menghitung mundur. Jika angka-angka tersebut tidak konsisten secara internal, ada yang salah.
Pro Tip
GunakanXNPV alih-alih NPV jika arus kas Anda tidak jatuh tepat pada akhir tahun. XNPV('DCF'!$B$3, FCF!B12:F12, FCF!B4:F4) menangani timing tengah tahun dengan benar, yang penting pada transaksi di mana tanggal penutupan bukan 1 Januari.Bangun Tabel Sensitivitas
Model DCF tanpa tabel sensitivitas bukanlah sebuah model, melainkan hanya estimasi titik tunggal. Dua sumbu yang paling penting: WACC di satu sumbu, terminal growth rate di sumbu lainnya, dan equity value di sel-selnya. Bangun sebagai two-variable data table agar terhitung ulang secara otomatis.
Siapkan tabel dengan nilai WACC berjalan ke bawah pada header kolom (9,2%, 9,7%, 10,2%, ..., 13,2%) dan terminal growth rates berjalan ke samping pada header baris (2,0%, 2,5%, 3,0%, 3,5%, 4,0%). Sel kiri atas dari data table mengacu pada output equity value dari tab DCF.
Sel referensi kiri atas (mis., B20):
='DCF'!$B$22 (output equity value Anda)
Untuk membangun tabel:
1. Sorot seluruh range termasuk header baris/kolom
2. Data → Data Validation → ... (atau gunakan: Data > What-If Analysis di Excel)
Di Google Sheets, data table memerlukan Apps Script. Solusi alternatif yang ringkas:
- Buat tab helper dengan daftar input WACC dan growth secara eksplisit
- Gunakan INDEX/MATCH untuk menarik equity value untuk setiap kombinasi skenario
Formula helper di grid sensitivitas (sel C22, di mana B22=WACC override, C21=growth override):
=IFERROR(
(NPV(B22, FCF!$B$12:$F$12) +
FCF!$F$12*(1+C21)/(B22-C21) / (1+B22)^5) -
Assumptions!$B$20,
"N/A")
Grid 25 sel yang berjalan dari WACC 9,2% hingga 13,2% dan terminal growth 2,0% hingga 4,0% menghasilkan base case equity value Rp 557 miliar, dengan rentang kasar dari Rp 310 miliar (WACC tinggi, pertumbuhan rendah) hingga Rp 867 miliar (WACC rendah, pertumbuhan tinggi). Rentang tersebut adalah rentang negosiasi Anda dalam diskusi penilaian.
Pro Tip
Tambahkan tabel sensitivitas kedua dengan revenue growth versus EBITDA margin. Investor hampir selalu menekan top line terlebih dahulu sebelum menekan discount rate.Kesimpulan
Model DCF yang dibuat dengan benar di Google Sheets terdiri dari 6 tab tertaut, sekitar 200-300 sel formula, dan sensitivity grid yang menampilkan seluruh rentang kemungkinan hasil, bukan berpura-pura presisi ada di tempat yang tidak semestinya. Kegagalan paling umum bukan karena matematika yang salah, melainkan asumsi yang di-hardcode tersebar di berbagai tab, menjadi usang, dan tidak pernah diperbarui.
Arsitektur sama pentingnya dengan formula. Assumptions menggerakkan segalanya. FCF tidak pernah mengacu ke WACC. Tab DCF adalah output read-only. Jika Anda membangunnya seperti itu, model tetap dapat diaudit ketika associate Anda menyerahkannya ke analis junior enam bulan setelah penutupan transaksi.
Satu hal yang tidak ditangani Google Sheets secara native dengan baik adalah refresh data table, dan di sinilah ModelMonkey mengisi celah tersebut: membangun ulang sensitivity grid secara otomatis ketika asumsi upstream berubah tanpa memerlukan kalkulasi manual atau workaround Apps Script.
Coba ModelMonkey gratis selama 14 hari - tersedia di Google Sheets dan Excel.
Pertanyaan Umum
Berapa tahun yang harus dicakup oleh periode proyeksi DCF?
Sebagian besar model buy-side dan sell-side menggunakan 5 tahun untuk bisnis high-growth dan 10 tahun untuk perusahaan dengan arus kas yang matang dan stabil. Jawaban yang tepat adalah "sebanyak tahun yang diperlukan hingga bisnis mencapai kondisi steady state," tetapi dalam praktiknya 5 tahun adalah standar. Melampaui 10 tahun hanya menambah presisi semu: asumsi margin EBITDA Anda di Year 8 adalah tebakan, sementara model memperlakukannya sebagai fakta.
Berapa terminal growth rate yang wajar untuk sebuah DCF?
Terminal growth sebaiknya tidak melebihi pertumbuhan nominal PDB jangka panjang. Untuk model yang menggunakan benchmark global SaaS (denominasi USD), angka 2,5% hingga 3,5% adalah standar umum per 2026. Menggunakan 4% atau lebih tinggi berarti mengimplikasikan perusahaan pada akhirnya akan lebih besar dari keseluruhan ekonomi acuan, yang merupakan masalah matematis yang muncul lebih cepat dari yang Anda kira. Untuk pekerjaan deal yang konservatif, uji tekanan hingga 1,5%.
Mengapa terminal value menyumbang 70% atau lebih dari enterprise value di sebagian besar DCF?
Karena Anda mendiskon arus kas jangka pendek dengan berat dan terminal value menangkap semua arus kas di luar periode proyeksi, yang merupakan sebagian besar umur perusahaan. Horizon 5 tahun dengan WACC 11,2% berarti arus kas Year 5 hanya bernilai Rp 0,59 untuk setiap Rp 1 nilai nominalnya. TV% di atas 70% bukan tanda bahaya: itu adalah aritmatika. Tanda bahayanya adalah ketika TV% mencapai 85% ke atas karena periode proyeksi terlalu pendek atau margin terminal terlalu optimis.
Bagaimana cara menangani net debt dalam equity value bridge?
Net debt = total utang berbunga dikurangi kas dan setara kas. Kurangkan dari enterprise value untuk mendapatkan equity value. Kesalahan umum: memasukkan operating leases (perlakuan yang benar tergantung apakah Anda mengkapitalisasinya dalam EBITDA), mengabaikan kewajiban earnout, dan menggunakan nilai buku utang alih-alih nilai pasar. Untuk sebagian besar transaksi perusahaan privat, nilai buku dan nilai pasar utang cukup dekat kecuali perusahaan dalam kondisi distressed.
Bisakah saya membangun DCF langsung di Google Sheets tanpa Apps Script?
Ya: inti proses diskonto, terminal value, dan equity bridge semuanya bekerja dengan formula native Google Sheets. Satu-satunya area di mana Sheets native kurang mumpuni adalah two-variable data table untuk analisis sensitivitas, yang ditangani secara native oleh Excel tetapi tidak oleh Sheets. Solusinya adalah formula-driven grid (seperti yang ditunjukkan di Langkah 7) atau fungsi Apps Script singkat yang mengiterasi kombinasi WACC dan growth, lalu menulis hasilnya ke sebuah range.