Cara Membuat OKR di Google Sheets untuk FP&A
Buat OKR yang terhubung ke P&L dan proyeksi keuangan. Panduan untuk analis FP&A — struktur tab, formula langsung, penilaian, dan jadwal review.
Panduan ini memandu Anda dalam membuat OKR yang secara struktural terhubung ke model keuangan Google Sheets Anda — di mana target KR berada di tab Assumptions, nilai Current ditarik langsung dari P&L dan arus kas, serta skor diperbarui otomatis tanpa input manual. Kebanyakan framework OKR berhenti di tahap penetapan tujuan. Panduan ini memperlakukan OKR sebagai lapisan dari model keuangan Anda, bukan dokumen terpisah.
Yang Anda Perlukan
- Model keuangan Google Sheets dengan minimal satu tab P&L, satu tab Cash Flow, dan satu tab Assumptions
- Referensi lintas tab yang sudah berfungsi (Anda pernah menggunakan `='P&L'!C12` atau yang serupa)
- Familiar dengan SUMIFS, IFERROR, AVERAGEIF, dan logika IF
- Siklus perencanaan yang sudah ditentukan — OKR kuartalan paling efektif; tahunan terlalu longgar untuk penilaian yang terhubung dengan model
- Minimal satu unit bisnis atau departemen untuk menentukan ruang lingkup tujuan awal
Panduan Langkah demi Langkah
Tulis Objektif — Terarah, Bukan Terukur
Objektif menjawab pertanyaan "ke mana kita akan pergi?" Sifatnya harus kualitatif dan memotivasi, bukan berupa metrik. Tim keuangan lebih sering melakukan kesalahan ini dibandingkan tim produk — mereka menulis "Mencapai ARR $5,8 juta" sebagai objektif. Itu adalah KR. Objektifnya adalah alasan di baliknya.
Objektif yang kuat dalam konteks FP&A terlihat seperti:
- "Bangun jalur yang efisien dari sisi modal menuju kesiapan Series B"
- "Geser bauran pendapatan ke arah SKU bermargin lebih tinggi sebelum penguncian anggaran Q3"
- "Kurangi burn rate tanpa mengorbankan headcount GTM"
- "Tunjukkan operating leverage kepada sindikasi bank sebelum penutupan Q2"
- Tulis maksimal 3–5 objektif per kuartal; lebih dari 5 menandakan kurangnya prioritisasi
- Setiap objektif harus memiliki satu pemilik — CFO, VP Finance, atau kepala unit bisnis — bukan sebuah komite
- Objektif sebaiknya memiliki horizon alami 90 hari; yang lebih pendek adalah milestone
- Hindari kata kerja yang samar seperti "tingkatkan" atau "optimalkan" — simpan kuantifikasi untuk KR
Pro Tip
Uji objektif Anda dengan bertanya: "Jika kita mencapai ini, apakah board akan terkesan?" Jika jawaban jujurnya adalah "mungkin," tulis ulang.Tulis Key Results — Terukur dan Dapat Dilacak di P&L
Setiap KR membutuhkan 3 komponen: metrik, baseline, dan target. Metriknya harus berupa sesuatu yang bisa Anda tarik langsung dari model atau sumber data yang terhubung — bukan hitungan manual atau hasil survei. Jika Anda tidak bisa menunjuk ke baris di P&L tempat angka ini berada, KR tersebut belum siap.
Untuk objektif seperti "Bangun jalur yang efisien dari sisi modal menuju kesiapan Series B," KR-nya mungkin terlihat seperti:
| Key Result | Metrik | Baseline | Target |
|---|---|---|---|
| KR1: Kembangkan ARR | ARR ($) | $4,2 juta | $5,8 juta |
| KR2: Perluas gross margin | Gross margin (%) | 38,5% | 42,0% |
| KR3: Kurangi net burn | Net burn bulanan ($) | $380 ribu | $240 ribu |
| KR4: Tingkatkan EBITDA | EBITDA ($) | $840 ribu | $1,1 juta |
- Batasi hingga 3–5 KR per objektif; lebih dari 5 akan mengikis akuntabilitas
- Setiap KR harus bergerak secara independen — jika meningkatkan KR2 secara otomatis meningkatkan KR3, keduanya bukan KR yang terpisah
- Hindari KR biner ("selesaikan audit sebelum 30 Juni") — nilainya 0 atau 1, sehingga interpolasi tidak berguna dan trajektori tidak terlihat
- Baseline harus berupa aktual periode terakhir yang selesai, bukan proyeksi; proyeksi bisa berubah, aktual tidak
Pro Tip
Jika kandidat KR tidak memiliki baris yang jelas di P&L atau laporan arus kas Anda, kemungkinan besar ia masuk ke dashboard operasional, bukan framework OKR keuangan.Siapkan Struktur Tab OKR di Google Sheets
Sebelum menghubungkan formula, Anda perlu tata letak data yang bersih. Buat tab OKR khusus dengan struktur baris yang flat — satu baris per KR, dengan Objektif induk yang diulang di setiap baris KR-nya.
Tata letak kolom: Obj_ID | KR_ID | Objective | Key Result | Metric | Baseline | Target | Current | Score | RAG_Status | Owner | Quarter
Hindari merged cells untuk pengelompokan Objektif — itu merusak logika range SUMIFS dan AVERAGEIF. Struktur flat terlihat redundan, tetapi ramah formula.
- Tempatkan tab
OKRdi antaraAssumptionsdanP&Lagar rantai referensi terlihat sekilas - Gunakan posisi kolom yang konsisten: Baseline di kolom F, Target di kolom G, Current di kolom H, Score di kolom I — ini membuat formula penilaian bisa di-copy-paste ke setiap baris KR
- Model tipikal dengan 4 objektif dan 16 KR menghasilkan sekitar 200 sel formula di seluruh tab OKR, Dashboard, dan Assumptions saat sudah terhubung sepenuhnya
- Definisikan named ranges
OKR_TargetsdanOKR_Baselinesyang menunjuk ke kolom F dan G secara penuh — ini membuat referensi di tab Assumptions lebih mudah dibaca
Pro Tip
Beri warna pada kolomCurrent (H) dengan isian biru muda untuk menandainya sebagai kolom berbasis formula. Ini hanya butuh 30 detik dan mencegah seseorang mengetik di atas referensi langsung pukul 11 malam sebelum rapat board.Tarik Nilai Langsung ke Kolom Current
Kolom Current adalah tempat OKR tracker menunjukkan manfaatnya. Setiap sel harus mereferensikan sumber otoritatif di model keuangan Anda secara langsung — bukan copy-paste.
Untuk ARR (KR1), menarik total kumulatif dari tab rollup pendapatan:
=SUMIFS('Revenue'!D:D,'Revenue'!A:A,"ARR",'Revenue'!B:B,"<="&Assumptions!$B$3)
Untuk gross margin (KR2), ditarik dari P&L:
=IFERROR(('P&L'!C12-'P&L'!C14)/'P&L'!C12,0)
Untuk monthly net burn (KR3), merata-ratakan arus kas bersih keluar selama kuartal:
=AVERAGEIFS('CashFlow'!E:E,'CashFlow'!B:B,">="&Assumptions!$B$4,'CashFlow'!B:B,"<="&Assumptions!$B$5)
- Jangan pernah hardcode nilai
Current; jika Anda mengetik $4,8 juta langsung ke sel tersebut, Anda telah merusak integritas model Assumptions!$B$3(tanggal akhir periode Anda) harus menjadi single source of truth untuk semua logika timing "per tanggal" — satu sel, direferensikan di mana-mana- Gunakan
IFERROR(...,0)secukupnya; nilai nol yang menyembunyikan error pembagian akan merusak skor secara diam-diam dan tidak akan ketahuan hingga rapat board - Jika tab sumber tidak memiliki metrik dalam format yang bisa diakses formula, perbaiki tab sumber terlebih dahulu — jangan siasati dengan input manual
Pro Tip
Tambahkan selTanggal Data Terakhir di tab Dashboard menggunakan =MAX('CashFlow'!B:B) — ini langsung menunjukkan kepada reviewer seberapa terkini data aktualnya.Hubungkan Target KR ke Tab Assumptions
Tab Assumptions harus memiliki setiap angka yang menggerakkan model — termasuk target OKR. Ketika VP of Sales merevisi target ARR dari $5,8 juta menjadi $6,1 juta di tengah kuartal, perubahan tersebut cukup menyentuh satu sel dan menyebar ke mana-mana: skor OKR, sensitivitas P&L, ringkasan board pack.
Tambahkan blok target OKR di Assumptions:
| Label | Nilai | Catatan |
|---|---|---|
| Target ARR KR1 | $5.800.000 | OKR Q2 2026 |
| Target Gross Margin KR2 | 42,0% | OKR Q2 2026 |
| Target Burn KR3 | $240.000 | Net bulanan |
| Target EBITDA KR4 | $1.100.000 | Kumulatif Q2 |
Kemudian di tab OKR, kolom Target (G) mereferensikan kembali:
='Assumptions'!$C$18 // target ARR KR1
='Assumptions'!$C$19 // target gross margin KR2
Dan di mana pun target ARR menjadi penentu asumsi proyeksi di P&L:
=IF('P&L'!C5>=Assumptions!$C$18,Assumptions!$D$7,Assumptions!$D$8)
- Memusatkan target di Assumptions memangkas waktu rekonsiliasi model dari sekitar 45 menit menjadi kurang dari 5 menit saat target berubah di tengah kuartal — satu pembaruan sel alih-alih mencari-cari di seluruh tab
- Kunci tab Assumptions dengan proteksi sheet setelah kuartal dimulai; perubahan memerlukan override eksplisit dan catatan di changelog
- Tambahkan timestamp statis
Terakhir DiperbaruimenggunakanCtrl+Shift+;(bukanNOW(), yang menghitung ulang setiap kali sheet dibuka dan mengacaukan jejak audit)
Pro Tip
Jika model Anda sudah memiliki tabScenarios, tambahkan kolom "Target OKR" sebagai skenario bernama. Ini memungkinkan Anda beralih antara base case dan proyeksi implikasi OKR tanpa menimpa apa pun.Buat Formula Penilaian
Skor KR harus mencerminkan kemajuan parsial, bukan sekadar lulus/tidak lulus. Skala standar 0–1,0 — di mana 0,7 dianggap "on track" oleh sebagian besar framework OKR, termasuk yang didokumentasikan dalam buku Measure What Matters karya John Doerr — menggunakan interpolasi linear antara baseline dan target.
Formula penilaian inti untuk KR di baris 5:
=MIN(1,IFERROR((OKR!H5-OKR!F5)/(OKR!G5-OKR!F5),0))
Di mana H5 = Current, F5 = Baseline, G5 = Target. Cap MIN(1,...) mencegah skor di atas 1,0 mendistorsi roll-up di level objektif saat Anda melampaui target.
Untuk KR di mana nilai yang lebih rendah lebih baik (burn rate, churn, tiket dukungan):
=MIN(1,IFERROR((OKR!F5-OKR!H5)/(OKR!F5-OKR!G5),0))
Roll up ke level objektif:
=AVERAGEIF(OKR!$A:$A,"OBJ-1",OKR!$I:$I)
Tambahkan kolom status RAG di sebelah Score:
=IF(I5>=0.7,"Green",IF(I5>=0.4,"Amber","Red"))
- Skor di bawah 0,4 = di luar jalur; 0,4–0,7 = berisiko; di atas 0,7 = on track — terapkan conditional formatting yang sesuai
- Kolom RAG berbasis teks lebih ramah formula dibandingkan mengandalkan warna isian untuk logika COUNTIF atau pemfilteran di bagian hilir
- Terapkan formula penilaian secara seragam di semua baris KR sebelum menyesuaikan untuk arah — konsistensi mempercepat audit
Pro Tip
Tambahkan selSkor Portofolio di bagian atas Dashboard yang menjalankan =AVERAGE(OKR!I:I) yang difilter untuk kuartal saat ini. Satu angka yang langsung memberi tahu CFO posisi perusahaan sebelum membuka tampilan detail.Buat Dashboard Review Satu Layar
Board tidak ingin menggulir tabel KR yang panjang. Tab Dashboard harus menampilkan 5–6 angka yang paling penting dan menghubungkan masing-masing kembali ke model langsung.
Tarik skor objektif berdasarkan ID dan kuartal:
=AVERAGEIFS(OKR!$I:$I,OKR!$A:$A,Dashboard!$B$3,OKR!$L:$L,Dashboard!$C$1)
Di mana $B$3 menyimpan filter Obj_ID dan $C$1 menyimpan filter Quarter (misalnya, "Q2 2026").
Tambahkan sparkline burn rate yang menunjukkan trajektori menuju target KR3:
=SPARKLINE('CashFlow'!E2:E14,{"charttype","line";"color","#E53935";"min",0;"max",500000})
Tarik ARR saat ini vs. target sebagai persentase dari tujuan:
=IFERROR(SUMIFS('Revenue'!D:D,'Revenue'!A:A,"ARR",'Revenue'!B:B,"<="&Assumptions!$B$3)/Assumptions!$C$18,0)
- Jaga agar dashboard muat dalam satu halaman cetak (landscape, ~11 kolom) — jika tidak muat, berarti Anda memiliki terlalu banyak OKR atau terlalu banyak kolom
- Board pack kuartalan untuk bisnis dengan ARR $40 juta biasanya mencakup 4–5 objektif, 16–20 KR, dan 3 skenario keuangan — rancang dari awal dengan skala tersebut
- Referensikan data model langsung, bukan nilai yang di-copy-paste; dashboard yang basi secara aktif menyesatkan pemangku kepentingan
Pro Tip
Kunci baris 1–3 di Dashboard (freeze panes) agar filter kuartal dan skor portofolio tetap terlihat saat menggulir ke baris detail objektif.Kesimpulan
Perbedaan antara OKR yang hanya tersimpan di wiki dan OKR yang benar-benar mendorong keputusan terletak pada apakah key results terhubung ke data keuangan langsung. Begitu kolom Current menarik langsung dari P&L dan arus kas, dan target berada di Assumptions, framework ini berhenti menjadi ritual penetapan tujuan dan mulai berfungsi sebagai lapisan kontrol atas model Anda.
Kelemahan dalam sebagian besar implementasi adalah pemeliharaan — menjaga referensi formula tetap utuh saat tab diganti nama, kolom bergeser, atau model direstrukturisasi di tengah kuartal. Jika Anda mendapati diri mengarahkan ulang formula setiap kali seseorang mengatur ulang tab, asisten AI yang memahami struktur sheet Anda dapat menangani koneksi ulang tersebut tanpa merusak logika model.
Untuk struktur tracker yang mendukung ini, lihat OKR Tracker Sheet untuk FP&A: Membangun yang Terhubung dan OKR Sheet untuk FP&A: Hubungkan ke Model Anda.
Coba ModelMonkey gratis selama 14 hari — berfungsi di Google Sheets maupun Excel.
Pertanyaan Umum
Berapa banyak OKR yang harus dibuat tim keuangan per kuartal?
3–5 objektif dengan 3–5 key results masing-masing adalah batas praktis untuk tim keuangan perusahaan menengah. Itu berarti 9–25 KR secara total, yang semuanya memerlukan koneksi formula langsung ke model keuangan Anda. Lebih dari itu, beban pemeliharaan akan melampaui nilai perencanaannya — Anda menghabiskan lebih banyak waktu memperbarui skor daripada mengambil tindakan berdasarkannya.
Apa perbedaan antara key result dan milestone?
Key result adalah metrik berkelanjutan dengan baseline dan target — nilainya berkisar dari 0 hingga 1,0 pada skala linear dan menunjukkan trajektori. Milestone bersifat biner: selesai atau belum. "Selesaikan audit sebelum 30 Juni" adalah milestone. "Kurangi jumlah temuan audit dari 12 menjadi 3" adalah key result. Logika penilaian OKR membutuhkan KR yang berkelanjutan; item biner masuk ke project tracker, bukan kolom KR.
Apakah target OKR harus berada di tab OKR atau tab Assumptions?
Tab Assumptions, selalu. Jika target hanya ada di tab OKR, ia terputus dari proyeksi keuangan yang bergantung padanya. Ketika target berubah di tengah kuartal — dan itu pasti terjadi — Anda ingin satu perubahan sel memperbarui skor OKR, tabel sensitivitas P&L, dan board pack secara bersamaan. Itu hanya mungkin jika Assumptions adalah single source of truth.
Bagaimana cara menilai KR di mana nilai yang lebih rendah lebih baik, seperti burn rate atau churn?
Balik interpolasinya: `=MIN(1,IFERROR((Baseline - Current)/(Baseline - Target),0))`. Jadi jika baseline burn adalah $380 ribu, target $240 ribu, dan current $310 ribu, skornya adalah ($380 ribu − $310 ribu) / ($380 ribu − $240 ribu) = 0,5. Cap MIN(1,...) yang sama berlaku — Anda bisa mencapai 1,0 tetapi tidak bisa melampauinya, bahkan jika Anda sudah berada di bawah target.
Seberapa sering kolom Current harus dihitung ulang?
Secara berkelanjutan — formula harus menarik data langsung setiap kali sheet dihitung ulang. Namun jadwal review terpisah: mingguan untuk check-in operasional, dibekukan di akhir bulan untuk board pack. Paste kolom `Current` dan `Score` sebagai nilai ke tab `Actuals_Archive` bulanan saat penutupan periode. Ini memberi Anda jejak audit yang bersih tanpa mengganggu model langsung.