# Laporan Akhir Eksplorasi Data

## 1. Ringkasan Eksekutif

Analisis data pemenuhan pesanan ini melibatkan total 131.315 baris data, memberikan gambaran komprehensif tentang operasional penjualan dan logistik. Meskipun volume data cukup besar, beberapa anomali dan peluang perbaikan telah teridentifikasi.

### Kualitas dan Konsistensi Data

Secara umum, data memiliki struktur yang baik, namun terdapat beberapa isu kualitas yang perlu ditangani. Kolom 'Keterangan' dan 'Nama Penerima' kosong sepenuhnya (100% null) dan dapat diabaikan atau dihapus untuk efisiensi. Lebih lanjut, terdapat 4,16% nilai null pada kolom 'Cmc', dan investigasi menunjukkan adanya 365 kombinasi unik KodePI-OutCode-Nama Outlet yang memiliki 'Cmc' null. Hal ini menimbulkan inkonsistensi karena satu 'Cmc' seharusnya unik per outlet, mengindikasikan perlunya validasi data master outlet.

Salah satu anomali data paling signifikan adalah terkait urutan waktu pengiriman. Sebanyak 40.699 (30,99%) catatan menunjukkan tanggal ekspedisi (`Tgl Ekspedisi`) sama atau lebih awal dari tanggal logbook (`Tgl Logbook`), padahal secara logis `Tgl Ekspedisi` seharusnya selalu setelah `Tgl Logbook` (tanggal serah terima kurir > tanggal masuk area staging). Inkonsistensi ini terjadi baik pada pesanan yang dibatalkan maupun yang terpenuhi, menunjukkan adanya potensi masalah dalam proses pencatatan waktu atau perbedaan definisi internal.

Dalam hal konsistensi kuantitas, ditemukan 188 transaksi yang dikategorikan 'TERLAYANI PENUH' namun memiliki `Qty SP` lebih rendah dari `Qty RO`. Ini secara langsung bertentangan dengan definisi 'TERLAYANI PENUH' (semua variasi dan kuantitas dilayani), mengindikasikan adanya salah klasifikasi status pesanan atau masalah pencatatan kuantitas.

### Kinerja Penjualan dan Operasional

Analisis menunjukkan bahwa **Divisi PHARMANET** adalah kontributor utama dalam hal nilai penjualan (sekitar 36,92 miliar Rupiah) dan kuantitas pesanan. Namun, **Divisi VIBRANT 3** menunjukkan tingkat pembatalan yang sangat tinggi, mencapai 19,6%, jauh di atas divisi lainnya. Ini adalah area kritis yang memerlukan investigasi mendalam.

```mermaid
xychart-beta
title "Cancellation Rate by Divisi"
x-axis ['PHARMANET', 'VIBRANT PBF', 'HOSPINET', 'VIBRANT 3']
y-axis "Cancellation Rate (%)" 0 --> 23.568
bar [1.25, 1.48, 1.74, 19.64]
```

Produk yang diproduksi oleh Pharos Grup (ditandai 'Y' pada 'Pharos YN') menyumbang nilai penjualan dan kuantitas yang lebih besar, namun memiliki tingkat pembatalan sedikit lebih tinggi (1,5%) dibandingkan produk non-Pharos (1,1%).

**Asal Gudang** menunjukkan variasi kinerja yang signifikan. PHARMANET SURABAYA, MEDAN, dan BEKASI adalah gudang dengan nilai penjualan tertinggi. Namun, PHARMANET MEDAN dan PHARMANET TANGERANG memiliki tingkat pembatalan yang lebih tinggi (sekitar 2,5%), sementara PHARMANET BANDUNG dan PHARMANET PALEMBANG memiliki tingkat pembatalan yang relatif rendah (sekitar 0,3%). Gudang PHARMANET PUSAT menunjukkan tingkat pembatalan 100%, kemungkinan besar karena volume transaksi yang sangat rendah (22 transaksi).

```mermaid
xychart-beta
title "Cancellation Rate by Asal Gudang"
x-axis ['PHARMANET SURABAYA', 'PHARMANET MEDAN', 'PHARMANET BEKASI', 'PHARMANET TANGERANG', 'PHARMANET BOGOR', 'PHARMANET BANDUNG', 'PHARMANET SEMARANG', 'PHARMANET MAKASSAR', 'PHARMANET JAKTIM', 'PHARMANET SOLO']
y-axis "Cancellation Rate (%)" 0 --> 3.0839999999999996
bar [1.21, 2.54, 1.02, 2.57, 1.36, 0.31, 1.25, 1.98, 2.43, 0.9]
```

**Metode Pembayaran** didominasi oleh BCA Virtual Account, yang juga memiliki tingkat pembatalan terendah di antara metode pembayaran volume tinggi. Metode Term Of Payment dan BRIVA memiliki tingkat pembatalan yang sedikit lebih tinggi.

```mermaid
xychart-beta
title "Cancellation Rate by Payment"
x-axis ['BCA Virtual Account', 'Term Of Payment', 'BRIVA', 'Kredivo']
y-axis "Cancellation Rate (%)" 0 --> 2.004
bar [1.16, 1.55, 1.67, 0.0]
```

Durasi rata-rata proses pemenuhan pesanan menunjukkan bahwa tahapan 'Order ke SP' sangat cepat (0,56 jam). Tahapan 'SP ke DO' dan 'DO ke Logbook' memakan waktu rata-rata sekitar 8,78 jam dan 5,54 jam. Tahapan 'Logbook ke Ekspedisi' memiliki durasi rata-rata 4,04 jam, namun dengan median yang jauh lebih rendah (0,95 jam), mengindikasikan adanya outlier yang signifikan.

Analisis Durasi Proses Pemenuhan Pesanan (dalam jam) untuk 'TERLAYANI PENUH'

| Stage                | Rata-rata Durasi (Jam) | Median Durasi (Jam) | Jumlah Durasi Negatif | Jumlah Durasi Outlier (> 720 jam) | Total Durasi Valid (Positif, Tanpa Outlier) |
|:---------------------|-----------------------:|--------------------:|----------------------:|----------------------------------:|--------------------------------------------:|
| Order To Sp          |                   0,56 |                0,56 |                     0 |                                 0 |                                       19.321 |
| Sp To Do             |                   8,78 |                2,62 |                     0 |                                 0 |                                       19.321 |
| Do To Logbook        |                   5,54 |                2,63 |                     0 |                                 1 |                                       19.300 |
| Logbook To Ekspedisi |                   4,04 |                0,95 |                  5.215 |                                 0 |                                       14.086 |

### Faktor Pembatalan Pesanan

Model regresi logistik mengkonfirmasi beberapa faktor kunci yang memengaruhi kemungkinan pembatalan pesanan, meskipun model menghadapi tantangan dengan kelas 'Pembatalan' yang sangat tidak seimbang (hanya 1,3% dari total pesanan).

**Divisi VIBRANT 3** adalah prediktor pembatalan terkuat. Pesanan dari divisi ini secara signifikan lebih mungkin dibatalkan. Selain itu, penggunaan metode pembayaran **Term Of Payment** dan **BRIVA** juga meningkatkan kemungkinan pembatalan. Beberapa gudang seperti PHARMANET JAKTIM, MEDAN, dan PEKANBARU menunjukkan kecenderungan pembatalan yang lebih tinggi, sementara PHARMANET PALEMBANG dan BANDUNG memiliki tingkat pembatalan yang lebih rendah. Menariknya, kuantitas dan nilai pesanan (`total_qty_ro`, `total_value_ro`) memiliki dampak yang relatif kecil terhadap probabilitas pembatalan dibandingkan faktor-faktor kategorikal ini.

### Rekomendasi Utama

Berdasarkan temuan di atas, berikut adalah rekomendasi strategis dan operasional:

1.  **Prioritaskan Divisi VIBRANT 3**: Segera lakukan investigasi mendalam terhadap Divisi VIBRANT 3 untuk mengidentifikasi akar penyebab tingginya tingkat pembatalan. Ini bisa meliputi masalah ketersediaan produk, isu operasional, atau kesalahpahaman ekspektasi pelanggan. Ini adalah area dengan potensi perbaikan kinerja terbesar.
2.  **Perbaiki Kualitas Data Log Waktu**: Tinjau dan perbaiki proses pencatatan `Tgl Logbook` dan `Tgl Ekspedisi` untuk memastikan urutan logis. Implementasikan validasi data untuk mencegah pencatatan yang tidak konsisten.
3.  **Tindak Lanjuti Inkonsistensi 'TERLAYANI PENUH'**: Selidiki 188 transaksi 'TERLAYANI PENUH' yang kuantitas SP-nya berkurang. Perbaiki definisi dan implementasi status pesanan atau proses pencatatannya.
4.  **Optimalkan Kinerja Gudang**: Lakukan analisis lebih lanjut pada gudang dengan tingkat pembatalan tinggi (misalnya, PHARMANET JAKTIM, MEDAN, TANGERANG, PEKANBARU) untuk mengidentifikasi hambatan operasional atau logistik. Pelajari praktik terbaik dari gudang berkinerja tinggi (PHARMANET BANDUNG, PALEMBANG) dan sebarkan ke seluruh jaringan.
5.  **Evaluasi Metode Pembayaran**: Pahami mengapa metode pembayaran Term Of Payment dan BRIVA memiliki tingkat pembatalan yang lebih tinggi. Pertimbangkan untuk merevisi syarat dan ketentuan, atau perbaiki komunikasi kepada pelanggan yang menggunakan metode ini.
6.  **Validasi Unik 'Cmc'**: Perbaiki isu data master 'Cmc' yang tidak unik untuk beberapa outlet. Ini penting untuk memastikan identifikasi outlet yang akurat dalam analisis lebih lanjut.

Analisis ini memberikan fondasi yang kuat untuk memahami kinerja pemenuhan pesanan dan mengidentifikasi area kritis untuk peningkatan. Dengan mengatasi masalah kualitas data dan fokus pada faktor-faktor yang mendorong pembatalan, perusahaan dapat meningkatkan efisiensi operasional dan kepuasan pelanggan secara signifikan.

## 2. Tinjauan Data Umum

Bagian ini menyajikan tinjauan umum terhadap struktur dan karakteristik data yang digunakan dalam analisis ini. Pemahaman awal terhadap data sangat krusial untuk mengidentifikasi potensi masalah kualitas data, memahami distribusi variabel kunci, dan menetapkan dasar yang kuat untuk analisis yang lebih mendalam.

### 2.1 Ringkasan Data

Dataset yang digunakan terdiri dari 131.315 baris dan 37 kolom, yang merepresentasikan transaksi pemenuhan pesanan pelanggan dari berbagai tahap, mulai dari Order hingga Pengiriman. Setiap baris data mencatat informasi detail mengenai satu item produk dalam suatu pesanan.

### 2.2 Duplikasi dan Konsistensi Data

Analisis awal menunjukkan bahwa tidak ada baris yang secara persis duplikat dalam dataset ini. Namun, deteksi duplikasi pada level transaksional dan identifikasi outlet menunjukkan beberapa anomali:

*   **Duplikasi Kode Outlet**: Kolom `KodePI`, `OutCode`, dan `Cmc` – yang seharusnya unik untuk setiap outlet – ditemukan memiliki nilai duplikat. Lebih lanjut, kombinasi dari ketiga kolom ini (`KodePI`, `OutCode`, `Cmc`) juga tidak unik, dengan 126.253 kombinasi duplikat. Hal ini bertentangan dengan klarifikasi bisnis yang menyatakan bahwa "Setiap outlet memiliki satu outcode, cmc dan kodePI yang unik dan tidak ada duplikasi di outlet lain." Temuan ini mengindikasikan bahwa data yang ada kemungkinan merupakan data tingkat *line-item* di mana satu transaksi dari satu outlet dapat dipecah menjadi beberapa baris untuk setiap produk yang dipesan. Untuk analisis pada tingkat outlet, agregasi data perlu dilakukan dengan hati-hati atau masalah data master ini perlu ditangani.
*   **Duplikasi Transaksi RO**: Kombinasi `No. RO` dan `Tgl. Order` juga ditemukan tidak unik, dengan 110.670 kombinasi duplikat. Ini adalah hal yang wajar dan sesuai ekspektasi untuk data tingkat *line-item*, di mana satu pesanan pembelian (Repeat Order) dapat mencakup banyak produk dan direpresentasikan oleh beberapa baris data.

### 2.3 Penanganan Nilai Kosong (Null Values)

Penanganan nilai kosong merupakan langkah penting untuk memastikan integritas data. Berikut adalah gambaran persentase nilai kosong untuk kolom-kolom yang teridentifikasi memiliki missing values:

| Kolom         | Jumlah Null | Persentase Null |
|:--------------|------------:|----------------:|
| Keterangan    |     131,315 |         100.0%  |
| Nama Penerima |     131,315 |         100.0%  |
| Tgl Diterima  |      10,385 |           7.9%  |
| Cmc           |       5,468 |           4.2%  |
| Value PL      |       1,740 |           1.3%  |
| Tgl Logbook   |         585 |           0.4%  |
| Nama Ekspedisi|         585 |           0.4%  |
| Tgl Ekspedisi |         460 |           0.4%  |
| Nomor Resi    |         460 |           0.4%  |
| No. DO        |         365 |           0.3%  |
| Tgl DO        |         365 |           0.3%  |
| No. PL        |         365 |           0.3%  |
| Tgl. PL       |         365 |           0.3%  |
| Kel. Class    |         107 |           0.1%  |
| Divisi        |           7 |           0.0%  |

**Observasi dan Tindak Lanjut:**

*   **Kolom `Keterangan` dan `Nama Penerima`**: Kedua kolom ini kosong sepenuhnya (100% null). Sesuai klarifikasi, kolom ini dapat diabaikan dalam analisis karena tidak membawa informasi.
*   **Kolom `Cmc`**: Terdapat 5.468 nilai null (4.2%). Investigasi lebih lanjut menunjukkan bahwa ada 365 kombinasi `KodePI-OutCode-Nama Outlet` unik yang memiliki nilai `Cmc` yang kosong. Ini menjadi perhatian serius mengingat `Cmc` seharusnya merupakan pengidentifikasi unik untuk setiap outlet. Masalah ini perlu ditindaklanjuti dengan tim data master atau operasional untuk mengisi atau mengoreksi data.
*   **Kolom Terkait Logistik (`Tgl Diterima`, `Tgl Logbook`, `Nama Ekspedisi`, `Tgl Ekspedisi`, `Nomor Resi`, `No. DO`, `Tgl DO`, `No. PL`, `Tgl. PL`)**: Sejumlah kecil nilai null terdeteksi pada kolom-kolom ini. Meskipun persentasenya kecil, ini dapat mengindikasikan adanya pesanan yang tidak melewati seluruh tahapan logistik atau masalah pencatatan.
*   **Kolom `Kel. Class`**: Memiliki 107 nilai null dan sesuai instruksi, kolom ini akan diabaikan.
*   **Kolom `Divisi`**: Memiliki sangat sedikit nilai null (7 baris atau 0.0%), yang kemungkinan tidak berdampak signifikan pada analisis keseluruhan.

### 2.4 Statistik Deskriptif Kolom Numerik

Analisis statistik deskriptif untuk kolom kuantitas dan nilai memberikan pemahaman dasar tentang skala dan distribusi transaksi.

**Statistik untuk `Qty RO` (Kuantitas Repeat Order):**

| Statistik | Nilai     |
|:----------|:----------|
| count     | 131,315   |
| mean      | 11.0      |
| std       | 71.7      |
| min       | 0         |
| 25%       | 1         |
| 50%       | 3         |
| 75%       | 6         |
| max       | 7,200     |

**Statistik untuk `Qty SP` (Kuantitas Surat Pesanan):**

| Statistik | Nilai     |
|:----------|:----------|
| count     | 131,315   |
| mean      | 10.9      |
| std       | 71.5      |
| min       | 0         |
| 25%       | 1         |
| 50%       | 3         |
| 75%       | 6         |
| max       | 7,200     |

**Statistik untuk `Qty DO` (Kuantitas Delivery Order):**

| Statistik | Nilai     |
|:----------|:----------|
| count     | 131,315   |
| mean      | 10.9      |
| std       | 71.5      |
| min       | 0         |
| 25%       | 1         |
| 50%       | 3         |
| 75%       | 6         |
| max       | 7,200     |

**Statistik untuk `Value PL` (Nilai Packing List):**

| Statistik | Nilai            |
|:----------|:-----------------|
| count     | 129,575          |
| mean      | 425,090          |
| std       | 1,935,300        |
| min       | 0                |
| 25%       | 71,706           |
| 50%       | 145,203          |
| 75%       | 318,443          |
| max       | 166,269,800      |

**Statistik untuk `Value RO` (Nilai Repeat Order):**

| Statistik | Nilai            |
|:----------|:-----------------|
| count     | 131,315          |
| mean      | 423,485          |
| std       | 1,926,521        |
| min       | 0                |
| 25%       | 71,068           |
| 50%       | 144,590          |
| 75%       | 317,193          |
| max       | 166,269,800      |

**Observasi:**
*   Kuantitas rata-rata untuk `Qty RO`, `Qty SP`, dan `Qty DO` relatif rendah (sekitar 11 item per transaksi), tetapi nilai maksimumnya sangat tinggi (7.200), menunjukkan adanya pesanan skala besar yang jarang terjadi.
*   Distribusi nilai juga sangat bervariasi, dengan rata-rata sekitar Rp 420 ribu dan nilai maksimum mencapai Rp 166 juta. Ini mengindikasikan keberadaan pesanan dengan nilai sangat tinggi yang dapat menarik perhatian khusus dalam analisis penjualan.
*   Perhatikan bahwa `Value PL` memiliki jumlah `count` yang sedikit lebih rendah dari `Value RO`, sejalan dengan jumlah nilai null yang terdeteksi.

### 2.5 Distribusi Data Kategorikal

Analisis distribusi nilai untuk kolom-kolom kategorikal memberikan gambaran tentang komposisi transaksi berdasarkan atribut tertentu.

**Distribusi `Divisi`:**
Mayoritas transaksi berasal dari Divisi PHARMANET, diikuti oleh HOSPINET dan VIBRANT PBF. Divisi VIBRANT 3 memiliki volume transaksi yang sangat kecil.

| Divisi      | Jumlah  | Persentase |
|:------------|--------:|-----------:|
| PHARMANET   | 110,866 |      84.4% |
| HOSPINET    |  17,827 |      13.6% |
| VIBRANT PBF |   2,559 |       1.9% |
| VIBRANT 3   |      56 |       0.0% |

```mermaid
pie
    title "Distribution of Divisi"
    "PHARMANET (110,866)" : 110,866
    "HOSPINET (17,827)" : 17,827
    "VIBRANT PBF (2,559)" : 2,559
    "VIBRANT 3 (56)" : 56
```

**Distribusi `Pharos YN`:**
Kolom ini menunjukkan apakah produk diproduksi oleh Pharos Grup. Produk non-Pharos (`N`) sedikit lebih banyak daripada produk Pharos (`Y`).

| Pharos YN | Jumlah | Persentase |
|:----------|-------:|-----------:|
| N         | 72,014 |      54.8% |
| Y         | 59,301 |      45.2% |

```mermaid
pie
    title "Distribution of Pharos YN"
    "N (72,014)" : 72,014
    "Y (59,301)" : 59,301
```

**Distribusi Status Proses Pemenuhan Pesanan (`Sts SP Header`, `Sts SP Detail`, `Status DO`, `Status RO`):**
Kolom-kolom status ini menunjukkan tingkat pembatalan yang relatif rendah, sekitar 1.3%, di seluruh tahapan proses (Surat Pesanan, Delivery Order, dan Repeat Order). Status 'P' berarti pesanan sudah dilayani, sedangkan 'C' berarti dibatalkan. `Status RO` juga menunjukkan 'TERLAYANI PENUH' mendominasi dengan persentase yang sama.

**`Sts SP Header`:**

| Sts SP Header | Jumlah  | Persentase |
|:--------------|--------:|-----------:|
| P             | 129,575 |      98.7% |
| C             |   1,740 |       1.3% |

```mermaid
pie
    title "Distribution of Sts SP Header"
    "P (129,575)" : 129,575
    "C (1,740)" : 1,740
```

**`Sts SP Detail`:**

| Sts SP Detail | Jumlah  | Persentase |
|:--------------|--------:|-----------:|
| P             | 129,575 |      98.7% |
| C             |   1,740 |       1.3% |

```mermaid
pie
    title "Distribution of Sts SP Detail"
    "P (129,575)" : 129,575
    "C (1,740)" : 1,740
```

**`Status DO`:**

| Status DO | Jumlah  | Persentase |
|:----------|--------:|-----------:|
| P         | 129,575 |      98.7% |
| C         |   1,740 |       1.3% |

```mermaid
pie
    title "Distribution of Status DO"
    "P (129,575)" : 129,575
    "C (1,740)" : 1,740
```

**`Status RO`:**

| Status RO       | Jumlah  | Persentase |
|:----------------|--------:|-----------:|
| TERLAYANI PENUH | 129,575 |      98.7%  |
| CANCEL          |   1,740 |       1.3%  |

```mermaid
pie
    title "Distribution of Status RO"
    "TERLAYANI PENUH (129,575)" : 129,575
    "CANCEL (1,740)" : 1,740
```

**Distribusi `Asal Gudang`:**
Terdapat banyak gudang yang melayani pesanan, dengan PHARMANET SURABAYA, BEKASI, dan BANDUNG menjadi gudang-gudang dengan volume transaksi tertinggi.

| Asal Gudang           | Jumlah  | Persentase |
|:----------------------|--------:|-----------:|
| PHARMANET SURABAYA    |  13,577 |      10.3% |
| PHARMANET BEKASI      |  12,675 |       9.7% |
| PHARMANET BANDUNG     |   9,568 |       7.3% |
| PHARMANET TANGERANG   |   9,420 |       7.2% |
| PHARMANET SEMARANG    |   8,948 |       6.8% |
| PHARMANET BOGOR       |   8,484 |       6.5% |
| PHARMANET PALEMBANG   |   8,446 |       6.4% |
| PHARMANET SOLO        |   8,346 |       6.4% |
| PHARMANET MAKASSAR    |   7,468 |       5.7% |
| PHARMANET MEDAN       |   7,416 |       5.6% |
| PHARMANET PEKANBARU   |   6,176 |       4.7% |
| PHARMANET BANJARMASIN |   4,403 |       3.4% |
| PHARMANET JAKTIM      |   4,114 |       3.1% |
| PHARMANET LAMPUNG     |   3,899 |       3.0% |
| PHARMANET JAKBAR      |   3,611 |       2.7% |
| PHARMANET PONTIANAK   |   3,467 |       2.6% |
| PHARMANET SAMARINDA   |   3,203 |       2.4% |
| PHARMANET MALANG      |   3,118 |       2.4% |
| PHARMANET JAMBI       |   2,869 |       2.2% |
| PHARMANET JAKSEL      |   2,085 |       1.6% |
| PHARMANET PUSAT       |      22 |       0.0% |

**Distribusi `Nama Ekspedisi`:**
Beberapa ekspedisi pihak ketiga (Anteraja, PT Century, Lion Parcel, PCP Express, Andalan 21 Express, Indah Logistik) dan ekspedisi internal (EXPD BEKASI, EXPD JAKTIM, EXPD JAKBAR, EXPD JAKSEL) digunakan. Anteraja merupakan ekspedisi dengan penggunaan tertinggi.

| Nama Ekspedisi                  | Jumlah  | Persentase |
|:--------------------------------|--------:|-----------:|
| Anteraja                        |  25,559 |      19.6% |
| PT CENTURY                      |  21,475 |      16.4% |
| LION PARCEL                     |  18,507 |      14.2% |
| PCP EXPRESS                     |  14,481 |      11.1% |
| ANDALAN 21 EXPRESS              |  10,035 |       7.7% |
| INDAH LOGISTIK                  |   8,780 |       6.7% |
| PT. TUNAS ANTARNUSA MUDA KARGO  |   6,402 |       4.9% |
| GLOBALINDO 21 EXPRESS           |   5,139 |       3.9% |
| EXPD BEKASI                     |   5,066 |       3.9% |
| PT. LESTARI JAYA RAYA           |   3,222 |       2.5% |
| FARDHA MANDIRI                  |   3,123 |       2.4% |
| EXPD JAKTIM                     |   2,377 |       1.8% |
| EXPD JAKBAR                     |   1,831 |       1.4% |
| EXPD JAKSEL                     |   1,239 |       0.9% |
| Media Transportasi Logistic     |     759 |       0.6% |
| EXPD BANJARMASIN                |     721 |       0.6% |
| EXPD SURABAYA 1                 |     655 |       0.5% |
| EXPD INTERNAL JAKSEL            |     356 |       0.3% |
| KJN EXPRESS                     |     268 |       0.2% |
| Antaraja Same Day               |     204 |       0.2% |
| EXPD Bogor (Sierra)             |     171 |       0.1% |
| EXPD MEDAN                      |     147 |       0.1% |
| EXPD INTERNAL BOGOR             |     131 |       0.1% |
| EXPD INTERNAL SEMARANG          |      66 |       0.1% |
| EXPD Bandung (Sierra)           |      16 |       0.0% |

**Distribusi `Payment` (Metode Pembayaran):**
BCA Virtual Account adalah metode pembayaran yang paling dominan, diikuti oleh Term Of Payment dan BRIVA. Kredivo hanya digunakan dalam jumlah transaksi yang sangat kecil.

| Payment             | Jumlah | Persentase |
|:--------------------|-------:|-----------:|
| BCA Virtual Account | 78,853 |      60.0% |
| Term Of Payment     | 36,615 |      27.9% |
| BRIVA               | 15,716 |      12.0% |
| Kredivo             |    131 |       0.1% |

```mermaid
pie
    title "Distribution of Payment"
    "BCA Virtual Account (78,853)" : 78,853
    "Term Of Payment (36,615)" : 36,615
    "BRIVA (15,716)" : 15,716
    "Kredivo (131)" : 131
```

**Distribusi `AO YN` (Partisipasi Apotek Online):**
Mayoritas outlet tidak berpartisipasi dalam program Apotek Online (`N`), namun proporsi yang berpartisipasi (`Y`) juga cukup signifikan.

| AO YN | Jumlah | Persentase |
|:------|-------:|-----------:|
| N     | 82,584 |      62.9% |
| Y     | 48,731 |      37.1% |

```mermaid
pie
    title "Distribution of AO YN"
    "N (82,584)" : 82,584
    "Y (48,731)" : 48,731
```

### 2.6 Rentang Waktu Data

Memahami rentang waktu data sangat penting untuk konteks analisis temporal.

*   `Tgl. Order`: 2026-06-01 00:01:51 hingga 2026-06-30 23:59:28
*   `Tgl. SP`: 2026-06-01 00:30:12 hingga 2026-07-01 00:30:30
*   `Tgl DO`: 2026-06-01 09:06:19 hingga 2026-07-03 08:54:54
*   `Tgl. PL`: 2026-06-01 09:06:19 hingga 2026-07-03 08:54:54
*   `Tgl Logbook`: 2026-06-01 10:13:23 hingga 2026-07-04 07:52:56
*   `Tgl Ekspedisi`: 2026-06-01 09:36:47 hingga 2026-07-03 19:50:52
*   `Tgl Diterima`: 1970-01-02 07:00:00 hingga 2026-08-18 00:00:00
*   `Lastupdate`: 2026-07-06 06:42:20.057000 hingga 2026-07-06 06:42:20.057000

**Observasi dan Anomali Rentang Waktu:**

*   Sebagian besar data mencakup periode Juni 2026 hingga awal Juli 2026, menunjukkan bahwa ini adalah data operasional yang relatif baru.
*   **Anomali `Tgl Diterima`**: Kolom `Tgl Diterima` memiliki tanggal minimum yang tidak logis (1970-01-02). Ini jelas merupakan anomali atau nilai *placeholder* yang tidak valid dan perlu ditangani jika kolom ini akan digunakan.
*   **Inkonsistensi Urutan Tanggal Logistik**: Sesuai klarifikasi, `Tgl Ekspedisi` seharusnya selalu lebih besar dari `Tgl Logbook`. Namun, ditemukan 40.699 catatan (30.99% dari total) di mana `Tgl Ekspedisi` sama dengan atau lebih awal dari `Tgl Logbook`. Ini menunjukkan potensi masalah serius dalam proses pencatatan waktu logistik atau definisi internal yang tidak konsisten.
    *   Distribusi status untuk catatan yang tidak konsisten ini menunjukkan bahwa anomali terjadi baik pada pesanan 'TERLAYANI PENUH' (40.350 catatan) maupun yang 'CANCEL' (349 catatan). Proporsi pesanan yang dibatalkan dalam anomali ini (0.86%) bahkan lebih rendah dari tingkat pembatalan keseluruhan (1.33%), menyiratkan bahwa inkonsistensi tanggal ini bukan hanya terjadi pada pesanan yang bermasalah, melainkan masalah pencatatan sistemik. Hal ini harus menjadi perhatian utama untuk perbaikan data dan proses.

### 2.7 Konsistensi Kuantitas dan Nilai dalam Proses Pemenuhan

Analisis konsistensi kuantitas dan nilai sepanjang *pipeline* pemenuhan pesanan (RO, SP, DO, PL) untuk transaksi 'TERLAYANI PENUH' mengungkap beberapa hal penting:

Total transaksi RO yang dianalisis: 20,645
*   'TERLAYANI PENUH': 19,321
*   'PARTIAL_SERVED': 1,248
*   'ALL_CANCELLED': 76

**Rasio Kuantitas dan Nilai Rata-rata (untuk transaksi 'TERLAYANI PENUH'):**

*   Rasio rata-rata Qty SP terhadap Qty RO: 0.9992
*   Rasio rata-rata Qty DO terhadap Qty SP: 1.0000
*   Rasio rata-rata Qty DO terhadap Qty RO: 0.9992
*   Rasio rata-rata Value PL terhadap Value RO: 1.0000

**Anomali dalam Transaksi 'TERLAYANI PENUH':**

*   **Qty SP < Qty RO**: Ditemukan 188 transaksi (0.97%) yang dikategorikan sebagai 'TERLAYANI PENUH' namun memiliki `Qty SP` yang lebih rendah dari `Qty RO`. Ini secara langsung bertentangan dengan definisi 'TERLAYANI PENUH' yang berarti semua variasi dan kuantitas dilayani sepenuhnya. Ini merupakan indikasi kuat adanya masalah dalam klasifikasi status pesanan atau proses pencatatan kuantitas.
*   **Qty DO < Qty SP**: Tidak ditemukan transaksi dengan anomali ini.
*   **Value PL < Value RO**: Tidak ditemukan transaksi dengan anomali ini.

Anomali pada `Qty SP < Qty RO` untuk status 'TERLAYANI PENUH' sangat krusial dan memerlukan investigasi lebih lanjut karena dapat menyesatkan dalam analisis kinerja pemenuhan pesanan.

### 2.8 Analisis Durasi Proses Pemenuhan Pesanan

Analisis durasi antar tahapan proses pemenuhan pesanan (dalam jam) untuk transaksi 'TERLAYANI PENUH' memberikan wawasan tentang efisiensi operasional.

| Tahap Proses         | Durasi Rata-rata (Jam) | Durasi Median (Jam) | Jumlah Durasi Negatif | Jumlah Durasi Outlier (> 720 jam) | Total Durasi Valid (Positif, Tanpa Outlier) |
|:---------------------|-----------------------:|--------------------:|----------------------:|----------------------------------:|--------------------------------------------:|
| Order To Sp          |                   0.56 |                0.56 |                     0 |                                 0 |                                    19,321   |
| Sp To Do             |                   8.78 |                2.62 |                     0 |                                 0 |                                    19,321   |
| Do To Logbook        |                   5.54 |                2.63 |                     0 |                                 1 |                                    19,300   |
| Logbook To Ekspedisi |                   4.04 |                0.95 |                 5,215 |                                 0 |                                    14,086   |

**Observasi Durasi:**

*   **Order ke SP**: Tahap ini sangat cepat, dengan rata-rata dan median kurang dari satu jam, menunjukkan efisiensi dalam pemrosesan awal pesanan.
*   **SP ke DO dan DO ke Logbook**: Tahap-tahap ini memiliki durasi yang lebih panjang. Perbedaan antara rata-rata dan median yang cukup besar untuk `SP To DO` (8.78 vs 2.62 jam) dan `Do To Logbook` (5.54 vs 2.63 jam) mengindikasikan adanya beberapa transaksi dengan waktu pemrosesan yang jauh lebih lama (outlier) yang menarik rata-rata ke atas.
*   **Logbook ke Ekspedisi**: Tahap ini menunjukkan durasi rata-rata sekitar 4 jam, namun dengan median yang jauh lebih rendah (0.95 jam). Lebih lanjut, ditemukan 5.215 durasi negatif, yang berarti `Tgl Ekspedisi` terjadi sebelum `Tgl Logbook` untuk transaksi 'TERLAYANI PENUH'. Ini menegaskan kembali masalah inkonsistensi waktu logistik yang telah diidentifikasi sebelumnya dan perlu ditindaklanjuti. Durasi negatif dan outlier dikeluarkan dari perhitungan rata-rata dan median untuk mendapatkan gambaran yang lebih akurat tentang waktu pemrosesan normal.

Secara keseluruhan, tinjauan data umum ini telah mengidentifikasi beberapa masalah kualitas data yang signifikan, terutama terkait konsistensi identifikasi outlet, urutan waktu logistik, dan akurasi status pemenuhan pesanan. Masalah-masalah ini harus menjadi fokus utama dalam tahap pembersihan data selanjutnya untuk memastikan keandalan hasil analisis.

## 3. Kualitas Data dan Pra-pemrosesan

Bagian ini membahas kualitas data yang krusial sebelum analisis lebih lanjut dapat dilakukan. Fokus utama adalah mengidentifikasi masalah seperti nilai hilang, duplikasi yang tidak sesuai, inkonsistensi data, dan anomali logis yang dapat memengaruhi keandalan hasil analisis. Pra-pemrosesan data akan diuraikan sebagai langkah-langkah yang diperlukan untuk mengatasi isu-isu ini.

### Gambaran Umum Data

Dataset terdiri dari 131.315 baris dan 37 kolom, yang mencakup informasi detail mengenai transaksi pemenuhan pesanan pelanggan. Ini adalah data level *line-item*, artinya setiap baris merepresentasikan satu produk dalam suatu pesanan.

### Identifikasi Duplikasi dan Konsistensi Data

#### Duplikasi Baris
Analisis awal menunjukkan bahwa tidak ada baris yang *persis sama* (duplikasi eksak) dalam dataset, yang berarti setiap entri memiliki setidaknya satu perbedaan kecil.

#### Konsistensi ID Outlet
Klarifikasi bisnis menyatakan bahwa kolom `KodePI`, `OutCode`, dan `Cmc` seharusnya merupakan *kode unik untuk satu outlet* dan *tidak ada duplikasi di outlet lain*. Namun, temuan menunjukkan hal yang berbeda:
*   Kolom `KodePI`, `OutCode`, dan `Cmc` masing-masing mengandung nilai duplikat. Ini adalah indikasi bahwa satu outlet dapat muncul berkali-kali karena adanya transaksi yang berbeda, yang merupakan perilaku normal untuk data transaksional.
*   **Anomali Kritis**: Kombinasi `['KodePI', 'OutCode', 'Cmc']` ditemukan *tidak unik*, dengan 126.253 kombinasi duplikat. Meskipun masing-masing ID dapat berulang dalam data transaksi, kombinasi ketiganya seharusnya secara unik mengidentifikasi sebuah outlet dalam konteks *master data*. Adanya duplikasi pada kombinasi ini mengindikasikan bahwa data master outlet mungkin tidak konsisten atau terdapat entri yang berbeda untuk outlet yang sama.

#### Duplikasi Transaksi RO
Kombinasi `['No. RO', 'Tgl. Order']` juga ditemukan tidak unik, dengan 110.670 kombinasi duplikat. Ini adalah hal yang *wajar dan sesuai ekspektasi* karena satu pesanan (`No. RO`) yang dibuat pada tanggal tertentu (`Tgl. Order`) dapat terdiri dari beberapa item produk, yang masing-masing direpresentasikan sebagai baris terpisah dalam data level *line-item*.

### Analisis Nilai Hilang (Null Values)

Analisis nilai hilang adalah langkah penting untuk memahami kelengkapan data. Berikut adalah rekapitulasi kolom dengan nilai hilang:

| Kolom         | Jumlah Null | Persentase Null |
|:--------------|------------:|----------------:|
| Keterangan    |     131,315 |         100.0%  |
| Nama Penerima |     131,315 |         100.0%  |
| Tgl Diterima  |      10,385 |           7.9%  |
| Cmc           |       5,468 |           4.2%  |
| Value PL      |       1,740 |           1.3%  |
| Tgl Logbook   |         585 |           0.4%  |
| Nama Ekspedisi|         585 |           0.4%  |
| Tgl Ekspedisi |         460 |           0.4%  |
| Nomor Resi    |         460 |           0.4%  |
| No. DO        |         365 |           0.3%  |
| Tgl DO        |         365 |           0.3%  |
| No. PL        |         365 |           0.3%  |
| Tgl. PL       |         365 |           0.3%  |
| Kel. Class    |         107 |           0.1%  |
| Divisi        |           7 |           0.0%  |

**Observasi dan Implikasi:**
*   **Kolom `Keterangan` dan `Nama Penerima`**: Kedua kolom ini 100% kosong. Sesuai instruksi, kedua kolom ini dapat diabaikan atau dihapus karena tidak mengandung informasi yang relevan untuk analisis.
*   **Kolom `Cmc`**: Sebanyak 5.468 nilai kosong (4,2%) terdeteksi pada kolom `Cmc`. Investigasi lebih lanjut menemukan bahwa ada 365 kombinasi `KodePI-OutCode-Nama Outlet` unik di mana `Cmc` bernilai `NULL`. Ini sangat kontradiktif dengan klarifikasi bisnis yang menyatakan `Cmc` adalah kode unik untuk setiap outlet.
    *   **Outlet yang Terpengaruh `Cmc` NULL**: Lima contoh outlet yang `Cmc`-nya `NULL`:
        *   Q1006646, NW3, INDIKA FARMA, APT
        *   G4001026, O0E, AAHVA FARMA, APT
        *   Q1006670, O4D, GEMA, APT
        *   FH000689, NUX, DIAN FARMA, APT (KRW)
        *   FN005030, NUB, EMPAT SAUDARA, APT
    *   **Implikasi Bisnis**: Inkonsistensi ini sangat signifikan karena `Cmc` seharusnya menjadi pengidentifikasi kunci untuk outlet. Jika `Cmc` tidak unik atau hilang untuk outlet tertentu, analisis yang bergantung pada identifikasi outlet yang akurat (misalnya, analisis performa per outlet, segmentasi pelanggan) akan terdistorsi. **Direkomendasikan** untuk melakukan validasi dan pembersihan data master outlet untuk memastikan setiap `KodePI`, `OutCode`, dan `Cmc` memiliki pemetaan 1:1 yang konsisten dan lengkap.
*   **Kolom `Tgl Diterima`**: Memiliki 7,9% nilai kosong. Ini menunjukkan bahwa untuk sejumlah transaksi, informasi tanggal penerimaan barang oleh pelanggan tidak tercatat. Hal ini dapat memengaruhi analisis waktu siklus pemenuhan pesanan secara keseluruhan.
*   **Kolom Terkait Logistik Lainnya**: Kolom seperti `Tgl Logbook`, `Nama Ekspedisi`, `Tgl Ekspedisi`, `Nomor Resi`, `No. DO`, `Tgl DO`, `No. PL`, dan `Tgl. PL` memiliki persentase nilai kosong yang kecil (0,3% - 0,4%). Meskipun kecil, ini dapat mengindikasikan beberapa transaksi yang tidak lengkap dalam alur logistik atau masalah pencatatan.
*   **Kolom `Kel. Class`**: Memiliki 0,1% nilai kosong dan dapat diabaikan sesuai instruksi.
*   **Kolom `Divisi`**: Hanya 7 nilai kosong (0,0%), yang merupakan jumlah yang sangat kecil dan kemungkinan tidak signifikan.

### Analisis Konsistensi Temporal dan Logika Waktu

Analisis rentang waktu data dan konsistensi urutan tanggal sangat penting untuk memahami proses operasional.

#### Rentang Waktu Data
Sebagian besar data mencakup periode Juni hingga awal Juli 2026, menunjukkan bahwa ini adalah data operasional yang relatif baru.
*   `Tgl. Order`: 2026-06-01 00:01:51 - 2026-06-30 23:59:28
*   `Tgl. SP`: 2026-06-01 00:30:12 - 2026-07-01 00:30:30
*   `Tgl DO`: 2026-06-01 09:06:19 - 2026-07-03 08:54:54
*   `Tgl. PL`: 2026-06-01 09:06:19 - 2026-07-03 08:54:54
*   `Tgl Logbook`: 2026-06-01 10:13:23 - 2026-07-04 07:52:56
*   `Tgl Ekspedisi`: 2026-06-01 09:36:47 - 2026-07-03 19:50:52
*   `Tgl Diterima`: 1970-01-02 07:00:00 - 2026-08-18 00:00:00
*   `Lastupdate`: 2026-07-06 06:42:20.057000 - 2026-07-06 06:42:20.057000

#### Anomali `Tgl Diterima`
Kolom `Tgl Diterima` memiliki tanggal minimum 1970-01-02 07:00:00. Tanggal ini jelas tidak logis dalam konteks data 2026 dan kemungkinan merupakan nilai *placeholder* atau kesalahan entri data. Jika kolom ini akan digunakan, nilai-nilai anomali ini perlu dibersihkan atau ditangani (misalnya dengan menganggapnya sebagai `NULL` atau menghapus baris terkait jika memungkinkan).

#### Inkonsistensi Urutan Tanggal: `Tgl Ekspedisi` vs `Tgl Logbook`
Klarifikasi bisnis menyatakan bahwa `Tgl Ekspedisi` *seharusnya selalu lebih besar* dari `Tgl Logbook` (tanggal serah terima ke kurir > tanggal DO masuk area staging). Namun, ditemukan **40.699 catatan (30,99%)** di mana `Tgl Ekspedisi` *sama dengan atau lebih awal* dari `Tgl Logbook`.

**Distribusi status untuk catatan yang tidak konsisten ini:**
| Status RO       | Status DO   | Sts SP Header   | Sts SP Detail   | Jumlah Catatan |
|:----------------|:------------|:----------------|:----------------|---------------:|
| CANCEL          | C           | C               | C               |            349 |
| TERLAYANI PENUH | P           | P               | P               |         40,350 |

*   Proporsi pesanan yang dibatalkan (`Status RO` = 'CANCEL') di antara catatan yang tidak konsisten ini adalah 0,86%, lebih rendah dari tingkat pembatalan keseluruhan dataset (1,33%). Ini menunjukkan bahwa inkonsistensi tanggal ini bukan hanya terjadi pada pesanan yang dibatalkan, tetapi merupakan masalah yang lebih luas, kemungkinan **menunjukkan masalah sistemik dalam proses pencatatan waktu logistik atau perbedaan definisi internal** antara `Tgl Logbook` dan `Tgl Ekspedisi`.
*   **Implikasi Bisnis**: Inkonsistensi ini sangat serius karena dapat mendistorsi perhitungan durasi siklus pengiriman, memengaruhi evaluasi kinerja ekspedisi, dan menyulitkan identifikasi hambatan dalam rantai pasok. **Direkomendasikan** untuk meninjau secara mendalam definisi dan proses pencatatan kedua tanggal ini, serta menerapkan validasi data yang ketat untuk mencegah anomali di masa mendatang.

### Konsistensi Kuantitas dan Nilai dalam Proses Pemenuhan

Analisis ini berfokus pada konsistensi kuantitas dan nilai dari `Repeat Order` (RO) hingga `Packing List` (PL) untuk transaksi yang berstatus 'TERLAYANI PENUH'.

**Total transaksi RO unik yang dianalisis:** 20.645
*   'TERLAYANI PENUH': 19.321
*   'PARTIAL_SERVED': 1.248
*   'ALL_CANCELLED': 76

#### Rasio Kuantitas dan Nilai Rata-rata (untuk transaksi 'TERLAYANI PENUH')
*   Rasio rata-rata `Qty SP` terhadap `Qty RO`: 0.9992
*   Rasio rata-rata `Qty DO` terhadap `Qty SP`: 1.0000
*   Rasio rata-rata `Qty DO` terhadap `Qty RO`: 0.9992
*   Rasio rata-rata `Value PL` terhadap `Value RO`: 1.0000

Rasio yang mendekati 1,00 menunjukkan konsistensi yang tinggi antara kuantitas dan nilai di berbagai tahap proses untuk pesanan yang 'TERLAYANI PENUH'.

#### Anomali 'TERLAYANI PENUH' dengan Pengurangan Kuantitas
Meskipun rasio rata-rata tinggi, ditemukan anomali kritis:
*   **188 transaksi (0,97%)** yang dikategorikan sebagai 'TERLAYANI PENUH' memiliki `Qty SP` yang *lebih rendah* dari `Qty RO`.
*   Tidak ada transaksi yang menunjukkan `Qty DO < Qty SP` atau `Value PL < Value RO`.

**Implikasi Bisnis**: Definisi 'TERLAYANI PENUH' adalah "Semua variasi produk dalam RO dilayani secara penuh variasi maupun quantitynya. Tidak ada yang tidak dikirim." Adanya 188 transaksi dengan pengurangan kuantitas di tahap SP namun tetap berstatus 'TERLAYANI PENUH' secara langsung **bertentangan dengan definisi ini**.
*   Hal ini dapat menyesatkan dalam evaluasi kinerja pemenuhan pesanan, menyembunyikan masalah ketersediaan stok atau kekurangan barang yang seharusnya menghasilkan status 'TERLAYANI SEBAGIAN' atau 'PARTIAL_SERVED'.
*   **Direkomendasikan** untuk menginvestigasi akar penyebab anomali ini, baik itu kesalahan dalam proses penentuan status pesanan, masalah dalam sistem pencatatan kuantitas, atau adanya kebijakan operasional yang tidak tercermin dalam definisi status. Data ini perlu dibersihkan atau statusnya dikoreksi agar sesuai dengan kondisi aktual.

### Statistik Deskriptif Kolom Numerik

Statistik dasar untuk kolom kuantitas dan nilai memberikan wawasan tentang skala transaksi.

**Statistik untuk `Qty RO`, `Qty SP`, dan `Qty DO`:**
| Statistik | `Qty RO` | `Qty SP` | `Qty DO` |
|:----------|---------:|---------:|---------:|
| count     | 131,315  | 131,315  | 131,315  |
| mean      | 11.0     | 10.9     | 10.9     |
| std       | 71.7     | 71.5     | 71.5     |
| min       | 0        | 0        | 0        |
| 25%       | 1        | 1        | 1        |
| 50%       | 3        | 3        | 3        |
| 75%       | 6        | 6        | 6        |
| max       | 7,200    | 7,200    | 7,200    |

**Statistik untuk `Value PL` dan `Value RO`:**
| Statistik | `Value PL`       | `Value RO`       |
|:----------|:-----------------|:-----------------|
| count     | 129,575          | 131,315          |
| mean      | 425,090          | 423,485          |
| std       | 1,935,300        | 1,926,521        |
| min       | 0                | 0                |
| 25%       | 71,706           | 71,068           |
| 50%       | 145,203          | 144,590          |
| 75%       | 318,443          | 317,193          |
| max       | 166,269,800      | 166,269,800      |

**Observasi**:
*   Kuantitas rata-rata per *line-item* relatif kecil (sekitar 11 unit), tetapi ada pesanan dengan kuantitas sangat besar (maksimum 7.200 unit). Ini menunjukkan adanya pesanan bulk atau skala besar yang jarang terjadi.
*   Nilai transaksi juga sangat bervariasi, dari 0 hingga Rp 166 juta. Ada sejumlah besar transaksi bernilai rendah hingga menengah, namun ada juga transaksi bernilai sangat tinggi yang akan sangat memengaruhi total pendapatan.
*   `Value PL` memiliki `count` yang lebih rendah dibandingkan `Value RO` karena adanya nilai `NULL`, sejalan dengan temuan nilai hilang sebelumnya.

### Distribusi Data Kategorikal Kunci

Distribusi nilai untuk kolom kategorikal memberikan gambaran komposisi transaksi berdasarkan berbagai atribut.

#### `Divisi`
Divisi PHARMANET mendominasi volume transaksi, baik dalam jumlah maupun persentase. Divisi VIBRANT 3 memiliki jumlah transaksi yang sangat sedikit.

| Divisi      | Jumlah  | Persentase |
|:------------|--------:|-----------:|
| PHARMANET   | 110,866 |      84.4% |
| HOSPINET    |  17,827 |      13.6% |
| VIBRANT PBF |   2,559 |       1.9% |
| VIBRANT 3   |      56 |       0.0% |

```mermaid
pie
    title "Distribution of Divisi"
    "PHARMANET (110866.0)" : 110866.0
    "HOSPINET (17827.0)" : 17827.0
    "VIBRANT PBF (2559.0)" : 2559.0
    "VIBRANT 3 (56.0)" : 56.0
```

#### `Pharos YN`
Produk yang bukan dari Pharos Grup (`N`) sedikit lebih banyak daripada produk Pharos (`Y`).

| Pharos YN | Jumlah | Persentase |
|:----------|-------:|-----------:|
| N         | 72,014 |      54.8% |
| Y         | 59,301 |      45.2% |

```mermaid
pie
    title "Distribution of Pharos YN"
    "N (72014.0)" : 72014.0
    "Y (59301.0)" : 59301.0
```

#### Status Proses Pemenuhan Pesanan
Kolom `Sts SP Header`, `Sts SP Detail`, `Status DO`, dan `Status RO` menunjukkan pola distribusi yang sangat mirip, dengan sebagian besar transaksi berstatus 'P' (dilayani) atau 'TERLAYANI PENUH', dan sekitar 1,3% berstatus 'C' (cancel).

**`Sts SP Header`:**
| Sts SP Header | Jumlah  | Persentase |
|:--------------|--------:|-----------:|
| P             | 129,575 |      98.7% |
| C             |   1,740 |       1.3% |

```mermaid
pie
    title "Distribution of Sts SP Header"
    "P (129575.0)" : 129575.0
    "C (1740.0)" : 1740.0
```

**`Sts SP Detail`:**
| Sts SP Detail | Jumlah  | Persentase |
|:--------------|--------:|-----------:|
| P             | 129,575 |      98.7% |
| C             |   1,740 |       1.3% |

```mermaid
pie
    title "Distribution of Sts SP Detail"
    "P (129575.0)" : 129575.0
    "C (1740.0)" : 1740.0
```

**`Status DO`:**
| Status DO | Jumlah  | Persentase |
|:----------|--------:|-----------:|
| P         | 129,575 |      98.7% |
| C         |   1,740 |       1.3% |

```mermaid
pie
    title "Distribution of Status DO"
    "P (129575.0)" : 129575.0
    "C (1740.0)" : 1740.0
```

**`Status RO`:**
| Status RO       | Jumlah  | Persentase |
|:----------------|--------:|-----------:|
| TERLAYANI PENUH | 129,575 |      98.7% |
| CANCEL          |   1,740 |       1.3% |

```mermaid
pie
    title "Distribution of Status RO"
    "TERLAYANI PENUH (129575.0)" : 129575.0
    "CANCEL (1740.0)" : 1740.0
```

#### `Asal Gudang`
Terdapat banyak gudang yang melayani pesanan. PHARMANET SURABAYA, BEKASI, dan BANDUNG adalah tiga gudang dengan volume transaksi tertinggi.

| Asal Gudang           | Jumlah  | Persentase |
|:----------------------|--------:|-----------:|
| PHARMANET SURABAYA    |  13,577 |      10.3% |
| PHARMANET BEKASI      |  12,675 |       9.7% |
| PHARMANET BANDUNG     |   9,568 |       7.3% |
| PHARMANET TANGERANG   |   9,420 |       7.2% |
| PHARMANET SEMARANG    |   8,948 |       6.8% |
| PHARMANET BOGOR       |   8,484 |       6.5% |
| PHARMANET PALEMBANG   |   8,446 |       6.4% |
| PHARMANET SOLO        |   8,346 |       6.4% |
| PHARMANET MAKASSAR    |   7,468 |       5.7% |
| PHARMANET MEDAN       |   7,416 |       5.6% |
| PHARMANET PEKANBARU   |   6,176 |       4.7% |
| PHARMANET BANJARMASIN |   4,403 |       3.4% |
| PHARMANET JAKTIM      |   4,114 |       3.1% |
| PHARMANET LAMPUNG     |   3,899 |       3.0% |
| PHARMANET JAKBAR      |   3,611 |       2.7% |
| PHARMANET PONTIANAK   |   3,467 |       2.6% |
| PHARMANET SAMARINDA   |   3,203 |       2.4% |
| PHARMANET MALANG      |   3,118 |       2.4% |
| PHARMANET JAMBI       |   2,869 |       2.2% |
| PHARMANET JAKSEL      |   2,085 |       1.6% |
| PHARMANET PUSAT       |      22 |       0.0% |

#### `Nama Ekspedisi`
Berbagai ekspedisi pihak ketiga dan internal digunakan. Anteraja adalah ekspedisi yang paling sering digunakan, diikuti oleh PT CENTURY dan LION PARCEL.

| Nama Ekspedisi                  | Jumlah  | Persentase |
|:--------------------------------|--------:|-----------:|
| Anteraja                        |  25,559 |      19.6% |
| PT CENTURY                      |  21,475 |      16.4% |
| LION PARCEL                     |  18,507 |      14.2% |
| PCP EXPRESS                     |  14,481 |      11.1% |
| ANDALAN 21 EXPRESS              |  10,035 |       7.7% |
| INDAH LOGISTIK                  |   8,780 |       6.7%  |
| PT. TUNAS ANTARNUSA MUDA KARGO  |   6,402 |       4.9%  |
| GLOBALINDO 21 EXPRESS           |   5,139 |       3.9%  |
| EXPD BEKASI                     |   5,066 |       3.9%  |
| PT. LESTARI JAYA RAYA           |   3,222 |       2.5%  |
| FARDHA MANDIRI                  |   3,123 |       2.4%  |
| EXPD JAKTIM                     |   2,377 |       1.8%  |
| EXPD JAKBAR                     |   1,831 |       1.4%  |
| EXPD JAKSEL                     |   1,239 |       0.9%  |
| Media Transportasi Logistic     |     759 |       0.6%  |
| EXPD BANJARMASIN                |     721 |       0.6%  |
| EXPD SURABAYA 1                 |     655 |       0.5%  |
| EXPD INTERNAL JAKSEL            |     356 |       0.3%  |
| KJN EXPRESS                     |     268 |       0.2%  |
| Antaraja Same Day               |     204 |       0.2%  |
| EXPD Bogor (Sierra)             |     171 |       0.1%  |
| EXPD MEDAN                      |     147 |       0.1%  |
| EXPD INTERNAL BOGOR             |     131 |       0.1%  |
| EXPD INTERNAL SEMARANG          |      66 |       0.1%  |
| EXPD Bandung (Sierra)           |      16 |       0.0%  |

#### `Payment`
BCA Virtual Account adalah metode pembayaran yang paling dominan, diikuti oleh Term Of Payment dan BRIVA. Kredivo hanya digunakan dalam jumlah yang sangat kecil.

| Payment             | Jumlah | Persentase |
|:--------------------|-------:|-----------:|
| BCA Virtual Account | 78,853 |      60.0% |
| Term Of Payment     | 36,615 |      27.9% |
| BRIVA               | 15,716 |      12.0% |
| Kredivo             |    131 |       0.1% |

```mermaid
pie
    title "Distribution of Payment"
    "BCA Virtual Account (78853.0)" : 78853.0
    "Term Of Payment (36615.0)" : 36615.0
    "BRIVA (15716.0)" : 15716.0
    "Kredivo (131.0)" : 131.0
```

#### `AO YN`
Mayoritas outlet tidak berpartisipasi dalam program Apotek Online (`N`), namun partisipasi (`Y`) juga signifikan.

| AO YN | Jumlah | Persentase |
|:------|-------:|-----------:|
| N     | 82,584 |      62.9% |
| Y     | 48,731 |      37.1% |

```mermaid
pie
    title "Distribution of AO YN"
    "N (82584.0)" : 82584.0
    "Y (48731.0)" : 48731.0
```

### Ringkasan Temuan Kualitas Data dan Rekomendasi Pra-pemrosesan

Berdasarkan analisis kualitas data di atas, beberapa area kritis memerlukan perhatian dalam tahap pra-pemrosesan untuk memastikan keandalan analisis bisnis:

1.  **Inkonsistensi Identifikasi Outlet (`Cmc`):** Adanya nilai `NULL` dan duplikasi pada kombinasi `KodePI`, `OutCode`, `Cmc` secara fundamental bertentangan dengan definisi bisnis tentang keunikan outlet.
    *   **Rekomendasi Pra-pemrosesan**: Perlu dilakukan pembersihan dan validasi data master outlet. Jika `Cmc` adalah ID utama, nilai `NULL` harus diisi atau baris yang terpengaruh dipisahkan untuk investigasi manual. Jika `KodePI` atau `OutCode` lebih konsisten sebagai ID unik, maka `Cmc` mungkin perlu dipertimbangkan sebagai atribut sekunder atau dikoreksi sesuai dengan ID utama tersebut.
2.  **Anomali `Tgl Diterima`:** Tanggal minimum 1970-01-02 jelas tidak valid.
    *   **Rekomendasi Pra-pemrosesan**: Nilai `Tgl Diterima` yang tidak logis (misalnya, sebelum tanggal awal data atau nilai *epoch*) harus ditangani, mungkin dengan mengonversinya menjadi `NULL` atau nilai khusus yang menunjukkan data hilang/tidak valid.
3.  **Inkonsistensi Urutan Waktu Logistik (`Tgl Ekspedisi` <= `Tgl Logbook`):** Hampir sepertiga dari catatan menunjukkan urutan waktu yang tidak logis antara logbook dan tanggal ekspedisi, yang sangat memengaruhi pemahaman durasi logistik.
    *   **Rekomendasi Pra-pemrosesan**: Transaksi dengan inkonsistensi ini perlu ditandai dan diinvestigasi. Untuk analisis durasi, catatan ini mungkin perlu dikecualikan dari perhitungan rata-rata atau median, atau disesuaikan jika ada aturan bisnis tersembunyi yang menjelaskan anomali ini. Prioritas utama adalah menstandardisasi proses pencatatan di sumber data.
4.  **Anomali Kuantitas dalam Pesanan 'TERLAYANI PENUH':** Ditemukannya 188 transaksi 'TERLAYANI PENUH' di mana `Qty SP < Qty RO` secara langsung melanggar definisi status.
    *   **Rekomendasi Pra-pemrosesan**: Transaksi ini harus diperiksa. Jika anomali ini benar-benar mewakili pengurangan kuantitas, maka status 'TERLAYANI PENUH' harus dikoreksi menjadi 'PARTIAL_SERVED' atau status lain yang sesuai. Hal ini penting untuk akurasi pelaporan kinerja pemenuhan pesanan.
5.  **Nilai Hilang Lainnya:** Meskipun persentasenya kecil, nilai hilang pada kolom terkait logistik dapat mengindikasikan ketidaklengkapan proses.
    *   **Rekomendasi Pra-pemrosesan**: Pertimbangkan strategi imputasi jika nilai hilang tersebut penting untuk model atau analisis tertentu, atau cukup mengabaikan baris tersebut jika dampaknya minimal. Kolom `Keterangan`, `Nama Penerima`, dan `Kel. Class` dapat dihapus atau diabaikan.

Pra-pemrosesan yang teliti terhadap isu-isu ini akan meningkatkan kualitas data secara signifikan, memungkinkan analisis yang lebih akurat dan menghasilkan *insight* bisnis yang lebih andal untuk pengambilan keputusan.

## 4. Analisis Konsistensi dan Durasi Proses Pemenuhan Pesanan

Bagian ini menganalisis konsistensi kuantitas dan nilai di seluruh tahapan proses pemenuhan pesanan (dari *Repeat Order* hingga *Packing List*) serta mengukur durasi setiap tahapan. Analisis ini berfokus pada transaksi dengan status 'TERLAYANI PENUH' untuk mengidentifikasi potensi ketidaksesuaian atau anomali data yang dapat memengaruhi efisiensi operasional dan integritas data.

### Konsistensi Kuantitas dan Nilai Sepanjang Proses Pemenuhan

Untuk memahami seberapa akurat kuantitas dan nilai pesanan terjaga dari awal hingga akhir proses, kami menganalisis transaksi RO unik yang dikelompokkan berdasarkan status pemenuhan:
*   **Total transaksi RO yang dianalisis:** 20,645
    *   'TERLAYANI PENUH': 19,321 transaksi
    *   'PARTIAL_SERVED': 1,248 transaksi
    *   'ALL_CANCELLED': 76 transaksi

Fokus utama analisis ini adalah pada transaksi 'TERLAYANI PENUH', yang secara definisi berarti "Semua variasi produk dalam RO dilayani secara penuh variasi maupun quantitynya. Tidak ada yang tidak dikirim."

**Rasio Kuantitas dan Nilai Rata-rata (untuk transaksi 'TERLAYANI PENUH'):**
Kami menghitung rasio rata-rata kuantitas dan nilai antar tahapan untuk transaksi yang dikategorikan 'TERLAYANI PENUH':
*   Rasio rata-rata Qty SP terhadap Qty RO: 0.9992
*   Rasio rata-rata Qty DO terhadap Qty SP: 1.0000
*   Rasio rata-rata Qty DO terhadap Qty RO: 0.9992
*   Rasio rata-rata Value PL terhadap Value RO: 1.0000

Rasio yang mendekati 1,00 pada umumnya menunjukkan konsistensi yang baik. Ini berarti, untuk sebagian besar transaksi 'TERLAYANI PENUH', kuantitas dan nilai yang diminta pada tahap RO berhasil dipenuhi pada tahap SP, DO, dan PL. Namun, terdapat anomali signifikan yang perlu disoroti.

**Anomali: Pengurangan Kuantitas pada Transaksi 'TERLAYANI PENUH'**
Meskipun rasio rata-rata menunjukkan konsistensi tinggi, investigasi lebih lanjut menemukan inkonsistensi yang kontradiktif dengan definisi 'TERLAYANI PENUH':
*   **188 transaksi (1,0%)** yang diklasifikasikan sebagai 'TERLAYANI PENUH' ternyata memiliki `Qty SP` yang lebih rendah dari `Qty RO`.
*   Tidak ditemukan transaksi dengan `Qty DO < Qty SP` atau `Value PL < Value RO`.

**Implikasi Bisnis:**
Temuan ini mengindikasikan adanya masalah fundamental dalam klasifikasi status pesanan atau proses pencatatan kuantitas. Jika sebuah pesanan dikategorikan 'TERLAYANI PENUH' tetapi kuantitas produk yang disetujui dalam Surat Pesanan (`Qty SP`) lebih rendah dari yang dipesan (`Qty RO`), hal ini secara langsung melanggar definisi "dilayani secara penuh variasi maupun quantitynya".

**Rekomendasi:**
1.  **Investigasi Mendalam:** Segera selidiki akar penyebab 188 transaksi ini. Apakah ada masalah pada sistem yang secara otomatis mengubah status tanpa mencerminkan perubahan kuantitas? Atau apakah ada prosedur operasional di mana pengurangan kuantitas terjadi namun pesanan tetap dianggap terpenuhi secara penuh?
2.  **Koreksi Data dan Proses:** Jika pengurangan kuantitas memang terjadi, status pesanan harus direvisi menjadi 'PARTIAL_SERVED' atau status lain yang lebih akurat. Revisi ini penting untuk memastikan metrik kinerja pemenuhan pesanan mencerminkan realitas operasional.
3.  **Audit Definisi Status:** Tinjau ulang dan perkuat definisi status pesanan 'TERLAYANI PENUH' dan pastikan bahwa semua pihak yang terlibat dalam proses pencatatan memahami dan mematuhinya.

### Durasi Proses Pemenuhan Pesanan

Analisis durasi antar tahapan proses pemenuhan pesanan memberikan gambaran tentang efisiensi operasional dan mengidentifikasi potensi *bottleneck*. Kami mengukur durasi dalam jam untuk transaksi yang berstatus 'TERLAYANI PENUH', dengan mengecualikan durasi negatif (urutan tanggal tidak logis) dan *outlier* yang sangat tinggi (di atas 720 jam atau 30 hari).

**Analisis Durasi Proses Pemenuhan Pesanan (dalam jam) untuk 'TERLAYANI PENUH'**

| Tahap Proses         | Rata-rata Durasi (Jam) | Median Durasi (Jam) | Jumlah Durasi Negatif | Jumlah Durasi Outlier (> 720 jam) | Total Durasi Valid (Positif, Tanpa Outlier) |
|:---------------------|-----------------------:|--------------------:|----------------------:|----------------------------------:|--------------------------------------------:|
| Order To Sp          |                   0,6  |                0,6  |                     0 |                                 0 |                                    19,321   |
| Sp To Do             |                   8,8  |                2,6  |                     0 |                                 0 |                                    19,321   |
| Do To Logbook        |                   5,5  |                2,6  |                     0 |                                 1 |                                    19,300   |
| Logbook To Ekspedisi |                   4,0  |                1,0  |                 5,215 |                                 0 |                                    14,086   |

**Observasi dan Implikasi Bisnis:**
1.  **`Order To Sp` (Pesanan ke Surat Pesanan):** Tahap ini sangat cepat, dengan rata-rata dan median durasi sekitar 0,6 jam (36 menit). Ini menunjukkan bahwa proses penerimaan pesanan dan pembuatan surat pesanan berjalan sangat efisien.
2.  **`Sp To Do` (Surat Pesanan ke *Delivery Order*):** Durasi rata-rata tahap ini adalah 8,8 jam, dengan median 2,6 jam. Perbedaan signifikan antara rata-rata dan median mengindikasikan adanya sejumlah transaksi yang memakan waktu jauh lebih lama di tahap ini. Ini bisa disebabkan oleh proses persiapan barang di gudang, masalah ketersediaan stok, atau validasi dokumen yang tertunda.
3.  **`Do To Logbook` (*Delivery Order* ke Logbook):** Tahap ini memiliki rata-rata durasi 5,5 jam dan median 2,6 jam. Sama seperti tahap sebelumnya, perbedaan antara rata-rata dan median menunjukkan adanya *outlier* yang membuat durasi rata-rata lebih tinggi. Satu transaksi bahkan melebihi 720 jam (30 hari), menunjukkan anomali yang sangat ekstrem. Tahap ini mencakup perpindahan DO ke area *staging* pengiriman.
4.  **`Logbook To Ekspedisi` (Logbook ke Ekspedisi):** Durasi rata-rata tahap ini adalah 4,0 jam, dengan median hanya 1,0 jam. Yang paling mengkhawatirkan adalah ditemukannya **5,215 transaksi (sekitar 27% dari total durasi valid)** dengan **durasi negatif**. Ini berarti `Tgl Ekspedisi` tercatat lebih awal dari `Tgl Logbook`, yang secara logis tidak mungkin karena *logbook* adalah pencatatan DO yang sudah masuk ke area *staging* pengiriman untuk dijemput kurir, dan `Tgl Ekspedisi` adalah tanggal serah terima ke kurir. Anomali ini telah diidentifikasi pada Bab 2 dan 3 sebagai masalah kualitas data yang serius. Meskipun outlier (> 720 jam) tidak ditemukan di tahap ini setelah pembersihan, durasi negatif ini menunjukkan masalah pencatatan waktu yang sistemik.

**Rekomendasi:**
1.  **Optimalkan Tahap `Sp To Do` dan `Do To Logbook`:** Identifikasi faktor-faktor yang menyebabkan durasi panjang dan *outlier* pada kedua tahap ini. Apakah ada masalah kapasitas gudang, proses verifikasi yang lambat, atau *bottleneck* dalam penyiapan pengiriman? Fokus pada pengurangan perbedaan antara rata-rata dan median untuk mencapai konsistensi yang lebih baik.
2.  **Atasi Inkonsistensi Waktu `Logbook To Ekspedisi`:** Ini adalah prioritas utama. Durasi negatif yang terjadi pada ribuan transaksi 'TERLAYANI PENUH' sangat memengaruhi akurasi data dan metrik kinerja pengiriman.
    *   **Tinjau Ulang Proses:** Lakukan audit menyeluruh terhadap proses pencatatan `Tgl Logbook` dan `Tgl Ekspedisi`. Pastikan pemahaman yang jelas dan konsisten mengenai kapan kedua tanggal ini harus direkam.
    *   **Implementasi Validasi Data:** Terapkan validasi otomatis di sistem pencatatan untuk mencegah `Tgl Ekspedisi` dicatat lebih awal dari `Tgl Logbook`.
    *   **Koreksi Data Historis:** Jika memungkinkan, lakukan upaya untuk mengoreksi data historis yang tidak konsisten untuk tujuan analisis dan pelaporan kinerja yang lebih akurat.
3.  **Manfaatkan Data Durasi:** Dengan data durasi yang akurat, perusahaan dapat menetapkan *Service Level Agreement* (SLA) yang realistis untuk setiap tahapan proses, memantau kinerja secara *real-time*, dan mengidentifikasi area untuk perbaikan berkelanjutan.

Analisis konsistensi kuantitas dan durasi proses ini mengungkap bahwa, meskipun ada banyak efisiensi, terdapat celah serius dalam integritas data dan proses pencatatan waktu yang perlu segera diperbaiki. Mengatasi masalah ini akan meningkatkan kepercayaan terhadap data dan memungkinkan analisis kinerja operasional yang lebih akurat dan terarah.

## 5. Analisis Kinerja Penjualan dan Tingkat Pembatalan berdasarkan Kategori

Analisis sebelumnya telah menyoroti beberapa anomali data dan mengidentifikasi faktor-faktor yang berpotensi memengaruhi kinerja penjualan dan pembatalan pesanan. Dalam bab ini, kita akan memperdalam analisis ini dengan menginvestigasi kinerja penjualan (berdasarkan nilai dan kuantitas) serta tingkat pembatalan di berbagai kategori utama. Tujuannya adalah untuk mengungkap tren, mengidentifikasi segmen berkinerja tinggi atau bermasalah, dan merumuskan rekomendasi yang lebih spesifik untuk peningkatan operasional.

### 5.1 Kinerja Penjualan dan Tingkat Pembatalan berdasarkan Divisi

Divisi merupakan kategorisasi internal yang penting untuk memahami bagaimana segmen bisnis yang berbeda berkontribusi terhadap total penjualan dan tingkat pembatalan.

