Arsitektur okrシート: Desain Tiga Tab
Pisahkan spreadsheet menjadi tiga tab.
| Nama Tab | Peran | Aliran Data |
|---|---|---|
| OKR_Data | Input KR & perhitungan skor | Output hanya ke Assumptions |
| Assumptions | Scenario switch & asumsi keuangan (DSO, Capex) | Output ke P&L, BS, CF |
| P&L / BS / CF | Laporan keuangan 3 neraca | Terima input hanya dari Assumptions |
Kesatu-arahannya menjaga konsistensi model. Jika P&L mereferensi OKR_Data secara langsung, ketergantungan antar tab menjadi rumit dan audit menjadi sulit dilacak. Dengan tab Assumptions mengelola semua asumsi keuangan terpusat, perubahan skenario menyebar dengan konsisten ke seluruh laporan keuangan.
Field Standar FP&A untuk Setiap Baris okrシート
John Doerr dalam Measure What Matters (Portfolio/Penguin, 2018) Bab 4 mendefinisikan bahwa "Key Result harus dapat dinilai ketercapaiannya secara independen dari KR lainnya." Prinsip independensi ini ketika diterjemahkan ke spreadsheet memerlukan minimal 7 kolom per baris.
| Kolom | Nama Field | Tipe | Contoh |
|---|---|---|---|
| A | KR_ID | Teks | 2026K3-PENJUALAN-01 |
| B | Deskripsi Target | Teks | Capai ARR Rp 50 miliar |
| C | Target Value | Angka | 50.000 |
| D | Bobot (0–1) | Angka | 0,35 |
| E | Nilai Saat Ini | Angka | 33.800 |
| F | Progress Rate | Rumus | =E2/C2 |
| G | Confidence Score | Angka (manual) | 0,72 |
| H | Tanggal Update Terakhir | Tanggal | 2 Mei 2026 |
Confidence score (kolom G) berbeda dari progress rate (kolom F). Meskipun ARR sudah mencapai 67% dari target, jika kualitas pipeline menurun, confidence score bisa turun di bawah 50%. Estimasi subjektif ini menjadi input yang menggerakkan scenario switch.
Skor rata-rata tertimbang ditempatkan di Assumptions!B3.
// Assumptions!B3: Rata-rata tertimbang confidence score KR
=SUMPRODUCT(OKR_Data!G2:G20, OKR_Data!D2:D20)
/ SUMPRODUCT(OKR_Data!D2:D20)
Menurut dokumentasi resmi Google Sheets, SUMPRODUCT mengalikan elemen array dan menjumlahkannya; sel kosong diperlakukan sebagai 0. Bahkan dengan 5 juta baris ARRAYFORMULA, recalculation tetap di bawah 50ms.
Cascade ke EBITDA
Buat scenario branching berdasarkan skor di Assumptions!B3.
// Assumptions!B4: Scenario flag
=IF(B3>=0.75,"OnTrack",IF(B3>=0.55,"Caution","Downside"))
// Assumptions!B5: Asumsi penjualan bulanan (Rp miliar)
=IFS(B4="OnTrack", 4.2, B4="Caution", 3.6, B4="Downside", 2.9)
Pada Q2 2026, rata-rata KR score tertimbang adalah 75,7% (OnTrack). Memasuki Q3, KR roadmap produk dan customer success tertinggal, skor jatuh ke 67,8%. Scenario berubah otomatis ke Caution.
| Scenario | Penjualan Bulanan | EBITDA Triwulanan (22%) | NOPAT (pajak 30%) |
|---|---|---|---|
| OnTrack (≥75%) | Rp 4,2 miliar | Rp 2,772 miliar | Rp 1,940 miliar |
| Caution (55–75%) | Rp 3,6 miliar | Rp 2,376 miliar | Rp 1,663 miliar |
| Downside (<55%) | Rp 2,9 miliar | Rp 1,914 miliar | Rp 1,340 miliar |
// P&L!C5: EBITDA Triwulanan
='P&L'!C3 * Assumptions!$B$8 // C3=penjualan triwulanan, B8=margin EBITDA (0.22)
// P&L!C7: NOPAT
='P&L'!C5 * (1 - Assumptions!$B$9) // B9=effective tax rate (0.30)
Dari Confidence Score KR ke FCFF Waterfall
Di sini model mencapai level yang dapat dipresentasikan ke investor. Scenario toggle ke P&L saja tidak cukup menghasilkan FCFF yang kredibel. Perubahan confidence score KR harus menggerakkan DSO (modal kerja) dan timing Capex, yang langsung berdampak pada aliran kas.
DSO Assumption dan Linkage Balance Sheet
Ketika KR produk tertinggal, approval pelanggan melambat dan days sales outstanding naik. Scenario Caution menaikkan rata-rata DSO dari 45 hari menjadi 52 hari.
// Assumptions!B6: DSO (hari)
=IFS(B4="OnTrack", 45, B4="Caution", 52, B4="Downside", 60)
// BS!C15: Saldo Piutang Usaha
='P&L'!C3 / 90 * Assumptions!$B$6
// P&L!C3 = penjualan triwulanan (Caution: Rp 10,8 miliar)
// → Saldo piutang: Rp 10,8 miliar / 90 × 52 = Rp 6,24 miliar
// BS!C16: ΔAR (perubahan periode)
=C15 - B15
// B15 = piutang akhir Q2 (OnTrack: Rp 10,8/90×45 = Rp 6,3 miliar)
// → ΔAR = Rp 6,24 - Rp 6,3 = -Rp 0,06 miliar (piutang turun sedikit = improvement WC kecil)
Linkage Timing Capex
Ketika KR roadmap produk tertinggal, melanjutkan eksekusi Capex pertumbuhan penuh menjadi tidak rasional. Scenario Caution menunda 50% dari growth capex engineering. Downside membekukan sepenuhnya.
// Assumptions!B7: Capex Triwulanan (Rp miliar)
=IFS(B4="OnTrack", 4.5, B4="Caution", 2.25, B4="Downside", 0)
FCFF Waterfall (Tab CF)
// CF!C3: NOPAT (dari P&L)
='P&L'!C7
// CF!C5: D&A (fixed, Rp 0,9 miliar/Q)
=Assumptions!$B$10
// CF!C7: Perubahan modal kerja (ΔAR tanda terbalik)
=-'BS'!C16
// CF!C9: Capex
=-Assumptions!$B$7
// CF!C11: FCFF
=C3 + C5 + C7 + C9
Ketika ketiga scenario FCFF dijajarkan, struktur yang sering terlewatkan akan terlihat jelas.
| FCFF Waterfall (Q3 2026, Rp miliar) | OnTrack | Caution | Downside |
|---|---|---|---|
| NOPAT | 1,940 | 1,663 | 1,340 |
| D&A | 0,900 | 0,900 | 0,900 |
| ΔWC (ΔAR tanda terbalik) | 0 | 0,060 | 0,440 |
| Capex | (4,500) | (2,250) | 0 |
| FCFF | (1,660) | 0,373 | 2,680 |
FCFF scenario Downside lebih tinggi dari OnTrack. Kenapa? Karena Capex dihentikan sepenuhnya. Paradoks ini—saat dijelaskan ke investor di QBR—tidak akan terbeli dengan pernyataan sederhana "Downside masih punya kas tebal." Penjelasan yang kredibel: "Kami menghentikan investasi pertumbuhan sepenuhnya, yang berarti mengorbankan peluang pertumbuhan periode depan." Itulah nilai menghubungkan okrシート dengan FCFF.
Transisi dari OnTrack ke Caution menghasilkan delta FCFF +Rp 2,033 miliar. Detail komponennya:
| FCFF Bridge (OnTrack → Caution, Rp miliar) | Jumlah |
|---|---|
| ① Penyusutan NOPAT (penjualan ▼Rp 1,8 miliar × 22% × 70%) | (0,277) |
| ② Peningkatan ΔWC (piutang ▼Rp 0,06 miliar, WC release) | 0,060 |
| ③ Penundaan Capex (Rp 4,5 → Rp 2,25 miliar) | 2,250 |
| FCFF Delta | +2,033 |
Tambahkan bridge ini ke laporan dewan direksi bulanan dalam satu halaman, dan penjelasan menjadi berbasis rumus: "Karena KR belum tercapai, kami menunda Capex, hasilnya FCFF meningkat Rp 2,033 miliar." Sementara membicarakan KR achievement rate, data laporan keuangan dan aliran kas dapat dilacak sepenuhnya—itulah inti dari desain ini.
Alert Kadaluarsa untuk Menjaga Kesegaran Data
Jika confidence score KR tidak diupdate selama 14 hari atau lebih, scenario di tab Assumptions terus beroperasi dengan input lama. Hingga Mei 2026, banyak tim tidak menyadari "lupa update" sambil tetap merilis forecast triwulanan.
// Assumptions!D3: Hari sejak update terakhir
=TODAY() - MAX(OKR_Data!H2:H20) // Kolom H = tanggal update terakhir setiap KR
// Assumptions!E3: Pesan alert
=IF(D3>14,
"⚠ KR score tidak diupdate " & D3 & " hari — model perlu verifikasi",
"✓ Terkini")
Letakkan cell ini di paling atas tab Assumptions, beri warna merah dengan conditional formatting, maka alert akan langsung terlihat saat membuka model. Aplikasi lanjutan: gunakan SUMIFS untuk mengekstrak KR per PIC saja dan buat alert individual.
// Pengecekan kadaluarsa per PIC
=SUMPRODUCT((TODAY()-OKR_Data!H2:H20>14)*(OKR_Data!I2:I20="Budi Santoso"))
// Kolom I = nama PIC; nilai ≥1 berarti ada KR yang memerlukan follow-up
Otomasi Siklus Update dengan AI Agent
Desain okrシート di atas—SUMPRODUCT dan struktur 3 tab—sudah lengkap secara teknis, tetapi operational cost untuk update 8+ KR setiap minggu tidak bisa diabaikan. Sambungkan ModelMonkey ke Google Sheets, dan confidence score entry dari Slack atau Google Form langsung ditulis otomatis ke tab OKR_Data, kemudian memicu recalculation di Assumptions → P&L → BS & CF secara keseluruhan. Alert 14 hari muncul lebih jarang, dan pengecekan "angkanya cocok?" sebelum QBR berkurang signifikan.
Coba gratis selama 14 hari — berfungsi di Google Sheets dan Excel.
FAQ: okrシート dan Model Keuangan FCFF
Apa perbedaan confidence score dan progress rate dalam okrシート?
Progress rate adalah rasio matematis antara nilai saat ini dan target (misalnya ARR Rp 33,8 miliar dari target Rp 50 miliar = 67,6%). Confidence score adalah estimasi subjektif tim tentang kemungkinan KR tercapai pada periode yang ditetapkan—mempertimbangkan kualitas pipeline, risiko eksekusi, dan faktor eksternal. Keduanya bisa bergerak berlawanan: progress rate tinggi tapi confidence score rendah terjadi ketika momentum pipeline memburuk meski angka saat ini tampak aman.
Mengapa FCFF scenario Downside lebih tinggi daripada OnTrack?
Karena pada scenario Downside, seluruh growth Capex dibekukan (dari Rp 4,5 miliar menjadi Rp 0). Dalam waterfall FCFF, Capex adalah arus kas keluar; ketika investasi dihentikan, FCFF naik secara mekanis meski NOPAT turun. Ini bukan sinyal positif—melainkan pertanda bahwa perusahaan mengorbankan kapasitas pertumbuhan masa depan demi menjaga kas jangka pendek. Penjelasan ini harus disampaikan eksplisit kepada investor di QBR, bukan dibiarkan terlihat seperti "kas masih sehat."
Berapa hari batas kadaluarsa update KR yang direkomendasikan sebelum model dianggap tidak valid?
Ambang 14 hari adalah standar praktis yang digunakan dalam artikel ini, cocok untuk siklus review mingguan atau dua mingguan. Untuk tim dengan cadence QBR bulanan, batas bisa diperpanjang hingga 21 hari. Yang penting: batas kadaluarsa harus dikonfigurasi eksplisit di formula alert (IF(D3>N,...)) dan dikomunikasikan ke seluruh PIC KR sejak awal siklus perencanaan, sehingga model tidak berjalan diam-diam dengan data basi saat deadline pelaporan tiba.