tumbuh.ai
Panduan Pengguna

10 · Laporan, Notifikasi & Kesehatan Sistem

Modul Laporan merangkum pendapatan, pasien, operasional, SDM, dan stok dalam grafik serta angka ringkas. Di bagian ini juga dijelaskan pusat notifikasi dan halaman Kesehatan Sistem. Tiap laporan hanya muncul di menu bila peran Anda punya izinnya.

1 Dashboard Eksekutif

Buka modul Laporan lalu menu Dashboard Eksekutif (halaman Ringkasan Eksekutif). Halaman ini butuh izin report:executive.

  1. Pilih Periode (Hari ini, Kemarin, Bulan berjalan) dan Cakupan Cabang (Semua Cabang atau satu cabang) di kanan atas.
  2. Baca kartu KPI: Pendapatan Periode Ini, Pasien Periode Ini, Janji Temu Periode Ini, Margin Kotor, Beban, dan Margin Bersih.
  3. Gulir ke bawah untuk grafik Tren Pendapatan dan Tren Pasien (6 bulan terakhir), Pendapatan per Cabang, tabel Perbandingan Cabang, Peringatan Operasional (mis. no-show tinggi) dan Status Laporan Terjadwal. Setiap grafik punya tombol Grafik / Tabel untuk berganti tampilan.
Dashboard Eksekutif dengan kartu KPI pendapatan, pasien, janji temu dan margin

Dashboard Eksekutif: filter periode dan cabang serta kartu KPI.

Bagian bawah dashboard: pendapatan per cabang, perbandingan cabang, peringatan operasional

Bagian bawah dashboard: perbandingan cabang dan peringatan operasional.

💡 Kartu "AI insight" belum aktif; ia menampilkan pesan bahwa endpoint insight belum tersedia. Abaikan saja.

💡 Keadaan kosong: bila belum ada tagihan atau janji temu pada periode itu, kartu menampilkan Rp 0 atau 0 dan grafik tampil datar. Data muncul setelah ada transaksi, jadwal, atau jurnal beban.

2 Multi Cabang dan Ranking Cabang

Menu Multi Cabang membandingkan Total Revenue, Total Pasien, dan Total Janji Temu seluruh cabang pada satu periode, ditambah grafik Pendapatan per Cabang dan Pertumbuhan vs Periode Lalu. Ranking Cabang mengurutkan cabang menurut Metrik yang Anda pilih. Keduanya butuh izin report:executive.

Pilih periode lewat tombol Bulan Ini, Bulan Lalu, Q1–Q4, atau Custom (pilih bulan lewat kolom bulan yang muncul).

Laporan Multi Cabang dengan total revenue, pasien, janji temu dan grafik per cabang

Laporan Multi Cabang.

3 Laporan operasional

Kelompok Klinik & Pasien di menu Laporan (izin report:operational, kecuali Google Review report:google_review dan Demografi report:patient):

  • Operasional Harian: kunjungan (Total Janji, Selesai, Dibatalkan), pasien, Okupansi Kursi, Revenue, dan pemakaian promo pada satu Tanggal.
  • No-Show: kartu Total Janji, No-Show, No-Show Rate, dan Janji Dibatalkan; tren mingguan (tampilan Tabel memuat kolom Tidak hadir, Batal, dan Rate per minggu) serta no-show per waktu praktik. Filter Cabang, tanggal, Kelompok usia, dan Gender berlaku untuk semua angka. Janji Dibatalkan menghitung jadwal berstatus batal; jadwal yang dipindah (reschedule) tidak dihitung batal karena yang dihitung jadwal barunya, sehingga angkanya bisa lebih kecil dari Dibatalkan di Operasional Harian. Janji batal tetap termasuk Total Janji dan dasar perhitungan No-Show Rate.
  • Okupansi Kursi, Rasio Pasien, Supervisi, dan Google Review.
  • Performa Shift: pasien, omzet, basket size, dan konversi sumber booking per shift (izin report:operational atau report:financial), dengan tombol Unduh Rekap Shift dan Unduh Rincian Transaksi.

Filter Cabang di Operasional Harian, Okupansi Kursi, No-Show, Rasio Pasien, dan Supervisi terbuka pada Semua Cabang: angkanya dijumlahkan dari cabang yang boleh Anda akses. Bila Anda tidak berwenang atas semua cabang, di bawah filter tertulis Cabang yang Anda akses: …. Pilih satu cabang untuk melihat angka cabang itu saja.

Okupansi Kursi pada Semua Cabang = total menit kursi terisi dibagi total menit kapasitas, hanya dari cabang yang buka dan punya jadwal pada rentang itu. Cabang lain tidak dihitung dan disebut di kartu, misalnya 2 cabang tanpa jadwal/tutup tidak dihitung. Tombol Unduh di Okupansi Kursi menghasilkan satu baris per tanggal per cabang yang dihitung.