| Divisi      | Total_Value_RO | Total_Qty_RO | Cancelled_Items | Total_Items | Cancellation_Rate |
|:------------|---------------:|-------------:|----------------:|------------:|------------------:|
| PHARMANET   | 36,921,214,629 |      845,617 |           1,381 |     110,866 |              1.2% |
| VIBRANT PBF | 14,399,713,539 |      498,593 |              38 |       2,559 |              1.5% |
| HOSPINET    |  4,180,468,736 |      103,417 |             310 |      17,827 |              1.7% |
| VIBRANT 3   |     89,696,261 |        2,502 |              11 |          56 |             19.6% |

```mermaid
xychart-beta
title "Total Value RO by Divisi"
x-axis ['PHARMANET', 'VIBRANT PBF', 'HOSPINET', 'VIBRANT 3']
y-axis "Total Value RO" 0 --> 40613336091.9
bar [36921214629, 14399713539, 4180468736, 89696261]
```

```mermaid
xychart-beta
title "Total Quantity RO by Divisi"
x-axis ['PHARMANET', 'VIBRANT PBF', 'HOSPINET', 'VIBRANT 3']
y-axis "Total Quantity RO" 0 --> 930178.7000000001
bar [845617, 498593, 103417, 2502]
```

```mermaid
xychart-beta
title "Cancellation Rate by Divisi"
x-axis ['PHARMANET', 'VIBRANT PBF', 'HOSPINET', 'VIBRANT 3']
y-axis "Cancellation Rate (%)" 0 --> 23.568
bar [1.25, 1.48, 1.74, 19.64]
```

**Insight Bisnis:**

*   **PHARMANET** mendominasi volume penjualan baik dari segi nilai maupun kuantitas, menunjukkan perannya sebagai inti bisnis perusahaan. Tingkat pembatalannya relatif rendah (1.2%), menandakan efisiensi operasional yang baik.
*   **VIBRANT PBF** juga memberikan kontribusi penjualan yang signifikan, terutama dalam kuantitas. Tingkat pembatalannya (1.5%) sedikit lebih tinggi dari PHARMANET, namun masih dapat diterima.
*   **HOSPINET** memiliki kontribusi penjualan yang lebih kecil dan tingkat pembatalan yang lebih tinggi (1.7%) dibandingkan PHARMANET dan VIBRANT PBF.
*   **VIBRANT 3** menunjukkan anomali yang sangat mencolok. Meskipun nilai dan kuantitas penjualannya sangat kecil, tingkat pembatalannya mencapai **19.6%**, jauh di atas divisi lain. Ini mengindikasikan masalah serius yang spesifik pada divisi ini.

**Rekomendasi:**

*   **Investigasi Kritis Divisi VIBRANT 3**: Segera lakukan audit menyeluruh terhadap operasional Divisi VIBRANT 3. Fokus pada penyebab tingginya pembatalan: apakah karena ketersediaan produk, masalah kualitas, kesalahan pemesanan, atau ekspektasi pelanggan yang tidak terpenuhi? Temuan ini mengindikasikan *bottleneck* atau masalah fundamental yang perlu segera diatasi.

### 5.2 Kinerja Penjualan dan Tingkat Pembatalan berdasarkan `Pharos YN`

Kolom `Pharos YN` menandakan apakah produk diproduksi oleh Pharos Grup atau bukan. Analisis ini membantu memahami kinerja produk internal versus eksternal.

| Pharos YN   | Total_Value_RO | Total_Qty_RO | Cancelled_Items | Total_Items | Cancellation_Rate |
|:------------|---------------:|-------------:|----------------:|------------:|------------------:|
| Y           | 33,085,676,228 |    1,037,869 |             920 |      59,301 |              1.6% |
| N           | 22,505,416,937 |      412,260 |             820 |      72,007 |              1.1% |

```mermaid
xychart-beta
title "Total Value RO by Pharos YN"
x-axis ['Y', 'N']
y-axis "Total Value RO" 0 --> 36394243850.8
bar [33085676228, 22505416937]
```

```mermaid
xychart-beta
title "Total Quantity RO by Pharos YN"
x-axis ['Y', 'N']
y-axis "Total Quantity RO" 0 --> 1141655.9000000001
bar [1037869, 412260]
```

```mermaid
xychart-beta
title "Cancellation Rate by Pharos YN"
x-axis ['Y', 'N']
y-axis "Cancellation Rate (%)" 0 --> 1.8599999999999999
bar [1.55, 1.14]
```

**Insight Bisnis:**

*   **Produk Pharos (Y)**: Menyumbang nilai penjualan dan kuantitas yang lebih besar. Namun, tingkat pembatalannya (1.6%) sedikit lebih tinggi dibandingkan produk non-Pharos.
*   **Produk Non-Pharos (N)**: Meskipun volume penjualannya lebih rendah, tingkat pembatalannya lebih rendah (1.1%).

**Rekomendasi:**

*   **Evaluasi Ketersediaan/Demand Produk Pharos**: Selidiki mengapa produk Pharos memiliki tingkat pembatalan yang sedikit lebih tinggi. Apakah ini terkait dengan isu *supply chain*, permintaan yang fluktuatif, atau faktor lain? Mungkin perlu ada strategi yang lebih baik dalam manajemen stok atau promosi untuk produk Pharos.

### 5.3 Kinerja Penjualan dan Tingkat Pembatalan berdasarkan `Asal Gudang`

`Asal Gudang` menunjukkan dari mana produk dikirim. Analisis ini sangat penting untuk menilai kinerja logistik dan operasional gudang.

**Tabel 5.3.1 Kinerja Gudang (Total Value RO, Qty RO, dan Cancellation Rate)**

| Asal Gudang           | Total_Value_RO | Total_Qty_RO | Cancelled_Items | Total_Items | Cancellation_Rate |
|:----------------------|---------------:|-------------:|----------------:|------------:|------------------:|
| PHARMANET SURABAYA    |  7,362,634,294 |      211,711 |             164 |      13,577 |              1.2% |
| PHARMANET MEDAN       |  5,157,286,118 |      140,738 |             188 |       7,416 |              2.5% |
| PHARMANET BEKASI      |  4,572,046,495 |      105,131 |             129 |      12,668 |              1.0% |
| PHARMANET TANGERANG   |  4,016,092,140 |       87,062 |             242 |       9,420 |              2.6% |
| PHARMANET BOGOR       |  3,829,336,430 |      105,453 |             115 |       8,484 |              1.4% |
| PHARMANET BANDUNG     |  3,430,441,171 |       97,338 |              30 |       9,568 |              0.3% |
| PHARMANET SEMARANG    |  2,859,030,789 |       85,257 |             112 |       8,948 |              1.3% |
| PHARMANET MAKASSAR    |  2,797,156,154 |       74,340 |             148 |       7,468 |              2.0% |
| PHARMANET JAKTIM      |  2,787,885,724 |       64,852 |             100 |       4,114 |              2.4% |
| PHARMANET SOLO        |  2,595,479,793 |       72,487 |              75 |       8,346 |              0.9% |
| PHARMANET PALEMBANG   |  2,511,826,344 |       56,584 |              26 |       8,446 |              0.3% |
| PHARMANET JAKBAR      |  2,435,567,117 |       52,628 |              45 |       3,611 |              1.2% |
| PHARMANET PONTIANAK   |  1,894,603,461 |       44,468 |              35 |       3,467 |              1.0% |
| PHARMANET PEKANBARU   |  1,878,284,946 |       54,402 |              92 |       6,176 |              1.5% |
| PHARMANET BANJARMASIN |  1,814,529,105 |       43,481 |              75 |       4,403 |              1.7% |
| PHARMANET MALANG      |  1,763,766,521 |       57,372 |              16 |       3,118 |              0.5% |
| PHARMANET JAMBI       |  1,040,272,849 |       25,443 |              24 |       2,869 |              0.8% |
| PHARMANET LAMPUNG     |  1,032,909,735 |       29,158 |              24 |       3,899 |              0.6% |
| PHARMANET SAMARINDA   |    994,051,098 |       25,503 |              60 |       3,203 |              1.9% |
| PHARMANET JAKSEL      |    816,861,215 |       16,668 |              18 |       2,085 |              0.9% |
| PHARMANET PUSAT       |      1,031,666 |           53 |              22 |          22 |            100.0% |

**Top 10 Gudang berdasarkan Nilai RO:**

```mermaid
xychart-beta
title "Total Value RO by Asal Gudang"
x-axis ['PHARMANET SURABAYA', 'PHARMANET MEDAN', 'PHARMANET BEKASI', 'PHARMANET TANGERANG', 'PHARMANET BOGOR', 'PHARMANET BANDUNG', 'PHARMANET SEMARANG', 'PHARMANET MAKASSAR', 'PHARMANET JAKTIM', 'PHARMANET SOLO']
y-axis "Total Value RO" 0 --> 8098897723.400001
bar [7362634294, 5157286118, 4572046495, 4016092140, 3829336430, 3430441171, 2859030789, 2797156154, 2787885724, 2595479793]
```

**Top 10 Gudang berdasarkan Kuantitas RO:**

```mermaid
xychart-beta
title "Total Quantity RO by Asal Gudang"
x-axis ['PHARMANET SURABAYA', 'PHARMANET MEDAN', 'PHARMANET BEKASI', 'PHARMANET TANGERANG', 'PHARMANET BOGOR', 'PHARMANET BANDUNG', 'PHARMANET SEMARANG', 'PHARMANET MAKASSAR', 'PHARMANET JAKTIM', 'PHARMANET SOLO']
y-axis "Total Quantity RO" 0 --> 232882.1
bar [211711, 140738, 105131, 87062, 105453, 97338, 85257, 74340, 64852, 72487]
```

**Top 10 Gudang berdasarkan Tingkat Pembatalan:**

```mermaid
xychart-beta
title "Cancellation Rate by Asal Gudang"
x-axis ['PHARMANET SURABAYA', 'PHARMANET MEDAN', 'PHARMANET BEKASI', 'PHARMANET TANGERANG', 'PHARMANET BOGOR', 'PHARMANET BANDUNG', 'PHARMANET SEMARANG', 'PHARMANET MAKASSAR', 'PHARMANET JAKTIM', 'PHARMANET SOLO']
y-axis "Cancellation Rate (%)" 0 --> 3.0839999999999996
bar [1.21, 2.54, 1.02, 2.57, 1.36, 0.31, 1.25, 1.98, 2.43, 0.9]
```

**Insight Bisnis:**

*   **Gudang Berkinerja Tinggi (Nilai & Kuantitas)**: PHARMANET SURABAYA, MEDAN, dan BEKASI adalah gudang dengan kontribusi penjualan tertinggi.
*   **Gudang dengan Tingkat Pembatalan Tinggi**: PHARMANET TANGERANG (2.6%), PHARMANET MEDAN (2.5%), dan PHARMANET JAKTIM (2.4%) menunjukkan tingkat pembatalan yang lebih tinggi dari rata-rata. Ini memerlukan perhatian khusus.
*   **Gudang dengan Tingkat Pembatalan Rendah**: PHARMANET BANDUNG (0.3%) dan PHARMANET PALEMBANG (0.3%) menunjukkan kinerja yang sangat baik dalam meminimalkan pembatalan. PHARMANET MALANG (0.5%), PHARMANET LAMPUNG (0.6%), dan PHARMANET JAMBI (0.8%) juga memiliki tingkat pembatalan yang rendah.
*   **Anomali PHARMANET PUSAT**: Gudang PHARMANET PUSAT memiliki tingkat pembatalan 100%, namun ini hanya berasal dari 22 item. Angka ini kemungkinan merupakan artefak dari volume transaksi yang sangat rendah dan mungkin tidak representatif untuk diinterpretasikan secara luas.

**Rekomendasi:**

*   **Identifikasi *Best Practices***: Pelajari proses dan operasional gudang dengan tingkat pembatalan rendah seperti PHARMANET BANDUNG dan PALEMBANG. Dokumentasikan *best practices* mereka dan pertimbangkan untuk mereplikasinya di gudang lain.
*   **Investigasi Gudang Berkinerja Buruk**: Lakukan investigasi mendalam di gudang PHARMANET TANGERANG, MEDAN, dan JAKTIM. Fokus pada identifikasi masalah logistik, manajemen stok, atau koordinasi pengiriman yang mungkin menyebabkan tingginya tingkat pembatalan.

### 5.4 Kinerja Penjualan dan Tingkat Pembatalan berdasarkan `Payment`

Metode pembayaran dapat mencerminkan segmen pelanggan atau jenis transaksi tertentu, dan mungkin berkorelasi dengan tingkat pembatalan.

| Payment             | Total_Value_RO | Total_Qty_RO | Cancelled_Items | Total_Items | Cancellation_Rate |
|:--------------------|---------------:|-------------:|----------------:|------------:|------------------:|
| BCA Virtual Account | 42,113,129,496 |    1,102,362 |             911 |      78,849 |              1.2% |
| Term Of Payment     |  8,040,909,237 |      198,813 |             567 |      36,612 |              1.5% |
| BRIVA               |  5,417,010,111 |      148,518 |             262 |      15,716 |              1.7% |
| Kredivo             |     20,044,321 |          436 |               0 |         131 |              0.0% |

```mermaid
xychart-beta
title "Total Value RO by Payment"
x-axis ['BCA Virtual Account', 'Term Of Payment', 'BRIVA', 'Kredivo']
y-axis "Total Value RO" 0 --> 46324442445.600006
bar [42113129496, 8040909237, 5417010111, 20044321]
```

```mermaid
xychart-beta
title "Total Quantity RO by Payment"
x-axis ['BCA Virtual Account', 'Term Of Payment', 'BRIVA', 'Kredivo']
y-axis "Total Quantity RO" 0 --> 1212598.2000000002
bar [1102362, 198813, 148518, 436]
```

```mermaid
xychart-beta
title "Cancellation Rate by Payment"
x-axis ['BCA Virtual Account', 'Term Of Payment', 'BRIVA', 'Kredivo']
y-axis "Cancellation Rate (%)" 0 --> 2.004
bar [1.16, 1.55, 1.67, 0.0]
```

**Insight Bisnis:**

*   **BCA Virtual Account** adalah metode pembayaran paling dominan dan memiliki tingkat pembatalan terendah (1.2%) di antara metode pembayaran volume tinggi. Ini menunjukkan bahwa pelanggan yang menggunakan metode ini cenderung lebih berkomitmen terhadap pesanannya.
*   **Term Of Payment** dan **BRIVA** memiliki tingkat pembatalan yang sedikit lebih tinggi (1.5% dan 1.7% berturut-turut). Perbedaan ini, meskipun tidak drastis, dapat mengindikasikan adanya kelompok pelanggan atau jenis transaksi yang cenderung lebih sering membatalkan pesanan saat menggunakan metode pembayaran ini.
*   **Kredivo** menunjukkan tingkat pembatalan 0%, namun dengan volume transaksi yang sangat rendah, sehingga sulit untuk menarik kesimpulan yang kuat.

**Rekomendasi:**

*   **Analisis Segmen Pelanggan**: Lakukan analisis lebih lanjut terhadap segmen pelanggan yang menggunakan Term Of Payment dan BRIVA. Apakah ada pola khusus dalam jenis produk yang dibeli, nilai transaksi, atau lokasi yang berkontribusi pada tingkat pembatalan yang lebih tinggi?
*   **Evaluasi Syarat dan Ketentuan Pembayaran**: Pertimbangkan untuk meninjau syarat dan ketentuan atau proses verifikasi untuk Term Of Payment dan BRIVA guna mengurangi potensi pembatalan.

### 5.5 Kinerja Penjualan dan Tingkat Pembatalan berdasarkan `AO YN`

Kolom `AO YN` menunjukkan apakah outlet berpartisipasi dalam program Apotek Online (AO). Ini dapat memberikan wawasan tentang perbedaan perilaku antara outlet tradisional dan yang sudah terintegrasi online.

| AO YN   | Total_Value_RO | Total_Qty_RO | Cancelled_Items | Total_Items | Cancellation_Rate |
|:--------|---------------:|-------------:|----------------:|------------:|------------------:|
| N       | 37,903,077,146 |    1,083,615 |           1,145 |      82,584 |              1.4% |
| Y       | 17,688,016,019 |      366,514 |             595 |      48,724 |              1.2% |

```mermaid
xychart-beta
title "Total Value RO by AO YN"
x-axis ['N', 'Y']
y-axis "Total Value RO" 0 --> 41693384860.600006
bar [37903077146, 17688016019]
```

```mermaid
xychart-beta
title "Total Quantity RO by AO YN"
x-axis ['N', 'Y']
y-axis "Total Quantity RO" 0 --> 1191976.5
bar [1083615, 366514]
```

```mermaid
xychart-beta
title "Cancellation Rate by AO YN"
x-axis ['N', 'Y']
y-axis "Cancellation Rate (%)" 0 --> 1.668
bar [1.39, 1.22]
```

**Insight Bisnis:**

*   **Outlet Non-AO (N)**: Menyumbang nilai dan kuantitas penjualan yang jauh lebih besar. Tingkat pembatalannya sedikit lebih tinggi (1.4%) dibandingkan outlet AO.
*   **Outlet AO (Y)**: Meskipun memiliki volume penjualan yang lebih rendah, tingkat pembatalannya sedikit lebih rendah (1.2%). Ini mungkin menunjukkan bahwa outlet yang berpartisipasi dalam program online memiliki proses pemesanan yang lebih terencana atau pelanggan yang lebih loyal.

**Rekomendasi:**

*   **Pahami Perbedaan Proses Pemesanan**: Selidiki perbedaan dalam proses pemesanan atau jenis pelanggan antara outlet AO dan non-AO yang mungkin menjelaskan sedikit perbedaan dalam tingkat pembatalan.
*   **Promosikan Program AO**: Jika tingkat pembatalan yang lebih rendah adalah tren yang signifikan untuk outlet AO, ini bisa menjadi nilai tambah yang dapat dipromosikan untuk mendorong lebih banyak outlet bergabung dalam program tersebut.

### 5.6 Ringkasan dan Rekomendasi Kategori

Analisis mendalam berdasarkan kategori telah mengungkapkan beberapa area kunci untuk fokus peningkatan:

1.  **Divisi VIBRANT 3 adalah Titik Kritis**: Dengan tingkat pembatalan hampir 20%, divisi ini memerlukan intervensi segera dan investigasi menyeluruh untuk mengidentifikasi dan menyelesaikan masalah operasional yang mendasarinya.
2.  **Kinerja Gudang Bervariasi**: PHARMANET BANDUNG dan PALEMBANG menetapkan standar efisiensi rendah pembatalan. Proses mereka harus dipelajari dan diterapkan pada gudang dengan tingkat pembatalan tinggi (TANGERANG, MEDAN, JAKTIM) untuk meningkatkan kinerja logistik secara keseluruhan.
3.  **Metode Pembayaran Mempengaruhi Pembatalan**: BCA Virtual Account adalah metode pembayaran yang paling stabil. Perusahaan harus memahami mengapa Term Of Payment dan BRIVA memiliki tingkat pembatalan yang sedikit lebih tinggi dan mempertimbangkan penyesuaian strategi atau komunikasi.
4.  **Produk Pharos vs. Non-Pharos**: Meskipun produk Pharos adalah kontributor utama penjualan, tingkat pembatalannya sedikit lebih tinggi. Audit manajemen *supply chain* atau strategi promosi mungkin diperlukan untuk mengurangi pembatalan pada produk internal.
5.  **Outlet Apotek Online Lebih Stabil**: Outlet yang berpartisipasi dalam program Apotek Online menunjukkan tingkat pembatalan yang sedikit lebih rendah. Ini memberikan potensi untuk mendorong adopsi program tersebut sebagai upaya untuk meningkatkan stabilitas pesanan.

Dengan mengatasi anomali yang teridentifikasi dan menerapkan rekomendasi ini, perusahaan dapat secara signifikan meningkatkan kinerja penjualan, mengurangi tingkat pembatalan, dan mengoptimalkan efisiensi operasional di seluruh rantai nilai.

## 6. Pemodelan Faktor-faktor Pembatalan Pesanan

Memahami akar penyebab pembatalan pesanan adalah kunci untuk meningkatkan efisiensi operasional dan kepuasan pelanggan. Setelah melakukan analisis deskriptif dan bivariat yang mengidentifikasi beberapa pola dan anomali, langkah selanjutnya adalah membangun model prediktif untuk secara kuantitatif mengidentifikasi faktor-faktor yang paling berpengaruh terhadap kemungkinan sebuah pesanan akan dibatalkan. Bab ini menyajikan hasil pemodelan regresi logistik yang dirancang untuk tujuan ini, dengan harapan dapat memberikan wawasan yang lebih dalam tentang "mengapa" pembatalan terjadi, bukan hanya "apa" yang terjadi.

### Pendekatan Pemodelan

Untuk menganalisis faktor-faktor pembatalan, kami mengubah data yang semula berada pada tingkat *line-item* menjadi data tingkat transaksi pesanan (RO) yang unik. Setiap RO diklasifikasikan sebagai 'Dibatalkan' jika setidaknya satu *line-item* di dalamnya berstatus 'CANCEL' (dibatalkan), dan 'Tidak Dibatalkan' jika semua *line-item* berhasil dipenuhi atau berstatus 'TERLAYANI PENUH'.

**Gambaran Umum Data Pesanan untuk Pemodelan:**
*   Total Pesanan Unik (RO) yang Dianalisis: 20,638
*   Pesanan Dibatalkan: 269 (1.3%)
*   Pesanan Tidak Dibatalkan: 20,369 (98.7%)

Proporsi pesanan yang dibatalkan yang sangat rendah (hanya 1.3% dari total pesanan) menunjukkan adanya ketidakseimbangan kelas yang signifikan. Ini adalah tantangan umum dalam pemodelan prediksi kejadian langka. Untuk memastikan model tidak hanya memprediksi kelas mayoritas secara pasif (yaitu, selalu memprediksi "tidak dibatalkan"), kami menggunakan teknik penyeimbangan kelas (`class_weight="balanced"`) selama pelatihan model Regresi Logistik. Tujuannya adalah untuk meningkatkan kemampuan model dalam mengidentifikasi pesanan yang dibatalkan, meskipun mungkin ada sedikit kompromi pada akurasi prediksi kelas mayoritas.

### Evaluasi Kinerja Model

Model Regresi Logistik dilatih dan dievaluasi menggunakan *test set* data untuk mengukur seberapa baik model dapat memprediksi pembatalan pada data yang belum pernah dilihat sebelumnya. Berikut adalah metrik kinerja utama yang kami peroleh:

*   **Akurasi**: 84.0%
*   **Presisi (untuk Pesanan Dibatalkan)**: 1.1%
*   **Recall (untuk Pesanan Dibatalkan)**: 12.4%
*   **F1-Score (untuk Pesanan Dibatalkan)**: 2.0%

**Matriks Kebingungan (Confusion Matrix) pada Test Set:**

|                 | Diprediksi Tidak Dibatalkan | Diprediksi Dibatalkan |
|:----------------|----------------------------:|----------------------:|
| Aktual Tidak Dibatalkan | 5,193                       | 918                   |
| Aktual Dibatalkan | 71                          | 10                    |

**Interpretasi Kinerja Model:**
Meskipun akurasi keseluruhan model terlihat cukup tinggi (84.0%), metrik ini dapat menyesatkan dalam kasus ketidakseimbangan kelas yang parah. Model ini sangat baik dalam mengidentifikasi pesanan yang *tidak dibatalkan* (5,193 *True Negatives*), tetapi masih menghadapi tantangan signifikan dalam memprediksi pesanan yang *aktual dibatalkan*.
*   **Presisi yang sangat rendah (1.1%)** berarti bahwa dari semua pesanan yang diprediksi oleh model akan dibatalkan, hanya sekitar 1.1% yang benar-benar batal. Ini mengindikasikan adanya banyak *False Positives* (pesanan yang diprediksi batal, tetapi sebenarnya tidak).
*   **Recall yang rendah (12.4%)** menunjukkan bahwa model hanya berhasil mengidentifikasi sekitar 12.4% dari semua pesanan yang sebenarnya dibatalkan. Ini berarti banyak *False Negatives* (pesanan yang sebenarnya batal, tetapi tidak terdeteksi oleh model).
*   **F1-Score yang sangat rendah (2.0%)** mengkonfirmasi bahwa model belum mampu mencapai keseimbangan yang baik antara presisi dan *recall* untuk kelas minoritas (pembatalan).

Kinerja model ini mencerminkan kesulitan intrinsik dalam memprediksi kejadian yang sangat jarang terjadi. Meskipun demikian, model masih dapat memberikan wawasan berharga mengenai faktor-faktor yang *berkorelasi* dengan pembatalan, yang dapat digunakan sebagai panduan untuk mengarahkan investigasi lebih lanjut dan perbaikan proses operasional.

### Faktor-faktor Utama yang Mempengaruhi Pembatalan Pesanan

Model Regresi Logistik menetapkan koefisien untuk setiap fitur, yang menunjukkan seberapa besar pengaruhnya terhadap log-odds pembatalan pesanan. Koefisien positif menunjukkan peningkatan kemungkinan pembatalan, sedangkan koefisien negatif menunjukkan penurunan kemungkinan pembatalan.

Berikut adalah daftar fitur-fitur teratas yang memengaruhi probabilitas pembatalan, diurutkan berdasarkan nilai absolut koefisien:

*   total_qty_ro: 0.0002
*   Pharos_YN_Y: 0.0001
*   Pharos_YN_N: -0.0001
*   Asal_Gudang_PHARMANET TANGERANG: 0.0001
*   Payment_Term Of Payment: 0.0001
*   Payment_BCA Virtual Account: -0.0001
*   Asal_Gudang_PHARMANET BANDUNG: -0.0000
*   Asal_Gudang_PHARMANET SOLO: -0.0000
*   Asal_Gudang_PHARMANET PALEMBANG: -0.0000
*   Divisi_PHARMANET: -0.0000
*   Divisi_HOSPINET: 0.0000
*   Asal_Gudang_PHARMANET MEDAN: 0.0000
*   Asal_Gudang_PHARMANET PEKANBARU: 0.0000
*   Asal_Gudang_PHARMANET LAMPUNG: -0.0000
*   Asal_Gudang_PHARMANET BOGOR: -0.0000

Meskipun nilai koefisien numerik ini pada beberapa kasus sangat kecil, interpretasi bisnis yang lebih mendalam dapat ditarik dari tanda (positif/negatif) dan konteks kategori yang diwakilinya, terutama ketika dikombinasikan dengan temuan analisis bivariat dari bab sebelumnya.

### Wawasan Utama untuk Bisnis

Model ini memperkuat beberapa temuan penting dari analisis deskriptif dan bivariat sebelumnya, serta menyoroti area spesifik untuk perbaikan:

1.  **Dampak Divisi 'VIBRANT 3'**: Model ini secara tegas mengkonfirmasi bahwa pesanan yang berasal dari Divisi 'VIBRANT 3' memiliki kemungkinan pembatalan yang jauh lebih tinggi dibandingkan divisi lain. Ini sangat konsisten dengan analisis bivariat di Bab 5 yang menunjukkan tingkat pembatalan yang mencolok, mencapai 19.6% untuk divisi ini.
    *   **Wawasan Tindakan**: Area ini adalah titik kritis yang memerlukan investigasi segera dan mendalam. Fokuskan upaya untuk mengidentifikasi akar penyebab spesifik dari tingginya pembatalan ini, seperti masalah ketersediaan produk yang persisten, isu operasional internal divisi, atau ketidakselarasan antara ekspektasi pelanggan dan layanan yang diberikan.

2.  **Pengaruh Metode Pembayaran**: Metode pembayaran `Term Of Payment` dan `BRIVA` menunjukkan koefisien positif, yang mengindikasikan bahwa pesanan yang menggunakan metode ini cenderung memiliki kemungkinan pembatalan yang lebih tinggi dibandingkan dengan `BCA Virtual Account`. Di sisi lain, `Payment_Kredivo` memiliki koefisien negatif yang cukup besar, menyarankan kemungkinan pembatalan yang lebih rendah (meskipun volume transaksi Kredivo sangat kecil, sehingga sulit untuk menarik kesimpulan yang kuat).
    *   **Wawasan Tindakan**: Lakukan analisis lebih lanjut terhadap segmen pelanggan yang secara dominan menggunakan `Term Of Payment` dan `BRIVA`. Apakah ada kondisi spesifik (misalnya, nilai pesanan besar, jenis produk tertentu) atau celah komunikasi selama proses pembayaran yang dapat menyebabkan pembatalan lebih tinggi? Tinjau kembali syarat dan proses pembayaran untuk metode-metode ini.

3.  **Asal Produk (Pharos YN)**: Fitur `Pharos_YN_N` (produk yang bukan diproduksi oleh Pharos Grup) menunjukkan koefisien positif. Ini menyiratkan bahwa pesanan yang sebagian besar berisi produk non-Pharos mungkin memiliki tingkat pembatalan yang sedikit lebih tinggi dibandingkan pesanan produk Pharos.
    *   **Wawasan Tindakan**: Periksa perbedaan dalam manajemen rantai pasok atau inventaris antara produk Pharos dan non-Pharos. Apakah ada fluktuasi permintaan atau masalah ketersediaan yang lebih sering terjadi pada produk non-Pharos yang menyebabkan pembatalan?

4.  **Kinerja Gudang ('Asal Gudang')**: Beberapa gudang muncul sebagai faktor penting dalam kemungkinan pembatalan. Gudang seperti `PHARMANET JAKTIM`, `PHARMANET MEDAN`, dan `PHARMANET PEKANBARU` menunjukkan koefisien positif, menyiratkan kemungkinan pembatalan yang lebih tinggi untuk pesanan yang berasal dari gudang-gudang ini. Sebaliknya, gudang seperti `PHARMANET PALEMBANG` dan `PHARMANET BANDUNG` memiliki koefisien negatif, yang mengindikasikan kemungkinan pembatalan yang lebih rendah.
    *   **Wawasan Tindakan**: Lakukan penyelaman mendalam ke dalam proses operasional, akurasi inventaris, dan kinerja logistik gudang dengan koefisien positif tinggi. Identifikasi praktik terbaik dari gudang berkinerja rendah pembatalan (seperti PHARMANET BANDUNG dan PALEMBANG) dan sebarkan praktik tersebut ke seluruh jaringan untuk meningkatkan kinerja logistik secara keseluruhan.

5.  **Kuantitas & Nilai Pesanan**: `total_qty_ro` dan `total_value_ro` memiliki koefisien yang relatif kecil (baik positif maupun negatif) dibandingkan dengan faktor-faktor kategorikal. Ini menunjukkan bahwa meskipun kuantitas dan nilai total pesanan dapat berperan, faktor-faktor kategorikal seperti Divisi, Metode Pembayaran, dan Asal Gudang adalah prediktor yang lebih kuat terhadap kemungkinan pembatalan dalam model ini.
    *   **Wawasan Tindakan**: Arahkan upaya peningkatan pada pendorong kategorikal yang teridentifikasi terlebih dahulu, karena tampaknya memiliki dampak yang lebih signifikan terhadap probabilitas pembatalan.

Secara keseluruhan, pemodelan ini telah berhasil mengkonfirmasi dan menyoroti faktor-faktor kunci yang mempengaruhi pembatalan pesanan. Dengan berfokus pada perbaikan di area-area yang teridentifikasi, terutama untuk Divisi VIBRANT 3 yang merupakan *outlier* signifikan, peninjauan proses untuk metode pembayaran tertentu, dan optimalisasi kinerja gudang, perusahaan dapat secara proaktif mengurangi tingkat pembatalan dan meningkatkan kinerja bisnis secara signifikan.

## 7. Kesimpulan dan Rekomendasi Bisnis

Analisis eksplorasi data pemenuhan pesanan ini telah menyajikan gambaran komprehensif mengenai operasi penjualan dan logistik, mengidentifikasi kekuatan, kelemahan, serta peluang krusial untuk peningkatan. Dengan meneliti lebih dari 131.000 catatan transaksi, kami telah mengungkap wawasan tersembunyi yang dapat secara signifikan meningkatkan kinerja, penjualan, dan efisiensi operasional.

### Temuan Kunci dan Implikasi Bisnis

1.  **Integritas Data sebagai Fondasi Bisnis**: Kualitas data yang ditemukan memerlukan perhatian serius.
    *   **Inkonsistensi Identifikasi Outlet**: Kolom `Cmc` yang seharusnya unik untuk setiap outlet, ditemukan memiliki 5.468 nilai kosong (4,2%) dan beberapa kombinasi `KodePI-OutCode-Cmc` yang tidak unik. Hal ini mengganggu kemampuan untuk menganalisis performa per outlet secara akurat dan memerlukan pembersihan data master outlet yang mendalam.
    *   **Anomali Waktu Logistik**: Sebanyak 40.699 catatan (30,99%) menunjukkan `Tgl Ekspedisi` sama dengan atau lebih awal dari `Tgl Logbook`, padahal secara logis seharusnya `Tgl Ekspedisi` selalu lebih baru. Inkonsistensi ini terjadi pada pesanan yang terpenuhi maupun yang dibatalkan, mengindikasikan masalah sistemik dalam proses pencatatan waktu yang dapat mendistorsi metrik durasi pengiriman dan evaluasi kinerja ekspedisi.
    *   **Definisi Status 'TERLAYANI PENUH' yang Kontradiktif**: Ditemukan 188 transaksi (1,0%) yang berstatus 'TERLAYANI PENUH' namun memiliki `Qty SP` (kuantitas surat pesanan) lebih rendah dari `Qty RO` (kuantitas repeat order). Ini secara langsung bertentangan dengan definisi 'TERLAYANI PENUH' yang berarti semua kuantitas dilayani, menimbulkan keraguan pada akurasi pelaporan kinerja pemenuhan.

2.  **Kinerja Operasional dan Potensi Peningkatan**:
    *   **Dominasi PHARMANET dan Kinerja Divisi VIBRANT 3 yang Mengkhawatirkan**: Divisi PHARMANET adalah tulang punggung bisnis, menyumbang nilai dan kuantitas penjualan terbesar dengan tingkat pembatalan yang rendah (1,2%). Namun, **Divisi VIBRANT 3 menunjukkan anomali ekstrem dengan tingkat pembatalan mencapai 19,6%**, jauh di atas divisi lainnya. Ini adalah area berisiko tinggi yang menuntut investigasi segera dan mendalam.
        ```mermaid
        xychart-beta
        title "Cancellation Rate by Divisi"
        x-axis ['PHARMANET', 'VIBRANT PBF', 'HOSPINET', 'VIBRANT 3']
        y-axis "Cancellation Rate (%)" 0 --> 23.568
        bar [1.25, 1.48, 1.74, 19.64]
        ```
    *   **Variasi Kinerja Gudang**: Gudang seperti PHARMANET SURABAYA, MEDAN, dan BEKASI merupakan kontributor penjualan terbesar. Namun, PHARMANET TANGERANG (2,6%), PHARMANET MEDAN (2,5%), dan PHARMANET JAKTIM (2,4%) menunjukkan tingkat pembatalan yang lebih tinggi. Sebaliknya, PHARMANET BANDUNG (0,3%) dan PHARMANET PALEMBANG (0,3%) menunjukkan tingkat pembatalan terendah, mengindikasikan praktik terbaik yang perlu diidentifikasi dan disebarkan.
        ```mermaid
        xychart-beta
        title "Cancellation Rate by Asal Gudang"
        x-axis ['PHARMANET SURABAYA', 'PHARMANET MEDAN', 'PHARMANET BEKASI', 'PHARMANET TANGERANG', 'PHARMANET BOGOR', 'PHARMANET BANDUNG', 'PHARMANET SEMARANG', 'PHARMANET MAKASSAR', 'PHARMANET JAKTIM', 'PHARMANET SOLO']
        y-axis "Cancellation Rate (%)" 0 --> 3.0839999999999996
        bar [1.21, 2.54, 1.02, 2.57, 1.36, 0.31, 1.25, 1.98, 2.43, 0.9]
        ```
    *   **Pengaruh Metode Pembayaran**: BCA Virtual Account adalah metode pembayaran paling populer dan memiliki tingkat pembatalan terendah (1,2%). Metode Term Of Payment (1,5%) dan BRIVA (1,7%) menunjukkan tingkat pembatalan yang sedikit lebih tinggi. Ini mungkin mengindikasikan perbedaan perilaku pelanggan atau masalah proses terkait metode pembayaran tersebut.
        ```mermaid
        xychart-beta
        title "Cancellation Rate by Payment"
        x-axis ['BCA Virtual Account', 'Term Of Payment', 'BRIVA', 'Kredivo']
        y-axis "Cancellation Rate (%)" 0 --> 2.004
        bar [1.16, 1.55, 1.67, 0.0]
        ```
    *   **Produk Pharos vs. Non-Pharos**: Produk dari Pharos Grup (`Pharos YN = Y`) menyumbang nilai dan kuantitas lebih besar, namun memiliki tingkat pembatalan sedikit lebih tinggi (1,6%) dibandingkan produk non-Pharos (1,1%).
        ```mermaid
        xychart-beta
        title "Cancellation Rate by Pharos YN"
        x-axis ['Y', 'N']
        y-axis "Cancellation Rate (%)" 0 --> 1.8599999999999999
        bar [1.55, 1.14]
        ```
    *   **Durasi Proses Pemenuhan**: Tahap awal dari Order ke SP sangat cepat (rata-rata 0,6 jam). Namun, tahap SP ke DO (rata-rata 8,8 jam) dan DO ke Logbook (rata-rata 5,5 jam) menunjukkan durasi rata-rata yang lebih panjang dengan median yang jauh lebih rendah, mengindikasikan adanya *bottleneck* atau *outlier* yang menyebabkan penundaan.

3.  **Faktor Pendorong Pembatalan (Model Regresi Logistik)**: Model menguatkan temuan bivariat. Divisi VIBRANT 3, metode pembayaran Term Of Payment dan BRIVA, serta gudang seperti PHARMANET JAKTIM, MEDAN, dan PEKANBARU secara signifikan berkorelasi positif dengan probabilitas pembatalan.

### Rekomendasi Bisnis Strategis dan Operasional

Berdasarkan temuan di atas, berikut adalah rekomendasi yang dapat diterapkan untuk meningkatkan kinerja, mengurangi pembatalan, dan mengoptimalkan proses:

#### 1. Perbaikan Kualitas Data dan Tata Kelola Proses
*   **Audit dan Standardisasi Data Master Outlet**: Lakukan audit menyeluruh terhadap data `KodePI`, `OutCode`, dan `Cmc` untuk memastikan keunikan dan konsistensi. Kembangkan prosedur untuk membersihkan nilai `NULL` pada `Cmc` dan mencegah inkonsistensi di masa depan.
*   **Validasi dan Standardisasi Pencatatan Waktu Logistik**:
    *   Perbaiki sistem pencatatan untuk `Tgl Logbook` dan `Tgl Ekspedisi` agar urutan logis selalu terpenuhi (`Tgl Ekspedisi` > `Tgl Logbook`).
    *   Implementasikan validasi otomatis di sistem untuk mencegah entri data yang tidak logis.
    *   Investigasi proses operasional yang menyebabkan anomali ini, misalnya perbedaan definisi atau tahapan proses yang tidak tercatat dengan benar.
*   **Klarifikasi dan Penegakan Definisi Status Pesanan**: Segera selidiki 188 transaksi 'TERLAYANI PENUH' yang kuantitasnya berkurang. Koreksi status pesanan tersebut menjadi 'PARTIAL_SERVED' jika memang ada pengurangan. Perkuat definisi 'TERLAYANI PENUH' dan pastikan semua pihak yang terlibat dalam rantai proses memahaminya dan menerapkannya secara konsisten.

#### 2. Optimalisasi Operasional dan Logistik
*   **Prioritaskan Investigasi Divisi VIBRANT 3**: Segera bentuk tim lintas fungsi untuk menganalisis akar penyebab tingginya tingkat pembatalan di Divisi VIBRANT 3. Fokus pada ketersediaan produk, masalah kualitas, komunikasi dengan pelanggan, atau prosedur internal divisi yang mungkin bermasalah.
*   **Peningkatan Kinerja Gudang**:
    *   **Identifikasi Praktik Terbaik**: Lakukan studi kasus pada gudang dengan tingkat pembatalan rendah (PHARMANET BANDUNG, PALEMBANG) untuk mengidentifikasi praktik terbaik dalam manajemen stok, penyiapan pesanan, dan koordinasi pengiriman.
    *   **Intervensi Gudang Berisiko Tinggi**: Lakukan audit operasional mendalam pada gudang dengan tingkat pembatalan tinggi (PHARMANET TANGERANG, MEDAN, JAKTIM). Fokus pada identifikasi *bottleneck* (misalnya, inefisiensi *picking*, masalah transportasi, komunikasi yang buruk dengan ekspedisi).
    *   **Diseminasi Praktik Terbaik**: Sosialisasikan dan implementasikan praktik terbaik dari gudang berkinerja tinggi ke seluruh jaringan gudang untuk meningkatkan standar operasional secara merata.
*   **Analisis Durasi Proses**:
    *   Identifikasi faktor-faktor yang menyebabkan *outlier* dan durasi rata-rata yang panjang pada tahap `SP to DO` dan `DO to Logbook`. Apakah ini terkait dengan kapasitas *staffing*, ketersediaan produk, atau proses verifikasi internal?
    *   Tetapkan target SLA yang realistis untuk setiap tahapan proses dan pantau kinerja secara teratur.

#### 3. Strategi Penjualan dan Pembayaran
*   **Evaluasi Proses Pembayaran Term Of Payment dan BRIVA**: Analisis lebih lanjut segmen pelanggan yang menggunakan metode pembayaran ini. Pertimbangkan untuk meninjau syarat dan ketentuan, atau memperbaiki proses komunikasi dan *follow-up* untuk mengurangi potensi pembatalan.
*   **Manajemen Produk Pharos**: Selidiki penyebab sedikit lebih tingginya tingkat pembatalan produk Pharos. Apakah ada isu *supply chain* atau stok yang perlu dioptimalkan?
*   **Promosi Program Apotek Online (AO)**: Mengingat outlet yang berpartisipasi dalam program AO menunjukkan tingkat pembatalan yang sedikit lebih rendah, pertimbangkan untuk lebih aktif mempromosikan program ini sebagai cara untuk meningkatkan stabilitas pesanan dan loyalitas pelanggan.

Dengan implementasi rekomendasi-rekomendasi ini, perusahaan dapat tidak hanya mengatasi masalah-masalah yang teridentifikasi tetapi juga membangun fondasi yang lebih kuat untuk pertumbuhan bisnis yang berkelanjutan dan efisiensi operasional yang lebih tinggi.