Windata

Bedah karyaSimulasi Tes Kerja

Saily Roshina Ayu Vidiana

Entry-Level Data Analyst. Case study Fashion E-Commerce Performance Analysis H1 2026. Semua angka di halaman ini sudah kami hitung ulang dari dataset mentah, supaya kamu bisa menelusurinya sendiri.

85dari 100 poin

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 penilaianBobotSkorLevel
Data Understanding109Excellent
Data Cleaning2018Excellent
KPI Accuracy3024Good
Business Analysis2520Good
Dashboard1514Excellent
Total10085Strong Pass
Tool kamu Google Sheets, sama seperti kebanyakan kandidat lain. Yang membuat pengerjaanmu menonjol adalah disiplin verifikasinya. Catatan pembuka dari evaluator

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.

Bab IVerifikasi

Verifikasi Angka

  1. 01Rekalkulasi lima KPI utama
  2. 02Breakdown yang ikut dicek
  3. 03Dari mana selisihnya datang

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.

Rekalkulasi independen

Lima KPI utama, dicek satu per satu.

KPIAngka kamuRekalkulasi kami Answer keyStatus
Net Revenue6.915.492.5006.915.492.5007.027 MCocok persis
Gross Sales7.908.294.5007.908.294.5008.035 MCocok persis
Completed Orders2.4342.4342.476Cocok persis
AOV2.841.2052.841.2052.837.979Cocok persis
Cancellation Rate9,08%9,08%9,14%Cocok persis
Cara baca: kolom "rekalkulasi kami" dihitung ulang dari CSV mentah memakai scope yang kamu pilih, yaitu dedup, buang quantity nol, lalu buang guest checkout. Kolom "answer key" memakai scope kami, yang mempertahankan guest checkout.
Dari mana selisihnya

Selisih terhadap answer key datang dari satu keputusan, bukan dari salah rumus.

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.

Ikut dicek dan ikut cocok
01Monthly summary enam bulan penuh
02Sales channel: Website 1.391, Marketplace 1.043
03Customer type: New 321 orang, Existing 587 orang
04Revenue per kategori, kelima kategori
05Cancellation rate per channel: 10,08% vs 7,70%
06Bottom 10 produk: Ready-to-Wear 5 dari 10

Bab IIYang sudah kuat

Yang Sudah Kuat

  1. 01Disiplin metodologi KPI
  2. 02Audit data quality
  3. 03Temuan di luar answer key
  4. 04Trap interpretasi
  5. 05Dashboard dan presentasi
Nol jebakan klasik

Lima kesalahan paling umum di posisi ini. Kamu tidak melakukan satu pun.

01Dedup 32 duplicate order_line_id sebelum agregasi apa pun dijalankan
02Net Revenue = (qty × price) − discount, Completed only
03AOV memakai COUNT(DISTINCT order_id) lewat kolom Flag Order Unique, bukan jumlah baris
04Cancellation Rate dihitung di order level, bukan line level
05Null discount_amount sebanyak 63 baris, diisi nol sesuai KPI definition
Empat dari lima ini adalah deduction terbesar di rubric kami, bernilai 5 sampai 8 poin per kesalahan. Semuanya lewat.
Data quality audit
7dari 7 issue ditemukan

Termasuk dua yang kami tandai sebagai bonus, karena tidak memengaruhi KPI mana pun dan biasanya terlewat.

Issue yang ditanamJumlahStatus
Duplicate order_line_id32Ditangani
Missing city di customers5Ditandai
Guest checkout tanpa customer_id84Ditemukan
Varian penulisan payment_method3Ditemukan
Trailing space di sales_channel104Bersih di hasil
Quantity nol (bonus)24Ditangani
Brand casing (bonus)17Ditemukan
Temuan tambahan

Kamu menemukan yang tidak ada di answer key kami.

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.

1.692
baris dengan tanggal yang tidak konsisten
266
customer unik terdampak, setara 25,2%
955
order terjadi sebelum tanggal registrasi
737
sesudah registrasi, sebelum first purchase
Empat jebakan interpretasi

Case ini memang dipasangi kesimpulan yang kelihatan benar tapi salah. Kamu lolos semuanya.

Tren revenue

Kamu menulis revenue stabil di Rp1,1 sampai 1,2 M per bulan, bukan tumbuh sehat. Itu yang benar.

Website vs Marketplace

Kamu tidak mengklaim AOV Website jauh lebih tinggi. Pembedamu revenue 1,4× dan cancel rate.

