Ringkasan Penjualan
Penjualan, jam ramai, dan Pareto produk dalam satu halaman.
Tren Penjualan Harian
Rincian per Brand
Klik nama brand untuk lihat rincian per outlet.
Jam Ramai
Rata-rata transaksi per hari, jam WIB. Hijau terang = 3 jam tersibuk. Angka jam tebal = kelas A Pareto (80% penjualan).
Pareto Produk
Kelas A = produk yang menyumbang 80% pertama penjualan, B = 15% berikutnya, C = sisanya. Dihitung dari harga saat terjual, tanpa order marketing. Pareto untuk peringkat, jadi totalnya bisa sedikit beda dari Gross.
Rincian pembayaran
Rincian per hari
Riwayat 8 pekan
Export Excel
Tren Penjualan Harian
Jam Ramai
Total transaksi (TC) per jam, dari data hari ini. Waktu mengikuti jam lokal browser.
Breakdown Pembayaran
Grab / Gojek / Shopee Food = nominal struk platform (input kasir), sama dengan app POS.
Penjualan per Produk
| # | Produk | Qty |
|---|
Rekap per Tanggal
| Tanggal | Gross | Bersih | Cash | Cashless | Transfer | Grab | Gojek | Shopee | TC |
|---|
Target Penjualan per Outlet
Cara baca
Klik kolom Target untuk ubah nilainya, lalu klik di luar kolom (atau Enter) untuk simpan — tersimpan otomatis ke sales_target. Aktual dari daily_summary (ojol = nominal struk), sama sumbernya dgn tab Ringkasan/Ringkasan Bisnis.
| Brand | Outlet | Target | Aktual | Pencapaian |
|---|
Bahan Terbanyak Terpakai
| Bahan | Total Terpakai | Rata-rata /hari (7 hari) | Unit | Stok Sekarang | Sisa Hari |
|---|
Rata-rata /hari & Sisa Hari = basis 7 hari penjualan terakhir (bukan rentang tanggal di atas — itu cuma buat "Total Terpakai"). Kalau produk itu 0 di 7 hari terakhir, dipakai angka standar dari dashboard lama (Odadog Rudal 118, Odadog Paus 167, Burger Liam 363, Burger Noel 44 porsi/hari) sebagai fallback.
Stok Sekarang = SO (Stock Opname) terakhir yang di-input staff lewat app (tab Inventori). Sisa Hari = stok ÷ rata-rata pakai per hari. AMAN ≥5 hari, LOW 2-5 hari, KRITIS <2 hari.
Total Terpakai = qty terjual (semua order, kecuali batal) di rentang tanggal yang dipilih × takaran resep (BOM) per produk, dikonversi ke bahan baku mentah.
Forecast Pengiriman Mingguan
Rekomendasi qty PO per jadwal (Senin/Rabu/Jumat/Sabtu, tiap jadwal nutupin sampai jadwal berikutnya), dihitung per-outlet mandiri. PO terdekat = rata-rata × faktor keramaian hari + buffer 2.3 hari − stok efektif. PO berikutnya = rata-rata × faktor keramaian hari saja. Faktor keramaian dari histori 42 hari transaksi live.
Qty sudah dikonversi ke unit pembelian (gram→kg, ml→L) & dibulatkan ke kelipatan pack: sayur (Timun Kyuri/Tomat/Lettuce) ×5 kg, Mayonaise/Saus BBQ ×3 kg (1 pack), Saus Cabai/Tomat Sachet ×20 pcs (1 pack), lainnya ×25 pcs — sama persis dengan aturan pembulatan di app (tab Inventori).
SO per Outlet — Kirim Besok
Cara baca
Formula sama persis dengan tab Forecast di app Flutter (STOK = proyeksi dari SO terakhir per bahan, MAX = 2.3× rata-rata pemakaian 14 hari terakhir + 30% kalau besok weekend, Min = 1.2×) — pakai setting default (multiplier custom per-outlet, kalau ada, belum tersinkron ke sini karena cuma tersimpan di HP masing-masing).
Rata-rata pemakaian 14 hari di-cache, cuma dihitung ulang tanggal 1 & 15 tiap bulan (bukan tiap klik) — biar gak lama. STOK & MAX/Min tetap dihitung ulang tiap klik karena SO bisa berubah tiap hari.
| Outlet | Brand | SO Terakhir | Perlu Kirim | Kritis |
|---|
Klik outlet untuk lihat rincian per bahan. Perlu Kirim = jumlah bahan dengan MAX > 0 (STOK di bawah target). Kritis = jumlah bahan dengan STOK di bawah Min (batas darurat hari ini).
Selisih SO — Aktual vs Teoritis (per hari)
Cara baca
Satu outlet, satu hari (mode Periode: dari SO tanggal awal ke SO tanggal akhir, mis. Senin ke Senin). Tiap barang: SO kemarin + masuk − terjual = seharusnya, lalu dibandingkan dengan SO hari itu. Masuk = invoice CPNB (selama invoice belum datang: input gerai). Fokus ke selisih minus (stok fisik kurang): selisih plus dianggap aman (hijau, tanda + merah).
Kedisiplinan SO — (semua outlet, buka untuk lihat)
| Outlet | Brand | Bahan terisi / patokan | % | Status |
|---|
Patokan = jumlah bahan berbeda yang di-SO outlet itu dalam 14 hari sebelum tanggal ini (bukan daftar resmi).
Cek SO Harian — Barang Utama
Cara baca
Seharusnya = SO kemarin + barang masuk − keluar/waste − (BOM × penjualan hari itu). Selisih = SO hari ini − seharusnya; dianggap cocok bila ±3 pcs atau ±10% dari yang terjual. SO dianggap SO tutup toko. Barang utama: Hotdog = Patty (Medium/Smash/Reguler), Bun (Medium/Regular/Odadog), Sosis · Tegalega = Ayam Goreng Basah & Ayam Lengkuas.
| Outlet | Brand | Penjualan | Barang masuk | Cocok | Kurang | Lebih | SO disalin? | Belum SO |
|---|
Barang masuk dihitung dari invoice CPNB (sistem) + transfer otomatis. Selama invoice belum datang (tidak ada invoice bahan itu ±2 hari), input gerai (tablet POS / GR Jejak Absen) dihitung sementara (Menunggu invoice); begitu invoice masuk, hitungan beralih ke invoice dan input gerai jadi pengecek & dokumentasi fisik: Sudah dicek gerai / Gerai ≠ invoice / Belum dicek gerai. Klik outlet untuk rincian per bahan, cek roti vs isi, penjualan per menu, dan tombol Salin pesan untuk PIC. Kurang = fisik lebih sedikit dari seharusnya (hilang/waste tak dicatat/salah hitung). Lebih = fisik lebih banyak (barang masuk belum dicatat/salah hitung).
Pergerakan Stok — Barang Masuk/Keluar & SO
Cara baca
Gabungan tampilan dua sumber data yang independen: log "Barang Masuk/Keluar/Waste" (input manual lewat app) dan riwayat Input SO (stock opname). Keduanya CUMA ditampilkan bareng di sini — Barang Masuk/Keluar tidak memotong/menambah BOM atau SO otomatis.
Riwayat Barang Masuk / Keluar / Waste
| Tanggal | Arah | Jumlah Bahan | Catatan | Foto |
|---|
Klik baris untuk lihat rincian bahan & qty per transaksi.
Riwayat Stock Opname (SO)
| Tanggal | Jumlah Bahan Tercatat |
|---|
Klik tanggal untuk lihat rincian qty fisik per bahan hasil Input SO hari itu.
Detail Transaksi
Cara baca
Default rentang = minggu ini (Senin s/d hari ini). Rentang lebar + Semua Outlet bisa berat, pertimbangkan pilih 1 outlet kalau cuma butuh 1 gerai. Transaksi selesai & antrian yang ditampilkan (batal/void/hold dikecualikan). Klik baris untuk lihat rincian item.
| Tanggal | Jam | Nota | Outlet | Kasir | Metode Bayar | Total | Status |
|---|
PER PEKAN (SENIN – MINGGU)
Ringkasan Sales Weekly — Semua Unit Bisnis
Penjualan Kotor per Pekan
Rincian per Pekan
Selisih (WoW) = dibanding pekan sebelumnya. Pekan berjalan belum penuh, jadi wajar tampak turun.
PERIODE LAPORAN
Ringkasan Bisnis — Semua Unit Bisnis
Tentang angka penjualan
Penjualan kotor: order ojol memakai nominal struk platform yang diinput kasir, sama dengan app POS. Hari Ini menampilkan rekap harian yang sudah tercatat. Rentang tanggal menghitung ulang transaksi; periode yang lebih panjang membutuhkan waktu lebih lama.
Tren Penjualan Harian — Semua Bisnis
Kontribusi per Brand
Jam Ramai — per Brand
Channel Penjualan
Dine-in = tunai + cashless (QRIS/kartu). Delivery = Grab + Gojek + ShopeeFood (nominal struk).
Rincian per Brand
Klik nama brand untuk lihat rincian per outlet.
Harga Modal Bahan Baku
Isi harga modal per unit pembelian (kg/L/pcs) — dipakai buat hitung margin tiap produk lewat resep (BOM). Brand: .
| Bahan | Unit Beli | Harga per Unit (Rp) |
|---|
Margin per Produk
| Produk | Harga Jual | Modal (COGS) | Margin | Margin % |
|---|
Modal = jumlah (qty resep × harga modal bahan) per produk. Produk dengan bahan yang belum diisi harga modalnya ditandai Belum lengkap.
Anomali Transaksi — Pemantauan Fraud
Cara pakai (SOP Anti-Fraud bagian 6–8)
Cek setiap hari kerja. Untuk tiap anomali: konfirmasi ke Kepala Outlet/kasir, cek struk/riwayat order/CCTV, lalu pilih Wajar, Kesalahan operasional (koreksi + edukasi), atau Indikasi fraud (lapor Direktur, eskalasi ke Yokke/Bank maks 1×24 jam). Target tindak lanjut 1–12 jam kerja. Outlet event tidak dicek untuk aturan nominal berulang & lonjakan. Parameter direview tiap 3 bulan.
Tekan Muat untuk memeriksa transaksi.