Outlet kosong di jam rame, gudang kirim “feeling”, dua dus lenyap di mobil
Anda punya 4–10 cabang. Sabtu sore, Indomie goreng di Outlet C habis total. CS sudah ngomel karena pembeli batal belanja. Manajer cabang panik kirim WA ke gudang: “Tolong kirim 20 dus sekarang.” Barang berangkat setengah jam kemudian, tapi sampai cabang hanya 18 dus. Sisa 2 dus? Nggak ada catatan. Sopir bilang feeling-nya sih lengkap. Besoknya selisih stok di gudang makin bikin kening berkerut.
Problemnya bukan orangnya. Polanya yang berantakan. Kita butuh jalur yang jelas: request → approval → picking → in transit → penerimaan. Di bawah ini blueprint yang bisa langsung Anda pakai besok pagi.
1) SOP Permintaan: Min–Max, Reorder Point, dan Cut-Off Harian
Tujuannya: cabang minta barang bukan pakai “feeling” tapi data, dengan ritme yang bisa ditebak gudang.
- Tentukan Min–Max per SKU per cabang. Contoh: SKU A (fast mover) di Outlet C: Min 12 dus, Max 36 dus. SKU B (medium): Min 6, Max 18. SKU C (slow): Min 2, Max 6. Mulai dari 30 hari histori penjualan + lead time pengiriman rata-rata.
- Hitung Reorder Point (ROP). Rumus praktis: ROP = Rata-rata penjualan harian × Lead time (hari) + Safety stock. Contoh: 8 dus/hari × 1 hari + 4 dus = 12 dus. Begitu stok on hand + stok yang sedang datang < 12, sistem otomatis memunculkan draft permintaan.
- Standarisasi format Transfer Request (TR). Wajib isi: Kode cabang asal/tujuan, tanggal butuh (ETA), SKU, qty, alasan (ROP/Promo/Display), catatan kemasan. Contoh penamaan: TR-BDG-OUTC-2026-09-14-001. TR yang “Promo” wajib lampirkan poster atau ID promo.
- Tetapkan cut-off harian. TR sebelum 11:00 = kirim same-day (slot truk 13:00). TR sampai 16:00 = next-day (slot 09:00). Di luar jadwal = urgent fee atau ditahan; ini melatih disiplin dan memudahkan perencanaan rute.
- Monitoring otomatis OOS (out-of-stock) risk. Jika proyeksi stok < Min dalam 24 jam, sistem tag TR sebagai Priority 1. Override manual boleh, tapi tercatat alasan dan nama approver.
KPI yang dipantau mingguan: (a) Stockout rate cabang (% SKU habis), target < 2% untuk A item. (b) Request compliance (% TR yang berbasis ROP/Min–Max), target > 85%.
2) Approval & SLA Pengiriman: Prioritas Jelas, Anggaran Terkendali
Tujuannya: barang bergerak cepat untuk yang penting tanpa membuat gudang burnout atau biaya meledak.
- Matriks approval berbasis nilai & kategori SKU. Contoh: TR ≤ Rp3 juta auto-approve; Rp3–10 juta butuh Supervisor Gudang; > Rp10 juta + promo butuh Ops Manager. SKU A (fast mover) bisa auto-approve jika ROP triggered.
- SLA by zone. Dalam kota: same-day (lead time 6–10 jam). Luar kota radius 50 km: next-day (24–36 jam). Luar pulau: by ekspedisi (2–5 hari). Cantumkan SLA di TR agar cabang pasang ekspektasi ke pelanggan.
- Prioritization rule. Urutan picking: (1) TR Priority 1 (risk OOS <24 jam), (2) TR promo dengan tanggal mulai, (3) TR rutin. Isi parsial diperbolehkan untuk SKU kritis agar fill rate tinggi.
- Batching & kapasitas. Maks 120 line item/jam per picker (dihitung dari histori). Jika load > kapasitas, auto-split ke gelombang kedua jam 15:00.
KPI: (a) Transfer lead time request-to-dispatch (jam), target < 6 jam untuk dalam kota. (b) Transfer fill rate (% qty terpenuhi vs diminta), target > 95% untuk A item, > 90% total.
3) Picking List yang Bisa Dicek Ulang: Barcode, 2-Man Rule, dan Packing
Tujuannya: pindah stok tanpa selisih. Kuncinya adalah dokumen jelas dan pemeriksaan cepat tapi tegas.
- Generate picking list by lokasi rak (bin/rack) dan gelombang. Format: SKU, deskripsi, UOM, lokasi, qty, barcode, kolom scan. Gunakan wave picking untuk 3–5 TR sekaligus per zona gudang yang sama.
- Wajib scan barcode saat picking. Toleransi error 0. Jika barcode mismatch, picker tidak bisa lanjut. Untuk SKU tanpa barcode, buat label internal dan tempel di rak serta kemasan.
- 2-man rule saat packing. Picker A ambil barang, Packer B verifikasi dengan scan kedua dan timbang dus. Jika SKU 1 dus = 4,8 kg, selisih > 0,3 kg = recheck.
- Label dan segel. Setiap dus diberi label: CT-DO-BDG-0007-01 (Carton 1), destinasi, dan jumlah SKU di dalamnya. Tutup dengan tamper-evident tape. Foto segel + label sebelum loading.
- Shipping Manifest + penimbangan total. Manifest berisi DO, jumlah karton, berat total, nama sopir, nomor polisi, jam keluar, nomor segel kendaraan. Simpan digital + hardcopy ditandatangani.
KPI: (a) Picking accuracy (tanpa RCA minor), target ≥ 99,5%. (b) Average packing time per line, target 45–70 detik tergantung SKU.
4) Stock In Transit (SIT) yang Terkendali: DO, Pelacakan, dan Bukti Perjalanan
Tujuannya: tidak ada stok “menggantung” yang bikin neraca berantakan. Begitu DO diposting, stok di gudang sumber berkurang dan muncul akun SIT sampai cabang menerima.
- DO men-trigger SIT otomatis. Field wajib: DO number, TR reference, cabang tujuan, qty per SKU, jumlah karton, berat, sopir, rute, ETA. Setelah DO posted, inventory di cabang sumber berkurang, SIT meningkat nilai dan qty.
- Geotagged milestone. Wajib foto + geotag + timestamp di 3 titik: (1) Gate out gudang, (2) Arrive cabang, (3) Selesai bongkar. Koneksi putus? Upload maksimal 2 jam kemudian.
- SOP deviasi. Keterlambatan > 2 jam dari ETA = status “Delayed” dan notifikasi ke cabang. Karton rusak? Foto, simpan segel, pindah ke area karantina cabang saat tiba, buat Discrepancy Report.
- SIT aging alert. SIT > 1 hari (dalam kota) = oranye; > 2 hari = merah. Ada daily huddle 15 menit jam 09:15 hanya untuk menutup SIT “merah”.
KPI: (a) SIT aging rata-rata (hari), target < 1,2 hari. (b) Shrinkage transfer (% selisih qty nilai vs DO), target ≤ 0,2% nilai bulanan.
5) Penerimaan & Rekonsiliasi: Blind Count, Toleransi, dan Closing Harian
Tujuannya: cabang terima barang dengan benar tanpa “tergoda” angka DO. Caranya hitung dulu, cocokkan belakangan.
- Blind receiving. Tim kasir/receiving hanya lihat daftar SKU tanpa qty DO. Mereka hitung & scan per karton. Setelah submit, sistem tampilkan qty DO untuk rekonsiliasi.
- Toleransi dan penanganan selisih. Toleransi ±1 unit atau ±1% per SKU (ambil yang lebih kecil). Lebih dari itu = buat Discrepancy Report dalam 24 jam dengan foto label karton + segel rusak (jika ada).
- Goods Receipt (GR) & posting. Setelah cocok, GR diposting: SIT berkurang, stok cabang bertambah. Selisih negatif diposting ke akun “Variance Transfer” untuk investigasi mingguan.
- Cycle count mikro. 20 SKU teratas (A item) dicek tiap Jumat pagi. Target akurasi ≥ 99%. Jika dua kali berturut-turut meleset, audit lokasi rak dan perbaiki layout.
- Closing harian SIT. Jam 17:30, cek dashboard: SIT outstanding dan alasan. Tidak boleh tidur jika masih ada SIT “merah” tanpa rencana jelas.
KPI: (a) On-time receiving (% GR ≤ 4 jam setelah tiba), target ≥ 95%. (b) Variance resolved ≤ 72 jam, target ≥ 90% kasus.
Dokumen Wajib & Contoh Penomoran
- Transfer Request (TR): TR-BDG-OUTC-2026-09-14-001. Field: cabang asal/tujuan, tanggal butuh, SKU, qty, alasan, lampiran.
- Picking List (PL): PL-DO-BDG-0007. Field: SKU, lokasi, qty, kolom scan, checker.
- Delivery Order (DO): DO-BDG-0007. Field: referensi TR/PL, detail SKU, karton, berat, sopir, nopol, ETA.
- Shipping Manifest (SM): SM-0007. Field: ringkasan DO, jumlah karton, berat total, jam keluar, no segel, tanda tangan.
- Stock In Transit Ledger (SIT): otomatis dari DO sampai GR.
- Goods Receipt Note (GRN): GRN-OUTC-0007. Field: hasil hitung, selisih, foto bukti.
- Discrepancy Report (DR): DR-0007-01. Field: SKU, qty DO vs terima, kronologi, foto, tindakan.
Dashboard KPI yang Perlu Ada
- Transfer Fill Rate = Qty terkirim / Qty diminta. Filter per SKU A/B/C dan per cabang.
- Request-to-Dispatch Lead Time (jam) per gelombang.
- Picking Accuracy dan Packing Time per Line.
- SIT Aging + daftar DO > 1–2 hari.
- Shrinkage Transfer (% nilai) dan 5 rute teratas penyumbang selisih.
- Stockout Rate per Cabang dan 20 SKU penyebab terbanyak OOS.
Contoh Implementasi di POS/ERP tanpa Tim IT (pakai Marlin)
Kalau Anda mau jalankan blueprint ini tanpa bikin sistem sendiri, modul manajemen cabang di Marlin bisa jadi jalur cepat. Anda bisa set Min–Max dan ROP per SKU per outlet, sehingga draft Transfer Request muncul otomatis ketika stok mendekati batas. Approval matrix tinggal diatur per nominal/syarat promo. Begitu TR disetujui, Marlin generate Picking List by lokasi rak, dukung barcode scanning via perangkat mobile, dan otomatis buat Delivery Order lengkap dengan jumlah karton dan berat. Saat DO diposting, stok di gudang berkurang dan tercatat sebagai Stock In Transit sampai cabang melakukan Goods Receipt (bisa “blind receiving”) dan, kalau ada selisih, langsung terbentuk Discrepancy Report untuk ditindaklanjuti.
Di sisi pelaporan, dashboard Marlin menampilkan SIT aging, fill rate, lead time, sampai shrinkage transfer per rute. Jurnal keuangan dan nilai persediaan ikut rapi karena SIT dicatat sebagai akun sementara hingga GR diposting. Praktiknya sederhana: mulai dari set Min–Max 50 SKU A, aktifkan auto-approve untuk TR ≤ Rp3 juta, tetapkan cut-off 11:00/16:00, dan uji 1–2 rute pengiriman dulu selama 2 minggu. Biasanya, stockout A item turun, sedangkan selisih transfer ikut merapih.
Blueprint di atas bisa Anda jalankan step by step. Mulai dari hal kecil: tetapkan cut-off hari ini, pasang label rak besok, minggu depan aktifkan barcode scan. Begitu alurnya klik, kirim barang antar cabang rasanya nggak lagi tebak-tebakan.