Kategori premium

Kamu tidak menyebut Accessories premium. Kategori itu justru punya AOV terendah dari lima.

Small Leather Goods

Lemah, tapi jumlah SKU di kategori itu paling sedikit, cuma 16. Kamu menahan diri sebelum menyimpulkan minat rendah.

Kamu juga menemukan lonjakan cancellation Juni ke 12,3% dan menjadikannya rekomendasi nomor satu, tanpa mengarang penyebabnya.
Deliverable

Dashboard satu halaman, langsung terbaca untuk Sales Manager.

4
KPI card, seluruhnya sesuai permintaan
6
visual, termasuk trend dan top 10
4
filter: date, channel, category, customer type
5
slide presentasi, tepat di batas maksimal

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.

Bab IIIKoreksi

Yang Perlu Dikoreksi

  1. 01AOV per kategori
  2. 02Guest checkout
  3. 03Agregasi top 10
  4. 04Dua temuan wajib
  5. 05Tiga catatan kecil
Koreksi 01 · KPI Accuracy −4

Order count dan AOV per kategori salah hitung.

KategoriOrder kamuOrder benarAOV kamuAOV benar
Handbags4106287,20 jt4,70 jt
Shoes6539223,20 jt2,28 jt
Ready-to-Wear5117441,70 jt1,18 jt
Accessories5127881,10 jt0,70 jt
Small Leather Goods3485231,30 jt0,84 jt
Akar masalahnya

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.

Cara benar

Hitung COUNT(DISTINCT order_id) yang difilter per kategori, dan terima bahwa totalnya akan melebihi 2.434. Satu order memang boleh masuk dua kategori.

Urutan kategorinya tidak berubah, jadi seluruh kesimpulan bisnismu tetap sahih. Yang salah angkanya, bukan ceritanya. Revenue per kategori sudah benar semua.
Koreksi 02 · Data Cleaning −2

Guest checkout dibuang, padahal revenue mereka valid.

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".

Aturan umumnya

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.

84
baris order_lines ikut terbuang
42
completed order hilang dari laporan
111 jt
revenue valid yang tidak terhitung
1,6%
dari total revenue perusahaan
Koreksi 03 · KPI Accuracy −2

Top 10 diagregasi pakai product_name, bukan product_id.

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.

Cara benar

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.

Coba cek lagi: kolom apa lagi di ketiga dataset ini yang kelihatan unique tapi sebenarnya tidak dijamin 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.

Koreksi 04 · Business Analysis −5
Koreksi 04 · Business Analysis −5

Dua temuan wajib hanya tertangkap separuh.

A · AOV menurun

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.

B · Discount naik tiap bulan

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.

Dipisah, dua temuan ini cuma observasi biasa. Digabung, keduanya jadi satu diagnosis yang jauh lebih tajam.
Koreksi 05 sampai 07 · catatan kecil

Tiga hal ini tidak mengurangi poin, tapi akan menaikkan mutu laporanmu.

05 · Trend New vs Existing

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.

06 · AOV dua segmen itu identik

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.

07 · Cancel rate per traffic source

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.

DashboardSebelum dan sesudah

Dashboard yang sama, dibaca ulang.

Dashboard kamu sudah memenuhi seluruh permintaan soal: empat KPI card, enam visual, empat filter, satu halaman. Nilainya 14 dari 15. Halaman ini bukan soal kelengkapan, tapi soal apa yang dilihat Sales Manager lebih dulu.

Di bawah ada dua versi. Versi pertama punya kamu, apa adanya. Versi kedua dibangun ulang dari dataset yang sama, dengan angka yang sudah dikoreksi dan urutan panel yang mengikuti pertanyaan bisnisnya.

Sebelum: dashboard kamu, dengan tujuh catatan.

Nomor pada gambar merujuk ke daftar di bawahnya. Tidak satu pun dari ini membuat dashboard kamu salah. Semuanya soal seberapa cepat pembaca sampai ke kesimpulan.

