Saily Roshina Ayu Vidiana · Entry-Level Data Analyst
Case study Fashion E-Commerce Performance Analysis H1 2026. Semua angka di dek ini sudah kami hitung ulang dari dataset mentah, supaya kamu bisa menelusurinya sendiri.
Strong Pass. Direkomendasikan lanjut ke tahap interview.
Rubric standar 100 poin untuk posisi Entry-Level Data Analyst. Empat deliverable lengkap, presentasi tepat 5 slide sesuai batas.
| Area penilaian | Bobot | Skor | Level |
|---|---|---|---|
| Data Understanding | 10 | 9 | Excellent |
| Data Cleaning | 20 | 18 | Excellent |
| KPI Accuracy | 30 | 24 | Good |
| Business Analysis | 25 | 20 | Good |
| Dashboard | 15 | 14 | Excellent |
| Total | 100 | 85 | Strong Pass |
Kamu membuat tab audit terpisah untuk grain, primary key, referential integrity, missing value, range check, dan konsistensi teks. Cleaning log kamu lengkap dengan formula, treatment, dan alasannya. Kamu juga menuliskan limitasi, termasuk yang menyerempet kredibilitas datamu sendiri.
Kesalahan yang ada semuanya teknis dan bisa dibereskan dalam satu sesi. Tidak ada kesalahan fatal di seluruh pengerjaanmu.
Kami hitung ulang seluruh KPI kamu dari CSV mentah. Semuanya cocok sampai rupiah terakhir.
Artinya formula, scope, dan urutan cleaning kamu bisa dipertanggungjawabkan. Itu hal pertama yang kami periksa sebelum menilai analisisnya.
| KPI | Angka kamu | Rekalkulasi kami | Answer key | Status |
|---|---|---|---|---|
| Net Revenue | 6.915.492.500 | 6.915.492.500 | 7.027 M | Cocok persis |
| Gross Sales | 7.908.294.500 | 7.908.294.500 | 8.035 M | Cocok persis |
| Completed Orders | 2.434 | 2.434 | 2.476 | Cocok persis |
| AOV | 2.841.205 | 2.841.205 | 2.837.979 | Cocok persis |
| Cancellation Rate | 9,08% | 9,08% | 9,14% | Cocok persis |
Kamu membuang 84 baris guest checkout. Jumlah itu setara 42 order dan Rp 111 juta revenue, persis sebesar selisih yang muncul di tabel sebelumnya. Formulanya sendiri benar semua.
Keputusan itu kami bahas di Bab III, karena penanganannya bisa lebih baik.
Termasuk dua yang kami tandai sebagai bonus, karena tidak memengaruhi KPI mana pun dan biasanya terlewat.
| Issue yang ditanam | Jumlah | Status |
|---|---|---|
| Duplicate order_line_id | 32 | Ditangani |
| Missing city di customers | 5 | Ditandai |
| Guest checkout tanpa customer_id | 84 | Ditemukan |
| Varian penulisan payment_method | 3 | Ditemukan |
| Trailing space di sales_channel | 104 | Bersih di hasil |
| Quantity nol (bonus) | 24 | Ditangani |
| Brand casing (bonus) | 17 | Ditemukan |
Kamu membandingkan order_date terhadap first_purchase_date dan registration_date, lalu menemukan bahwa ketiga tanggal itu saling bertentangan di seperempat basis customer.
Kamu tidak mengubah datanya. Kamu tetap memakai definisi segmentasi yang diberikan, lalu menuliskannya sebagai limitasi dan meminta divalidasi ke tim terkait. Itu langkah yang benar untuk anomali di luar wewenangmu.
Kamu menulis revenue stabil di Rp1,1 sampai 1,2 M per bulan, bukan tumbuh sehat. Itu yang benar.
Kamu tidak mengklaim AOV Website jauh lebih tinggi. Pembedamu revenue 1,4× dan cancel rate.
Kamu tidak menyebut Accessories premium. Kategori itu justru punya AOV terendah dari lima.
Lemah, tapi jumlah SKU di kategori itu paling sedikit, cuma 16. Kamu menahan diri sebelum menyimpulkan minat rendah.
Ada satu hal yang jarang muncul di level entry dan patut disebut: kamu membuat slide limitasi dan catatan metodologi. Sebagian besar kandidat memilih menyembunyikan keterbatasan datanya. Kamu menuliskannya di depan.
| Kategori | Order kamu | Order benar | AOV kamu | AOV benar |
|---|---|---|---|---|
| Handbags | 410 | 628 | 7,20 jt | 4,70 jt |
| Shoes | 653 | 922 | 3,20 jt | 2,28 jt |
| Ready-to-Wear | 511 | 744 | 1,70 jt | 1,18 jt |
| Accessories | 512 | 788 | 1,10 jt | 0,70 jt |
| Small Leather Goods | 348 | 523 | 1,30 jt | 0,84 jt |
Kolom Flag Order Unique menandai satu baris per order. Itu benar untuk total, tapi rusak begitu dipecah per kategori, karena kategori adalah atribut level baris, bukan level order. Order lintas kategori jadi cuma tercatat di satu kategori.
Hitung COUNT(DISTINCT order_id) yang difilter per kategori, dan terima bahwa totalnya akan melebihi 2.434. Satu order memang boleh masuk dua kategori.
Alasannya kamu tulis, yaitu tidak bisa disegmentasi New atau Existing, dan itu jujur, jadi kami tidak memotong penuh. Tapi penanganan yang benar adalah mempertahankannya sebagai customer type "Guest".
Baris yang tidak bisa disegmentasi tetap masuk ke KPI total, dan hanya dikeluarkan dari breakdown yang memang membutuhkan segmen itu. Jangan buang barisnya, pindahkan ke bucket Unknown atau Guest.
Ada dua product_id berbeda dengan nama yang sama: PRD1003 dan PRD1010, keduanya bernama "Handbags Mirela 99". Kedua SKU itu terjumlah jadi satu baris senilai Rp 203.605.000, naik ke posisi empat, dan menggeser Shoes Arcova 83 keluar dari Top 10.
Efeknya kelihatan di dokumenmu sendiri. Slide menulis Top 10 didominasi Handbags 8 dari 10, padahal dashboard menampilkan 9 dari 10. Inkonsistensi kecil seperti ini yang biasanya ditanyakan stakeholder lebih dulu.
Selalu agregasi memakai primary key, yaitu product_id, lalu XLOOKUP nama produknya hanya untuk keperluan display. Nama produk bukan kolom unique, dan tidak ada sistem yang menjamin ia unique.
Discount naik. AOV turun. Revenue tidak tumbuh. Discount gagal jadi growth lever, dan itu tekanan margin.
Semua angka untuk menyimpulkan itu sudah ada di sheet kamu. Satu kalimat ini yang belum kamu tulis, dan kalimat inilah yang akan mengubah keputusan Sales Manager.
Order tumbuh +7,4% dari 394 ke 421. Revenue praktis flat, cuma +1,0%. Artinya nilai per order turun 5,5%.
Angka AOV bulanan sudah ada di sheet kamu (3,0 jt, lalu 2,7 jt, lalu 2,8 jt), tapi tidak pernah kamu angkat jadi insight. Ini inti masalahnya: bisnis menjual lebih banyak order untuk uang yang sama.
Discount rate bergerak 3,11% → 3,53% → 3,55% → 3,92% → 4,40%, lalu turun ke 4,03% di Juni.
Kamu menganalisis discount per kategori, dan bagian itu sudah benar. Tapi dimensi waktunya tidak pernah dibuat, sehingga kenaikannya tidak terlihat sama sekali di laporanmu.
Proporsi revenue existing turun terus: 56,5% → 51,1% → 49,5% → 41,0% → 30,7% → 29,2%. Angka agregatmu 56,3 dan 43,7 sudah benar, tapi trend bulanannya jauh lebih persuasif, karena itulah yang membuktikan concern Sales Manager.
New Rp 2.845.955 vs Existing Rp 2.835.099, beda 0,4%. Pembeda nyatanya frekuensi order, 4,26 vs 1,81. Framing "2,4× lebih bernilai per kepala" berisiko dibaca manajemen sebagai belanjanya lebih besar per transaksi.
Paid Social 14,0% dan Paid Search 11,2% vs Organic Search 7,4%. Traffic berbayar membatalkan sekitar 2× lebih sering. Ini langsung menjelaskan kenapa Website lebih tinggi dari Marketplace, dan menajamkan rekomendasi nomor satumu.
| Item | Area | Poin |
|---|---|---|
| Order count dan AOV per kategori salah, karena flag order dipakai untuk dimensi level baris | KPI Accuracy | −4 |
| Temuan wajib "AOV decline" tidak diangkat jadi insight | Business Analysis | −3 |
| Temuan wajib "discount escalation over time" tidak dibuat | Business Analysis | −2 |
| Top 10 diagregasi by product_name, bukan product_id | KPI Accuracy | −2 |
| Guest checkout dibuang, terdokumentasi tapi penanganannya kurang tepat | Data Cleaning | −2 |
| Menemukan quantity nol, 24 baris | Data Cleaning | +2 |
| Menemukan brand casing, 17 varian untuk 7 brand | Data Cleaning | +2 |
| Menemukan inkonsistensi first_purchase_date dan menanganinya dengan benar | Cleaning & Analysis | Tercermin |
Kapan sebuah distinct count boleh menjumlah lebih besar dari totalnya, dan kenapa itu justru benar. Konsep ini yang jadi akar koreksi pertama, dan paling sering menjatuhkan analis di tahun awal.
Revenue flat ditambah order naik sama dengan AOV turun. Biasakan memecah setiap metrik agregat jadi komponen pembentuknya sebelum menyimpulkan, karena di situ insight biasanya berada.
Setiap baris yang kamu buang punya konsekuensi di angka yang dilihat manajemen. Biasakan bertanya "kalau angka saya beda Rp 111 juta dari sistem, saya jawab apa" sebelum ditanya, bukan sesudah.
Kamu memverifikasi sebelum menyimpulkan, mendokumentasikan sebelum ditanya, dan jujur soal keterbatasan data. Tiga kebiasaan itu yang paling sulit diajarkan.
Terima kasih sudah mengerjakan case ini dengan serius.
Entry-Level Data Analyst · Fashion E-Commerce H1 2026 · Skor akhir 85 dari 100.
Karyamu bisa dinilai dengan rubrik 100 poin yang sama seperti di dek ini.