Windata

Bedah karyaSimulasi Tes Kerja

Gevan Putra Yudhistira

Entry-Level Data Analyst. Case study Fashion E-Commerce Performance Analysis H1 2026. Setiap angka di halaman ini sudah kami hitung ulang dari dataset mentah, termasuk sebelas klaim turunan di presentasimu.

86dari 100 poin

Strong Pass. Direkomendasikan lanjut ke tahap interview.

Workbook 11 tab, dashboard Looker Studio, presentasi 4 slide. Deliverable lengkap.

Area penilaianBobotSkorLevel
Data Understanding107Good
Data Cleaning2018Excellent
KPI Accuracy3027Excellent
Business Analysis2522Excellent
Dashboard1512Good
Total10086Strong Pass
Kualitas analisismu setara kandidat terbaik di batch ini. Yang menahan skormu satu operasi cleaning yang tidak diverifikasi ulang. Catatan pembuka dari evaluator

Setiap kesimpulanmu punya angka, dan setiap angka cocok dengan rekalkulasi kami sampai digit terakhir. Dua temuan yang bahkan tidak didapat kandidat peringkat satu justru kamu dapatkan.

Yang rusak adalah kolom nama di satu tabel dimensi. Kabar baiknya, seluruh angkamu selamat, karena agregasimu memakai product_id dan category, bukan nama.

Bab IVerifikasi

Verifikasi Angka

  1. 01Scope yang persis
  2. 02Sebelas klaim turunan

Dari enam kandidat, kamu satu satunya yang scope cleaningnya persis sama dengan answer key kami.

Dedup 32 baris, buang 24 baris quantity nol, pertahankan guest checkout. Hasilnya 4.574 baris, dan kelima KPI keluar tepat di angka yang kami harapkan.

Rekalkulasi independen

Bukan cuma KPI. Sebelas klaim turunan juga dicek.

KlaimAngka kamuRekalkulasi kami
Net Revenue, Completed Orders, AOV7,03 M / 2.476 / 2.837.979identik
April naik dari Maret+4,1%+4,13%
Cancel Juni, Website dan Marketplace12,41 / 12,11%12,41 / 12,11%
Cancel Juni, Paid Search16,42%16,42%
Gap revenue antar channel41%41,1%
Selisih AOV New vs ExistingRp 10.856Rp 10.856
AOV Small Leather Goods vs Accessories843rb / 693rb843.563 / 693.476
Kontribusi Top 10 dan Bottom 1027,5% / 1,9%27,5% / 1,9%
Guest checkout83 baris, 1,58%83 baris, 1,58%
Cancellation rate bulanan di tab KPI juga benar keenam bulannya, dengan denominator per bulan yang tepat.

Bab IIYang sudah kuat

Yang Sudah Kuat

  1. 01Alasan di balik tiap keputusan
  2. 02Tujuh issue tertangani
  3. 03Jebakan interpretasi
  4. 04Dua temuan yang unik
Tab dokumentasi

Setiap keputusan cleaning kamu punya kolom alasan tertulis.

KeputusanAlasan yang kamu tulis
quantity nol dibuangTidak merepresentasikan transaksi yang valid dan akan mendistorsi AOV serta jumlah order
customer_id blank dipertahankanTetap valid untuk KPI Gross Sales, Net Revenue, dan Completed Orders di level order
city blank dibiarkanCity tidak dipakai di lima KPI wajib maupun aturan segmentasi New dan Existing
Ketiganya keputusan yang benar, dan ketiganya kamu jelaskan sebelum ditanya. Kamu juga merekonsiliasi jumlah baris: 4.630 mentah menjadi 4.574 bersih. Kandidat lain ada yang membangun rekonsiliasi seperti ini lalu membiarkannya tidak cocok.
Data Cleaning
7dari 7 issue tertangani

Termasuk dua yang berstatus bonus. Jumlah duplikat yang kamu laporkan juga tepat di angka 32, tidak seperti kandidat lain yang melaporkan 30 karena urutan cleaning mereka terbalik.

IssueJumlahPenanganan
Duplicate rows32Dibuang
Missing city5Dibiarkan, beralasan
Guest checkout84Dipertahankan
payment_method348Dinormalisasi
Trailing space channel104Bersih di hasil
quantity nol (bonus)24Dibuang, beralasan
Case style (bonus)17 varianPROPER()
Tiga jebakan, tiga lolos

Case ini dipasangi kesimpulan yang kelihatan benar tapi salah. Kamu lolos semuanya, dengan angka.

Channel

"Gap revenue 41% didorong oleh volume order, bukan nilai belanja per transaksi. AOV kedua channel cuma selisih 2,7%."

Lalu rekomendasimu menyusul dengan tepat: fokus Marketplace ke volume, bukan ke pricing atau AOV.

Kategori

"Small Leather Goods terlemah bukan karena minat rendah, AOV Small Leather Goods Rp 843rb, lebih tinggi dari Accessories Rp 693rb. Penyebabnya SKU paling sedikit, 16 produk."

Nuansa ini cuma kamu dan satu kandidat lain yang dapat.

New vs Existing

"AOV keduanya nyaris sama, selisih hanya Rp 10.856, jadi gap ini murni dari frekuensi order."

Angka Rp 10.856 itu cocok persis dengan rekalkulasi kami. Bukan pembulatan, tapi angka sebenarnya.

Bagian paling impresif

Dua temuan yang tidak didapat lima kandidat lain, termasuk yang peringkat satu.

01 · Order naik, AOV turun, diskon naik

Kamu menulis: "Order terbanyak tapi revenue lebih rendah, Mei 427 order, dijelaskan oleh AOV lebih rendah akibat qty lebih sedikit per order dan diskon lebih besar."

Kami cek keduanya. Quantity per order turun dari 2,83 di April ke 2,59 di Mei, dan discount rate naik dari 3,92% ke 4,40%. Keduanya benar.

Menghubungkan tiga variabel sekaligus seperti ini yang membedakan laporan angka dari diagnosis.

02 · Cancellation dipecah sampai traffic source

Kamu tidak berhenti di "Juni melonjak". Kamu cek per channel dulu, menemukan kenaikannya merata, lalu turun lagi ke traffic source dan menemukan Paid Search 16,42%.

Rekalkulasi kami: 16,42%, persis. Dari enam kandidat, cuma kamu yang sampai ke potongan ini.

Efeknya ke rekomendasi nyata: investigasi jadi punya titik mulai yang sempit.

Bab IIIKoreksi

Yang Perlu Dikoreksi

  1. 01Nama produk tertukar
  2. 02Produk hantu di Top 10
  3. 03Premis rekomendasi April
  4. 04Catatan kecil

Sepuluh nama produk tertukar antar product_id. Angkamu semuanya selamat, tapi labelnya tidak.

Semua agregasimu memakai product_id dan category, jadi tidak ada satu pun KPI yang perlu dihitung ulang. Yang rusak cuma kolom nama di satu tabel dimensi.

Koreksi 01 · Data Cleaning −2
Koreksi 01 · Data Cleaning −2

Sepuluh baris di clean_products punya nama yang bukan miliknya.

product_idNama di sheet kamuNama sebenarnya
PRD1001Handbags Elova 21Handbags Mirela 23
PRD1005Handbags Arcova 68Handbags Cantera 58
PRD1008Handbags Sybren 16Handbags ARCOVA 39
PRD1014Handbags Arcova 39Handbags Elova 92
PRD1016Handbags Tesse 41Handbags sybren 16
PRD1019Handbags Cantera 58Handbags Cantera 65
Enam dari sepuluh. Empat sisanya PRD1002, PRD1009, PRD1010, PRD1017.
Polanya menunjuk ke satu penyebab

Namanya tidak hilang, cuma bertukar posisi antar sesama baris Handbags. Pola tertutup seperti ini khas satu hal: kolom nama diurutkan atau disalin tanpa membawa product_id ikut serta, kemungkinan besar saat menerapkan PROPER().

Kenapa angkamu selamat

Kolom category tidak ikut rusak, dan seluruh agregasimu memakai product_id atau category. Tidak ada KPI, breakdown kategori, atau angka revenue yang terpengaruh.

Koreksi 02 · KPI Accuracy −2

Efek lanjutannya: satu produk senilai Rp 299,7 juta yang tidak ada.

Di tab Business_Analysis, Top 10 kamu diagregasi pakai product_name. Karena PRD1016 sekarang bernama "Handbags Tesse 41", dan PRD1011 memang bernama "Handbags Tesse 41", keduanya tergabung jadi satu baris.

Baris itu menempati peringkat satu dan menggeser satu produk asli keluar dari Top 10.

Selalu agregasi pakai primary key, lalu lookup namanya hanya untuk display. Di dataset ini bahkan ada dua produk berbeda dengan nama sama sejak awal.

165,3 jt
PRD1011, Handbags Tesse 41 yang asli
134,5 jt
PRD1016, yang namanya tertukar
299,7 jt
angka gabungan yang muncul di sheet kamu
6
nama salah di Top 10 dashboard
Koreksi 03 · Dashboard −2

Di dashboard, product_id dan revenue benar. Namanya yang salah.

Rankproduct_idNama di dashboardNama sebenarnya
1PRD1008Handbags Sybren 16Handbags ARCOVA 39
2PRD1014Handbags Arcova 39Handbags Elova 92
3PRD1017Handbags Elova 92Handbags Elova 59
4PRD1019Handbags Cantera 58Handbags Cantera 65
5PRD1001Handbags Elova 21Handbags Mirela 23
10PRD1005Handbags Arcova 68Handbags Cantera 58
Dampak praktisnya nyata

Kalau tim merchandising bertindak berdasarkan daftar ini, mereka akan mendorong stok produk yang salah. Kesimpulanmu "8 dari 10 adalah Handbags" tetap benar, jadi analisisnya selamat, tapi daftarnya sendiri belum bisa dipakai.

Bottom 10 tidak terpengaruh, karena produknya Ready-to-Wear, Accessories, dan Small Leather Goods, di luar blok Handbags yang rusak.
Koreksi 04 · Business Analysis −2

Premis rekomendasi nomor satu tidak sesuai datanya.

Kamu menulis: "April adalah satu satunya bulan dengan kenaikan order count dan revenue bersamaan tanpa dikompensasi kenaikan discount rate."

BulanOrderRevenueDiscount rate
Februarinaikturun3,11% → 3,53%
Maretnaiknaik3,53% → 3,55%
Aprilnaiknaik3,55% → 3,92%
Meinaikturun3,92% → 4,40%
Juniturunnaik4,40% → 4,03%
Maret juga mengalami kenaikan order dan revenue bersamaan, jadi April bukan satu satunya bulan. Dan discount rate April naik, dari 3,55% ke 3,92%, kenaikan terbesar kedua di periode ini. Menariknya, angka discount rate bulanan sudah ada di kerjaanmu dan sudah kamu pakai dengan benar untuk menjelaskan Mei. Di rekomendasi ini arahnya terbalik.
Catatan kecil

Tiga hal ini nilainya kecil, tapi cepat diperbaiki.

01 · Penyebut yang tidak konsisten

Slide menulis new customer menyumbang 56,3% dari total Net Revenue. Angka itu porsi terhadap New dan Existing saja. Terhadap total sebenarnya, termasuk Unknown, porsinya 55,4%.

Kamu sendiri sudah menulis di limitasi bahwa Unknown itu 1,58%.

02 · Grain, key, dan integritas

Pipeline kamu rapi dan rekonsiliasi baris sudah ada. Yang belum: pernyataan grain per tabel, penetapan primary key, dan pemeriksaan referential integrity.

Uji sederhana bahwa product_id masih berpasangan dengan nama yang sama sebelum dan sesudah cleaning akan langsung menangkap koreksi nomor satu.

03 · Dua panel dashboard

Net Revenue by Category hanya menampilkan revenue. Brief meminta revenue dan order, dan AOV per kategori sudah ada di tab KPI kamu.

Belum ada tren cancellation maupun visual diskon, padahal dua temuan terkuatmu berdiri di atas keduanya.

DashboardSebelum dan sesudah

Angka yang sudah tepat, label yang perlu dibetulkan.

Keempat KPI card di dashboard kamu tepat sampai digit terakhir, dan kamu satu satunya kandidat yang menampilkan Bottom 10 di dashboard. Yang perlu dibetulkan ada dua: enam nama produk di Top 10 yang tertukar dari product_id pemiliknya, dan dua temuan terbaikmu yang belum punya panel.

Versi kedua di bawah memakai scope yang sama dengan punya kamu, yaitu dedup 32 baris, buang 24 baris quantity nol, pertahankan guest checkout. Total 4.574 baris, jadi setiap angka identik dengan angkamu.

Sebelum: dashboard kamu, dengan tujuh catatan.

Enam catatan merah adalah hal yang diubah. Satu catatan hijau adalah hal yang kamu lakukan sendirian di antara enam kandidat, dan itu dipertahankan apa adanya.

Dashboard Gevan

    Sesudah: versi yang dibetulkan.

    Nama produk dikembalikan ke product_id yang benar, dua panel baru ditambahkan, dan empat panel lama digabung jadi dua supaya ruangnya cukup. Tidak ada angka yang diubah.

    Fashion E-Commerce · H1 2026

    1 Januari sampai 30 Juni 2026 · 4.574 order line setelah cleaning
    Month: semuaSales Channel: semuaCategory: semuaCustomer Type: semua
    Total Net Revenue
    Rp 7,03 M
    dari Gross Sales Rp 8,03 M
    Angka kamu tepat. Ditambah konteks Gross Sales.
    Order Completed
    2.476
    dari 2.725 total order
    Angka kamu tepat. Sama persis dengan answer key.
    Average Order Value
    Rp 2,84 jt
    Net Revenue ÷ order unik
    Angka kamu tepat. Trennya sekarang ada di panel pertama.
    Cancellation Rate
    9,14%
    249 order dibatalkan
    Angka kamu tepat. Melonjak ke 12,29% di Juni, kini terlihat.

    Revenue, order, dan AOV per bulanDigabung

    Menggabungkan Monthly Revenue Trend dan Completed Order by Month, lalu menambahkan AOV.
    0,0 M2,50 jt0,2 M2,59 jt0,4 M2,67 jt0,6 M2,76 jt0,8 M2,84 jt1,0 M2,93 jt1,2 M3,01 jt1,4 M3,10 jt394 ordRp1,19 MJan403 ordRp1,11 MFeb413 ordRp1,17 MMar418 ordRp1,22 MApr427 ordRp1,13 MMei421 ordRp1,20 MJunOrder +7,4% · Revenue +1,0% · AOV −5,9%Net Revenue, sumbu kiriAOV, sumbu kanan
    Mei punya order terbanyak (427) tapi revenue lebih rendah, karena AOV turun. Ini penjelasan yang sudah kamu tulis di Business_Analysis, sekarang terlihat dalam satu panel.

    Discount rate dan cancellation ratePanel baru

    Dua rasio yang jadi dasar dua temuan terkuat kamu, tapi belum pernah muncul di dashboard.
    0%2%4%6%8%10%12%14%JanFebMarAprMeiJunJuni 12,3%4,0%3,1%Discount rateCancellation rate
    Discount naik 3,92% ke 4,40% di Mei, persis yang kamu pakai untuk menjelaskan AOV. Cancel rate melonjak ke 12,29% di Juni.

    Kontribusi revenue per customer typeGanti bentuk

    Per bulan, bukan donut agregat, dan segmen Unknown ditampilkan terbuka.
    0,0 M0,2 M0,4 M0,6 M0,8 M1,0 M1,2 M1,4 MRp502 jtRp671 jtJanRp506 jtRp568 jtFebRp582 jtRp581 jtMarRp707 jtRp501 jtAprRp773 jtRp347 jtMeiRp826 jtRp351 jtJunCustomer baruCustomer lamaUnknown
    Porsi customer lama turun dari 56,5% ke 29,2%. Segmen Unknown yang kamu tulis di limitasi sekarang terlihat, bukan tersembunyi di dalam total.

    Cancel rate per traffic sourcePanel baru

    Temuan kamu sendiri, dipindahkan dari slide ke dashboard. Angka di bawah untuk seluruh periode.
    CANCELLATION RATEPaid Social14,0%Paid Search11,2%Direct10,3%Referral8,3%Marketplace7,7%Organic Search7,4%Traffic berbayar membatalkan sekitar 2× lebih sering.
    Dengan filter Month diarahkan ke Juni, Paid Search naik ke 16,42%, persis angka yang kamu tulis. Potongan ini tidak ditemukan lima kandidat lain.

    Performa per kategori

    Ditambah jumlah order, unit share, AOV, dan discount rate. Order dihitung distinct per kategori, sama seperti di tab KPI kamu.
    NET REVENUEORDERUNIT SHAREAOVDISCOUNTHandbagsRp2,99 M63616,6%Rp4,70 jt1,8%ShoesRp2,15 M93825,8%Rp2,29 jt6,1%Ready-to-WearRp884,25 jt75321,1%Rp1,17 jt5,3%AccessoriesRp558,25 jt80522,4%Rp693 rb3,4%Small Leather GoodsRp449,62 jt53314,0%Rp844 rb2,5%
    Small Leather Goods AOV Rp 844 rb, lebih tinggi dari Accessories Rp 693 rb. Kesimpulanmu bahwa kelemahannya soal jumlah SKU, bukan minat, sekarang bisa dibaca langsung dari panelnya.

    Revenue per channelDigabung

    Menggabungkan dua panel channel, ditambah AOV dan cancel rate.
    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.

    Top 10 produkNama dibetulkan

    product_id dan revenue kamu sudah benar. Nama dikembalikan ke pemilik aslinya.
    ProdukIDNet Revenue
    Handbags Arcova 39PRD1008Rp 245.296.000
    Handbags Elova 92PRD1014Rp 243.631.000
    Handbags Elova 59PRD1017Rp 240.725.000
    Handbags Cantera 65PRD1019Rp 178.153.000
    Handbags Mirela 23PRD1001Rp 178.140.500
    Handbags Mirela 30PRD1021Rp 177.297.500
    Shoes Sybren 45PRD1072Rp 174.163.000
    Shoes Arcova 83PRD1058Rp 165.617.000
    Handbags Tesse 41PRD1011Rp 165.273.500
    Handbags Cantera 58PRD1005Rp 160.987.500
    8 Handbags dan 2 Shoes, menyumbang 27,5% total revenue.

    Bottom 10 produkDipertahankan

    Sudah benar di versi kamu. Kamu satu satunya yang menampilkannya.
    ProdukIDNet Revenue
    Ready-To-Wear Mirela 26PRD1041Rp 8.366.500
    Accessories Luria 40PRD1084Rp 9.762.500
    Ready-To-Wear Cantera 40PRD1028Rp 11.866.000
    Small Leather Goods Norvik 57PRD1098Rp 13.012.000
    Accessories Luria 64PRD1080Rp 13.474.000
    Ready-To-Wear Sybren 47PRD1035Rp 14.365.000
    Accessories Sybren 57PRD1085Rp 14.434.500
    Accessories Arcova 48PRD1088Rp 15.277.500
    Ready-To-Wear Norvik 42PRD1045Rp 15.302.000
    Ready-To-Wear Tesse 59PRD1034Rp 16.276.000
    5 Ready-to-Wear, 4 Accessories, 1 Small Leather Goods. Total 1,9% revenue.

    Tujuh hal yang berubah.

    BagianSebelumSesudahYang jadi kelihatan
    Top 10Enam nama tidak cocok dengan product_idNama dikembalikan ke pemilik aslinyaPRD1008 kembali jadi Handbags ARCOVA 39, bukan Handbags Sybren 16
    Tren bulananRevenue dan order di dua panel terpisah, AOV tidak adaRevenue, order, dan AOV dalam satu panelMei punya order terbanyak tapi revenue turun, karena AOV jatuh
    Panel baruTidak ada visual diskon maupun tren pembatalanDiscount rate dan cancellation rate per bulanDiskon naik ke 4,40% di Mei, cancel melonjak ke 12,29% di Juni
    Panel baruCancel rate per traffic source hanya ada di slideDipindahkan ke dashboardPaid Search 16,42% berbanding Direct 9,76% di Juni
    Customer typeDonut agregat, segmen Unknown tidak ditampilkanBatang bertumpuk per bulan, Unknown ikut terlihatPorsi customer lama turun dari 56,5% ke 29,2%
    Per kategoriHanya revenueRevenue, order, unit share, AOV, discount rateAOV Small Leather Goods lebih tinggi dari Accessories
    Per channelDua panel terpisah untuk revenue dan orderSatu panel, ditambah AOV dan cancel rateAOV cuma beda 2,7%, cancel rate beda 10,2% vs 7,7%

    Tidak ada satu angka pun yang diubah, karena semua angkamu sudah tepat. Yang berubah cuma nama produk yang dikembalikan ke pemiliknya, dan dua temuan terbaikmu yang dipindahkan dari slide ke dashboard.

    Bab IVRekap

    Rekap dan Penutup

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

    Deduction dan bonus yang membentuk skor 86.

    ItemAreaPoin
    Tidak ada grain, primary key, referential integrityData Understanding−3
    Premis rekomendasi April tidak sesuai dataBusiness Analysis−2
    Enam nama di Top 10 dashboard salahDashboard−2
    Top 10 di sheet diagregasi by product_name, muncul produk hantuKPI Accuracy−2
    Sepuluh product_name tertukar antar product_idData Cleaning−2
    Revenue by Category tanpa order, tidak ada tren cancellation dan diskonDashboard−1
    Porsi New Customer memakai penyebut yang tidak konsistenKPI Accuracy−1
    Menemukan dan menangani quantity nol dengan alasanData Cleaning+2
    Menormalisasi case style pada kolom teksData Cleaning+2
    Arah belajar

    Tiga hal yang akan menutup jarak terakhir.

    01

    Kunci dan atributnya jangan pernah dipisah

    Setiap kali menyentuh tabel dimensi, entah pengurutan, penyalinan, atau formula, pastikan primary key ikut bergerak bersama atributnya. Satu pemeriksaan sesudahnya, membandingkan pasangan kunci dan nama sebelum dan sesudah, sudah cukup mencegah koreksi nomor satu.

    02

    Verifikasi premis, bukan cuma angka

    Angkamu akurat sampai digit terakhir. Yang belum diperiksa dengan disiplin yang sama adalah kalimat penghubungnya. Kata seperti "hanya" dan "tanpa" adalah klaim yang bisa diuji, dan sebaiknya diuji sebelum ditulis.

    03

    Bawa temuan terkuat ke dashboard

    Penjelasan AOV Mei dan lonjakan cancellation Juni adalah dua bagian terbaik dari analisismu, tapi keduanya belum punya panel sendiri. Tanya balik: kalau pembaca cuma punya dashboard ini, temuan mana yang hilang?

    Kesimpulan

    Analisisnya kelas atas. Yang perlu dibangun kebiasaan memverifikasi hasil cleaning.

    Setiap kesimpulanmu punya angka, setiap angka cocok sampai digit terakhir, dan kamu menghindari seluruh jebakan interpretasi di case ini. Dua temuan yang tidak didapat kandidat peringkat satu justru kamu dapatkan.

    Yang menahan skormu satu operasi cleaning yang melepas nama produk dari kuncinya, dan efeknya merambat ke dua tempat. Seluruh angkamu selamat, jadi perbaikannya cepat: satu kolom di satu tabel dimensi, plus satu pemeriksaan supaya hal serupa ketahuan lebih awal.

    86 / 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: