TL;DR
Angka dashboard dan laporan keuangan beda karena keduanya pakai definisi, waktu pencatatan, dan cakupan yang beda. Penyebab paling sering: retur dan pembatalan, beda tanggal transaksi dan tanggal setelmen, pajak yang ikut atau nggak ikut dihitung, serta perbedaan zona waktu. Telusuri selisihnya dari total ke rinci, lalu sajikan sebagai tabel rekonsiliasi yang ngejelasin tiap komponen selisih.
Dashboard bilang omzet Oktober Rp 1,42 miliar. Laporan keuangan bilang Rp 1,31 miliar. Selisih Rp 110 juta, dan semua mata di rapat langsung nengok ke kamu.
Selisih kayak gini hampir selalu soal definisi yang beda, bukan data yang rusak.
Yang bikin repot bukan nyari penyebabnya. Yang bikin repot itu menjelaskannya tanpa bikin orang ilang kepercayaan sama dashboard yang kamu bangun.
Dashboard biasanya baca data operasional mentah dari sistem penjualan, sedangkan laporan keuangan baca data yang udah lewat proses akuntansi. Di antara keduanya ada penyesuaian: retur diakui, pembatalan dikeluarkan, pajak dipisah, dan tanggal pengakuan pendapatan digeser sesuai aturan. Jadi dua angka yang beda itu wajar, asal selisihnya bisa dijelaskan baris per baris.
Yang nggak wajar itu selisih yang berubah-ubah tiap bulan tanpa pola.
Sebelum ngoprek query, pastikan dua angka yang kamu bandingin ngomongin hal yang sama.
Dari 7 kasus selisih yang pernah aku telusuri, 3 di antaranya selesai di langkah ini doang. Ternyata finance pakai periode 26 Oktober sampai 25 November karena ngikut siklus tutup buku.
Jangan langsung cek per transaksi. Pecah bertahap supaya kamu tau selisihnya numpuk di mana.
Urutan yang aku pakai: total bulan, lalu per cabang, lalu per minggu, lalu per hari, baru per transaksi. Tiap langkah kamu bakal lihat selisihnya ngumpul di satu kotak, dan sisanya bisa diabaikan.
SELECT
cabang,
DATE_TRUNC('week', tanggal) AS minggu,
SUM(total_kotor) AS omzet_dashboard,
SUM(total_kotor) - SUM(nilai_retur) AS setelah_retur,
ROUND(SUM(total_kotor) / 1.11, 0) AS estimasi_tanpa_ppn
FROM toko_berkah.transaksi
WHERE tanggal >= '2025-10-01' AND tanggal < '2025-11-01'
GROUP BY 1, 2
ORDER BY 1, 2;
Kolom terakhir itu perkiraan kasar buat lihat apakah selisihnya sebesar komponen PPN. Kalau angkanya langsung mendekati versi finance, kamu udah nemu penyebab utamanya.
Ini bagian yang paling nolong waktu presentasi. Susun selisihnya jadi baris-baris yang jumlahnya nutup persis.
| Komponen | Nilai (Rp) | Sumber |
|---|---|---|
| Omzet dashboard (kotor) | 1.420.000.000 | Tabel transaksi |
| Dikurangi PPN 11% | -140.720.000 | Hitungan dari nilai kotor |
| Dikurangi retur yang masuk November | -18.400.000 | Tabel retur |
| Ditambah transaksi 30 Sep yang telat sinkron | +9.120.000 | Log sinkronisasi |
| Ditambah pendapatan sewa etalase | +40.000.000 | Jurnal manual finance |
| Pendapatan versi laporan keuangan | 1.310.000.000 | Buku besar |
Tabel ini yang kamu bawa ke rapat, bukan penjelasan lisan. Begitu tiap baris punya sumber, percakapannya pindah dari "datanya salah" ke "oke, definisinya beda".
Nggak semua selisih harus dihilangkan. Pisahkan jadi dua kelompok.
Beda yang wajar dan permanen: PPN, pendapatan non-operasional, aturan pengakuan pendapatan. Ini nggak perlu diperbaiki, cukup dijelaskan sekali dan didokumentasikan.
Beda yang harus diperbaiki: zona waktu yang salah, cabang yang kelewat, retur yang nggak pernah ditarik ke dashboard. Ini bug, dan harus masuk daftar perbaikan dengan tenggat.
Dari kasus toko_berkah, dari Rp 110 juta selisih, cuma Rp 18,4 juta yang masuk kategori bug. Sisanya beda definisi yang memang sengaja.
Pasang catatan kecil di bawah kartu angka di dashboard. Isinya 3 hal: sumber data, apakah termasuk PPN, dan kapan terakhir diperbarui.
Contoh teks yang aku pakai: "Omzet kotor termasuk PPN, dari sistem kasir, belum dikurangi retur. Angka finance memakai nilai bersih setelah retur dan PPN."
Satu kalimat itu ngurangin pertanyaan berulang. Sebelum ada catatan ini, pertanyaan "kok beda" masuk rata-rata 3 kali sebulan ke aku. Setelah dipasang, turun jadi sekali dua bulan.
Cara mendefinisikan ulang metric secara konsisten juga bisa kamu rapikan lewat lapisan definisi terpusat.
Urutan penyampaian yang paling aman menurut pengalamanku:
Yang bikin kepercayaan runtuh biasanya bukan selisihnya. Yang bikin runtuh itu jawaban "nanti aku cek dulu" yang nggak pernah ada lanjutannya.
Toko_berkah punya 3 cabang, 18.400 transaksi di Oktober 2025. Dashboard baca langsung dari database kasir, finance pakai jurnal di software akuntansi.
Telusuran per minggu nunjukin selisihnya rata di semua minggu, jadi bukan kejadian satu kali. Itu petunjuk kuat ke perbedaan definisi, bukan data hilang.
Begitu nilai kotor dibagi 1,11 buat ngeluarin PPN, selisihnya langsung menyusut dari Rp 110 juta jadi Rp 30,7 juta. Sisanya ketemu di 2 tempat: retur Rp 18,4 juta dan pendapatan sewa etalase Rp 40 juta yang nggak pernah lewat kasir.
Total waktu telusur: 2 jam 15 menit. Kalau dulu aku langsung cek per transaksi, ini bisa makan 2 hari.
Nggak ada angka baku, tapi patokan praktis yang sering dipakai: selisih yang tiap komponennya bisa dijelaskan itu wajar berapa pun nilainya. Yang perlu dikhawatirkan adalah selisih yang nggak bisa diurai, walau cuma 0,5 persen. Sisa selisih yang nggak terjelaskan sebaiknya dicatat dan ditelusuri di siklus berikutnya.
Nggak harus. Dashboard dipakai buat keputusan harian dan biasanya butuh angka mentah yang cepat. Laporan keuangan dipakai buat pelaporan resmi dan ikut aturan akuntansi. Yang penting bukan angkanya identik, tapi selisihnya terdokumentasi dan konsisten polanya dari bulan ke bulan.
Bandingin total harian, terutama tanggal 1 dan tanggal terakhir bulan. Kalau selisihnya numpuk di dua tanggal itu dan hampir nol di tengah bulan, penyebabnya kemungkinan besar zona waktu. Cek juga apakah kolom waktu disimpan dalam UTC, lalu tambahkan konversi ke WIB di query dashboard.
Tergantung sumber masalahnya. Kalau salah pengambilan data atau salah rumus di dashboard, itu tugas tim data. Kalau ada transaksi yang salah input di kasir, itu tugas operasional. Kalau bedanya karena aturan pengakuan pendapatan, nggak ada yang perlu dibenerin, cukup dicatat sebagai perbedaan definisi.
Kalau pertanyaan selisih muncul lebih dari sekali sebulan, iya. Bikin satu halaman khusus yang pakai definisi finance persis, lengkap dengan pengurangan retur dan PPN. Halaman operasional tetap pakai angka kotor supaya tim penjualan bisa lihat performa harian tanpa nunggu tutup buku.
Selisih dashboard dan laporan keuangan biasanya soal PPN, retur, waktu pencatatan, dan cakupan data.
Telusuri dari total ke rinci, susun tabel rekonsiliasi, lalu pisahkan mana bug dan mana beda definisi.
Kalau kamu mau definisi metriknya seragam di semua laporan, baca penjelasan semantic layer. Buat yang masih ngerekap di spreadsheet, SUMIFS dan COUNTIFS cukup buat bikin tabel rekonsiliasi sederhana. Prinsip pengakuan pendapatan yang dipakai finance bisa kamu cek di daftar standar akuntansi keuangan IAI.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Dashboard penjualan yang rapi bisa kamu bikin cuma pakai Google Sheets, tanpa Looker Studio, tanpa add-on, tanpa bayar apa pun. Ini urutan 6 langkahnya, lengkap dengan rumusnya.
Dashboard buat mantau angka yang berubah tiap hari. Laporan buat jawab satu pertanyaan sekali dan tuntas. Salah pilih, kerjaanmu kebuang.
Delapan KPI keuangan yang beneran dibuka CFO tiap bulan, rumusnya, dan cara nyusunnya jadi satu dashboard yang kebaca dalam 90 detik.