Rasio Pasien pada Semua Cabang menghitung setiap pasien sekali. Pasien yang mendaftar di cabang A lalu berkunjung ke cabang B terhitung baru di Semua Cabang tetapi kembali di laporan cabang B saja, jadi jumlah per cabang tidak selalu sama dengan totalnya.

Laporan Operasional Harian dengan filter Cabang pada Semua Cabang, total janji, pasien baru dan okupansi kursi

Operasional Harian untuk satu tanggal, filter Cabang terbuka pada Semua Cabang.

Laporan No-Show dengan filter, kartu Total Janji, No-Show, No-Show Rate dan Janji Dibatalkan, serta tabel tren mingguan berkolom Batal

Laporan No-Show: kartu Janji Dibatalkan dan kolom Batal pada tampilan Tabel tren mingguan.

4 Laporan keuangan

Kelompok Keuangan (izin report:financial): Laba Rugi, Pendapatan, Komisi, Arus Kas, dan Metode Pembayaran.

  1. Pilih Periode: Bulan Ini, Bulan Lalu, Q1–Q4, atau Custom untuk memilih bulan tertentu.
  2. Pilih Cabang. Bila kolom masih "Pilih cabang", laporan menunggu pilihan Anda.
  3. Baca kartu Pendapatan, HPP, Laba Kotor, Laba Bersih, Margin, dan Total Pengeluaran, lalu grafik Laba Rugi Ringkas dan Rincian Beban di bawahnya.
Laporan Laba Rugi dengan filter periode dan cabang serta kartu pendapatan dan laba

Laba Rugi untuk bulan berjalan.

Pemilih periode Custom menampilkan kolom bulan

Periode Custom: pilih bulan lewat kolom yang muncul.

⚠️ Laba Bersih bisa bernilai negatif (mis. -Rp 3.150.000) bila beban lebih besar daripada pendapatan; itu hasil hitungan, bukan galat.

5 Laporan SDM dan inventori

  • SDM (izin report:hr): Absensi (Absensi Karyawan: hadir, terlambat, absen per karyawan), Penggajian, KPI Staf (pilih posisi dulu), dan Dokumen Kedaluwarsa. Untuk absensi, atur Dari Tanggal, Sampai Tanggal, dan Cabang.
  • Inventori (izin report:inventory): Level Stok, Pergerakan Stok, Stok Kedaluwarsa, dan Valuasi Inventori. Level Stok membandingkan stok tiap item dengan batas minimumnya (Optimal, Stok Rendah, Habis).
Laporan Absensi Karyawan dengan komposisi kehadiran

Absensi Karyawan.

Laporan Level Stok dengan status stok optimal dan rendah

Level Stok.

6 Demografi pasien dan Kinerja CS

Demografi Pasien (izin report:patient) menampilkan distribusi usia, gender, sumber, dan sebaran cabang. Tanpa rentang tanggal, angka mencakup seluruh pasien aktif; usia dihitung dari tanggal lahir saat laporan dibuka.

Kinerja CS (izin report:cs_performance) menunjukkan jumlah pasien yang dijadwalkan per tim CS, berapa yang hadir, dan nilai tindakan. Atur Dari/Sampai Tanggal, Cabang, Tim CS, dan Dasar tanggal. Jadwal tanpa tim CS dikumpulkan di baris "Tanpa CS". Laporan serupa untuk admin ada di Kinerja Admin (report:admin_performance).

Demografi Pasien dengan distribusi usia dan gender

Demografi Pasien.

Kinerja CS dengan jadwal, hadir dan rasio kehadiran

Kinerja CS.

💡 Keadaan kosong: bila tidak ada data pada rentang itu, halaman memuat pesan seperti "Belum ada pasien pada rentang ini" atau "Belum ada jadwal pada rentang ini". Ubah rentang tanggal atau cabang.

7 Laporan Promo & Voucher

Kelompok Pemasaran → Promo & Voucher (izin report:voucher) melacak voucher dan promo per program, kode, dan affiliate. Atur Dari/Sampai Tanggal, Cabang, Jenis, Program/Promo, dan Affiliate (pilih Tanpa affiliate untuk program/promo yang belum diberi affiliate).

  • Jenis: Voucher Unik (diterbitkan per pasien), Voucher Bersama (satu kode untuk banyak pasien, mis. TikTokLiveSB), Kode Promo, dan Voucher Booking.
  • Terbit: voucher unik dan voucher booking yang diterbitkan pada rentang itu di cabang penerbit. Voucher bersama dan kode promo tidak punya angka terbit (tampil "—"); sebagai gantinya tampil Kuota/Sisa, yaitu posisi saat ini dan tidak mengikuti filter.
  • Diklaim: jumlah pasien berbeda. Untuk voucher unik/booking = pasien yang menerima voucher; untuk voucher bersama/kode promo = pasien yang memakainya.
  • Terpakai: jumlah pemakaian pada rentang itu di cabang tempat tagihan dibayar. Satu pasien yang memakai kode bersama dua kali dihitung Diklaim 1, Terpakai 2. Tagihan yang dibatalkan atau dikembalikan tidak dihitung.
  • Nilai Terpakai dan Hangus: voucher alat bayar (voucher unik/bersama) menggerus sisa tagihan seperti metode bayar; bila nominal voucher lebih besar dari sisa tagihan, selisihnya Hangus. Diskon harga (kode promo, voucher booking) menurunkan total tagihan dan tidak punya hangus. Kedua kelompok ditampilkan terpisah dan tidak pernah dijumlah.
  • Klik baris tabel ringkasan untuk menyaring satu program/promo. Tabel rincian memuat satu baris per voucher/pemakaian dengan nama dan nomor pasien; nomor telepon tidak ditampilkan. Kolom pencarian rincian tidak tersimpan di alamat halaman.
  • Aturan harga dan Dokter tarif (rincian): untuk promo bermatriks, aturan yang menentukan harga pasien itu (Tarif dasar, Tarif hari, Tarif dokter, atau Tarif dokter + hari) dan nama dokter bila harganya harga dokter. Kutipan lama tampil sebagai Tarif dasar.
  • Unduh (izin report:export) menghasilkan Excel dua sheet (Ringkasan dan Rincian) atau CSV rincian. Berkas memuat seluruh rincian sesuai filter, tanpa kata kunci pencarian.
Laporan Promo dan Voucher dengan filter, kartu voucher alat bayar dan diskon harga, tabel ringkasan per jenis, serta rincian per pasien

Promo & Voucher: alat bayar dan diskon harga dipisah.

💡 Mengapa angka diskon promo berbeda dari KPI Promo di Operasional Harian? Laporan ini memakai tanggal pemakaian promo dan cabang tagihan, sedangkan KPI Promo Operasional Harian memakai tanggal tagihan. Selisih hari di sekitar pergantian bulan wajar.

Isian Affiliate ada di form Buat Promo dan Tambah Program Voucher (Pengaturan → Kode Promo & Voucher). Isinya boleh diubah kapan saja, juga setelah program menerbitkan voucher; laporan selalu memakai nilai affiliate yang tersimpan saat ini.

8 Mengunduh laporan (CSV / Excel)

Laporan yang punya tombol Unduh di kanan atas menawarkan dua format: CSV dan Excel (XLSX). Atur filter dulu; berkas mengikuti filter yang aktif.

Menu Unduh dengan pilihan CSV dan Excel (XLSX)

Menu Unduh.

⚠️ Tidak ditemukan tombol unduh PDF di halaman laporan. Pilihan "PDF" hanya ada sebagai format pada jadwal laporan (langkah berikut), yang pengirimannya belum aktif. Tidak semua laporan punya tombol Unduh.

9 Laporan Terjadwal

Menu Terjadwal (izin report:read) menyimpan definisi laporan yang diinginkan. Klik Tambah Jadwal, isi Nama Jadwal, Tipe Laporan (Revenue Harian, Ringkasan Mingguan, P&L Bulanan, Custom), Frekuensi, Waktu Kirim, dan Format, lalu Simpan Jadwal.

Daftar Laporan Terjadwal berisi jadwal Pendapatan Harian Klinik Demo dengan status Aktif

Laporan Terjadwal: satu jadwal tersimpan (Tipe Revenue Harian, Jadwal Harian, Format PDF, Status Aktif, kolom Terakhir Dikirim masih "-").

Dialog Tambah Jadwal Laporan

Dialog Tambah Jadwal Laporan.

Untuk apa: menyimpan daftar laporan yang kelak ingin dikirim berkala, misalnya pendapatan harian pukul 20:00. Setelah disimpan: baris baru muncul di tabel dengan status Aktif; klik namanya untuk mengubahnya. Status Laporan Terjadwal juga tampil di Dashboard Eksekutif.

⚠️ Laporan terjadwal belum berjalan otomatis: jadwal hanya tersimpan sebagai definisi dan belum ada laporan yang dikirim ke penerima.

10 Pusat Notifikasi

Halaman Notifikasi (alamat /notifikasi; untuk karyawan di aplikasi presensi: /attendance/notifikasi) berisi pemberitahuan untuk akun Anda, misalnya persetujuan, roster, cuti, payroll, dokumen, dan inventori.

  1. Subjudul menunjukkan jumlah yang belum dibaca atau "Semua sudah dibaca".
  2. Saring dengan chip kategori (mis. Persetujuan, Roster, Cuti) atau centang Belum dibaca saja.
  3. Klik sebuah notifikasi untuk membukanya dan menandainya terbaca (bila memiliki tautan, Anda diarahkan ke halaman terkait).
  4. Klik Tandai semua dibaca untuk menandai semua (atau semua dalam kategori yang sedang dipilih). Gunakan Sebelumnya / Berikutnya bila lebih dari 20 notifikasi.
Pusat Notifikasi dalam keadaan kosong

Pusat Notifikasi, keadaan kosong: "Belum ada notifikasi."

⚠️ Lonceng notifikasi tidak terpasang di header aplikasi manajer: komponen lonceng ada di kode tetapi belum dipasang di halaman mana pun. Notifikasi hanya dapat dibuka lewat alamat /notifikasi (manajer) atau /attendance/notifikasi (karyawan); belum ada tautan menu untuknya. Tampilan berisi notifikasi belum dapat diperagakan karena akun demo belum menerima satu pun (contoh pemicu: pengajuan cuti, pengajuan reimbursement, stok menipis; pengaju tidak diberi notifikasi atas pengajuannya sendiri).

💡 Belum ada pengaturan preferensi notifikasi di aplikasi; halaman hanya menyediakan penyaringan dan penandaan terbaca.

11 Kesehatan Sistem

Menu Admin → Kesehatan Sistem (/admin/health, hanya peran dengan izin system:health_read) memantau kondisi sistem dan diperbarui otomatis tiap 30 detik.

  • Empat kartu: Application (versi, uptime), Database (latensi, koneksi), Redis, dan Integrations (jumlah provider dan yang sehat).
  • Lencana status: Operational (normal), Degraded (terganggu atau belum terhubung), atau Error. Saat memuat tampil Checking.
  • Bagian Integrasi Pihak Ketiga mencantumkan tiap provider (pembayaran, WhatsApp, bank, dan sebagainya) dengan waktu pemeriksaan terakhir.
Halaman System Health dengan kartu Application, Database, Redis, Integrations

Kesehatan Sistem.

💡 Integrasi yang belum dikonfigurasi di lingkungan percobaan tampil sebagai Degraded; ini wajar dan bukan kerusakan aplikasi.

12 Laporan SDM tambahan

Untuk apa: memeriksa kelengkapan data karyawan, biaya gaji, dan siapa memegang peran apa.

  • Profil Karyawan (/reports/hr-profile): Rekap Tanggungan & PTKP membandingkan status PTKP tercatat dengan yang seharusnya, lalu Kelengkapan Data Karyawan serta Demografi & Pendidikan. Pada data demo, 14 karyawan berstatus "PTKP tidak cocok" karena PTKP tercatat masih kosong ("—") sedangkan seharusnya TK/0. Tombol Unduh tersedia.
  • Biaya Gaji & Skala Upah (/reports/hr-pay-structure): atur Cabang, Periode mulai, Periode selesai; ada Cetak dan tiga unduhan CSV (departemen, posisi, skala upah). Kolom realisasi kosong bila belum ada run payroll pada periode itu.
  • Keanggotaan Peran (/reports/hr/role-membership, izin report:role_membership): pilih peran di kiri untuk melihat akun pemegangnya; angka di samping nama peran adalah jumlah pemegang (mis. Direktur 1, Dokter Gigi 4). Peran tanpa pemegang menampilkan "Belum ada pengguna yang memegang peran ini".
  • Kinerja Admin (/reports/admin, izin report:admin_performance): Rasio Konversi, Rasio Review Admin, dan Rasio Review Cabang per admin. Tanpa data, tampil "—" atau 0.00%. Faktur yang tidak punya admin penutup masuk baris "Tanpa admin dikenal".
Laporan Profil Karyawan dengan rekap tanggungan dan PTKP

Profil Karyawan.

Laporan Biaya Gaji dan Skala Upah dengan filter periode dan tombol unduh CSV

Biaya Gaji & Skala Upah (belum ada run payroll sehingga grafik masih datar).

Keanggotaan Peran: daftar peran dan jumlah pemegangnya

Keanggotaan Peran.

Kinerja Admin dengan rasio konversi dan rasio review

Kinerja Admin.

13 Jejak audit dan log

Catatan siapa mengubah apa tidak berada di modul Laporan, melainkan di Pengaturan dan butuh izin audit:read: /settings/audit-trail (Jejak Audit), /settings/audit (jejak perubahan konfigurasi), dan /settings/exports (riwayat ekspor data). Langkah rinci dan gambarnya ada di bab Pengaturan. Detail transaksi per laporan (/reports/<id>/drill-down) dibuka dari tautan di dalam laporan, mis. angka bergaris bawah di Kinerja Admin.

Terakhir diperbarui pada