Dashboard Saily Roshina Ayu
  1. 1Judul pakai font display yang terlalu santai untuk dashboard eksekutif.
  2. 2KPI card kurang 1,6% karena 84 baris guest checkout dibuang.
  3. 3Trend bulanan cuma revenue dan cancel rate. AOV dan discount tidak ada, padahal di situ ceritanya.
  4. 4Revenue by Category cuma menampilkan revenue. Order dan AOV tidak ada, padahal soal memintanya.
  5. 5Pie dua irisan untuk New vs Existing. Bentuk agregat, jadi penurunan tiap bulan tidak kelihatan.
  6. 6Revenue per Customer gampang dibaca sebagai new customer belanja lebih besar per transaksi.
  7. 7Top 10 diagregasi pakai product_name, jadi dua SKU beda tergabung dan satu produk tergeser keluar.

Sesudah: versi yang dibangun ulang.

Angka dihitung ulang dari CSV mentah dengan guest checkout dipertahankan. Dua panel baru ditambahkan, dua panel lama diganti bentuknya, dan format angkanya dibuat konsisten.

Fashion E-Commerce · Sales Performance

H1 2026 · 1 Januari sampai 30 Juni 2026 · Completed orders
Bulan: semuaChannel: semuaKategori: semuaCustomer type: semua
Net Revenue
Rp 7,03 M
H1 2026 · Completed only
Punya Saily Rp 6,92 M. Selisih Rp 111 jt dari 42 order guest checkout.
Completed Orders
2.476
COUNT(DISTINCT order_id)
Punya Saily 2.434. 42 order guest ikut terbuang.
Average Order Value
Rp 2,84 jt
Net Revenue ÷ order unik
Punya Saily Rp 2,84 jt. Praktis sama, metodenya sudah benar.
Cancellation Rate
9,14%
Order level, bukan line level
Punya Saily 9,08%. Praktis sama, metodenya sudah benar.

Order naik, tapi AOV turun

Completed orders dan average order value per bulan. Ini pertanyaan pertama Sales Manager.
02.5 jt1002.6 jt2002.7 jt3002.9 jt4003.0 jt5003.1 jt394Jan403Feb413Mar418Apr427Mei421JunOrder +7,4%AOV −5,5%Completed Orders (kiri)AOV (kanan)
Order tumbuh 394 ke 421 (+7,4%) tapi revenue cuma naik 1,0%. Nilai per order turun 5,5%.

Discount dan cancellation ratePanel baru

Dua rasio yang menjelaskan kenapa AOV turun dan apa yang terjadi di Juni.
0%2%4%6%8%10%12%14%JanFebMarAprMeiJunJuni 12,3%4,0%3,1%Discount rateCancellation rate
Discount naik terus dari 3,1% ke 4,4%, lalu cancel rate melonjak ke 12,3% di Juni.

Performa per kategori

Revenue, jumlah order, AOV, dan discount rate dalam satu baris. Order dihitung distinct per kategori.
NET REVENUEORDERAOVDISCOUNTHandbagsRp2,99 M636Rp4,70 jt1,8%ShoesRp2,15 M938Rp2,29 jt6,1%Ready-to-WearRp884,25 jt753Rp1,17 jt5,3%AccessoriesRp558,25 jt805Rp693 rb3,4%Small Leather GoodsRp449,62 jt533Rp844 rb2,5%
Shoes punya order terbanyak dan AOV nomor dua, tapi discount di kategori itu paling besar (6,1%). Handbags kebalikannya.

Kontribusi existing customerGanti bentuk

Porsi revenue dari existing customer per bulan, menggantikan pie chart agregat.
0%10%20%30%40%50%60%JanFebMarAprMeiJun56,5%29,2%Porsi revenue dari existing customer, turun tiap bulan
Turun enam bulan beruntun, dari 56,5% ke 29,2%. Inilah bukti concern Sales Manager.

Revenue per channel

Dengan AOV dan cancel rate menempel di tiap channel.
NET REVENUEAOV / CANCEL RATEWebsiteRp4,11 M1.433 orderRp2,87 jt · cancel 10,2%MarketplaceRp2,91 M1.043 orderRp2,79 jt · cancel 7,7%AOV kedua channel praktis sama. Pembedanya cancel rate.

Cancel rate per traffic sourcePanel baru

Menjelaskan kenapa cancel rate Website lebih tinggi.
CANCELLATION RATEPaid Social14,0%Paid Search11,2%Direct10,3%Referral8,3%Marketplace7,7%Organic Search7,4%Traffic berbayar membatalkan sekitar 2× lebih sering.

Top 10 produk by revenue

Diagregasi pakai product_id, bukan product_name.
ProdukKategoriNet Revenue
Handbags ARCOVA 39HandbagsRp 245.296.000
Handbags Elova 92HandbagsRp 243.631.000
Handbags Elova 59HandbagsRp 240.725.000
Handbags Cantera 65HandbagsRp 178.153.000
Handbags Mirela 23HandbagsRp 178.140.500
Handbags Mirela 30HandbagsRp 177.297.500
Shoes Sybren 45ShoesRp 174.163.000
Shoes Arcova 83ShoesRp 165.617.000
Handbags Tesse 41HandbagsRp 165.273.500
Handbags Cantera 58HandbagsRp 160.987.500
8 Handbags dan 2 Shoes, menyumbang 27,5% dari total revenue.

Delapan hal yang berubah.

BagianSebelumSesudahYang jadi kelihatan
KPI cardGuest checkout dibuang, angka kurang 1,6%Guest dipertahankan sebagai customer type tersendiriNet Revenue naik ke Rp 7,03 M
Trend bulananRevenue dan cancel rate sajaOrder (batang) dan AOV (garis) dalam satu panelOrder naik 7,4% tapi AOV turun 5,5%, langsung kelihatan
Panel baruTidak ada visual discount sama sekaliDiscount rate dan cancel rate per bulanDiscount naik 3,1% ke 4,4% terlihat sebagai tren
Per kategoriCuma revenueRevenue, order, AOV, dan discount rate dalam satu barisHandbags AOV Rp 4,70 jt, bukan Rp 7,20 jt
New vs ExistingPie chart agregat 56,3 dan 43,7Garis porsi revenue existing per bulanTurun dari 56,5% ke 29,2% dalam enam bulan
Panel baruCancel rate hanya total dan per channelCancel rate per traffic sourcePaid Social 14,0% vs Organic 7,4%
Top 10Diagregasi pakai product_nameDiagregasi pakai product_idShoes Arcova 83 kembali masuk, komposisi jadi 8 Handbags dan 2 Shoes
Format angkaRp6.915B, Rp2.841M, Rp547.97M bercampurKonsisten M untuk miliar dan jt untuk jutaTidak ada lagi B yang ambigu di konteks rupiah

Empat panel pertama sudah cukup untuk menjawab keempat pertanyaan Sales Manager di brief. Sisanya pendukung. Kalau ruangnya terbatas, urutan itu yang dipertahankan.

Bab IVRekap

Rekap dan Penutup

  1. 01Rekap poin
  2. 02Tiga hal untuk diperdalam
  3. 03Kesimpulan
Rekap

Deduction dan bonus yang membentuk skor 85.

ItemAreaPoin
Order count dan AOV per kategori salah, karena flag order dipakai untuk dimensi level barisKPI Accuracy−4
Temuan wajib "AOV decline" tidak diangkat jadi insightBusiness Analysis−3
Temuan wajib "discount escalation over time" tidak dibuatBusiness Analysis−2
Top 10 diagregasi by product_name, bukan product_idKPI Accuracy−2
Guest checkout dibuang, terdokumentasi tapi penanganannya kurang tepatData Cleaning−2
Menemukan quantity nol, 24 barisData Cleaning+2
Menemukan brand casing, 17 varian untuk 7 brandData Cleaning+2
Menemukan inkonsistensi first_purchase_date dan menanganinya dengan benarCleaning & AnalysisTercermin
Arah belajar

Tiga konsep yang akan menaikkan kualitas analisismu.

01

Grain versus dimensi breakdown

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.

02

Membaca metrik sebagai rasio

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.

03

Dampak cleaning ke stakeholder

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.

Kesimpulan

Cara berpikirmu sudah di jalur yang benar. Yang perlu dirapikan cuma eksekusi teknisnya.

Kamu memverifikasi sebelum menyimpulkan, mendokumentasikan sebelum ditanya, dan jujur soal keterbatasan data. Tiga kebiasaan itu yang paling sulit diajarkan.

85 / 100
skor akhir case study
Strong Pass
kategori penilaian
Lanjut
direkomendasikan ke tahap interview

Terima kasih sudah mengerjakan case ini dengan serius.

LatihanMenjadi Data Analyst 2027

Latih cara berpikir yang sama.

Bedah karya ini berasal dari Simulasi Tes Kerja. Program Menjadi Data Analyst 2027 tidak menilai jawabanmu, tetapi melatih kebiasaan yang sama: memverifikasi angka, membaca konteks bisnis, dan menulis memo yang bisa dipertanggungjawabkan. Satu kasus setiap hari.

Bedah karya lain: