Icon

Tugas Bisnis Analitik AI Kelompok A8 Fix CMIIW

DATA PREPARATION & PRE PROCESSING

KELOMPOK A8

  1. Read Invoices 2. Validate InvoiceID

  1. Read InvoiceLine 4. Validate InvoiceLineID

5.Invoice & Invoiceline Joiner

  1. Read Payments 7. Validate Payment ID

  1. Invoice + Payment

  1. Read SalesRep 10. Validate SalesRepID

  1. Tambah Data SalesRep

  1. Read Product 13.Validate ProductID

  1. Tambah Data Product

  1. Mendeteksi Pelanggaran Diskon

  1. Mendeteksi Penjualan di Bawah Harga Pokok / Rugi

  1. Data Per Faktur

  1. Kategorisasi Overduedays

  1. Final Output

Joiner 1 :

Sebelum join : 1.205 baris (Invoices) + 3.904 baris (InvoiceLine)

Sesudah join : 3.904 baris

Sehingga tidak terjadi row multiplication (fan-out) yang salah pada level item

Joiner 2 :

Sebelum join : 3.904 baris + 1.205 baris (Payment)

Sesudah join : 3.904 baris

Sehingga tidak terjadi row multiplication pada data pembayaran

Joiner 3 :

Sebelum join : 3.904 baris + 12 baris (SalesReps)

Sesudah join : 3.904 baris

Sehingga tidak terjadi penggandaan baris pendapatan (aman dari fan-out)

Joiner 4 :

Sebelum join : 3.904 baris + 24 baris (Product)

Sesudah join : 3.904 baris

Sehingga tabel rincian transaksi lengkap dan siap masuk ke tahap Rule Engine

16.Menyaring Transaksi yang Melanggar Diskon

17.Rekap Jumlah Pelanggaran per Sales / Customer

18.Menghitung Nilai Kerugian Akibat Diskon Berlebih

19.Total Nilai Kerugian Diskon

21.Menyaring Transaksi yang Dijual di Bawah HPP

  1. Menyaring Faktur Bermasalah / Melebihi Batas

  1. Menyaring Faktur Jatuh Tempo (Overdue)

26.Menghitung Jumlah Faktur per Kategori Umur Piutang

CATATAN KEPUTUSAN PEMBERSIHAN

1. Duplikat: dicek pada 5 tabel sumber, tidak ada baris yang dibuang (1.205 / 3.904 / 1.205 / 12 / 24 baris tetap). Alasan: kunci sudah unik.

2. Join: jumlah baris dikunci 3.904 di setiap join. ShippingAddresses dan CustomerSalesRepAssignments sengaja tidak digabung. Alasan: satu pelanggan bisa punya banyak alamat/sales, sehingga baris dan pendapatan berlipat.

3. Nilai kosong: DueDate di Invoices (461) dan PaymentDate (377) dibiarkan kosong, tidak diimputasi. Alasan: DueDate kosong seluruhnya CreditTermDays = 0 (Tunai/Transfer), PaymentDate kosong seluruhnya berstatus Unpaid, jadi kosong secara struktural. Keterlambatan memakai DueDate dari Payments (lengkap).

4. Pencilan: 48 baris di bawah HPP tidak dibuang, hanya ditandai Is_Below_Cost. Alasan: itu temuan bisnis (41 di antaranya juga melanggar plafon diskon).

5. Kolom turunan: Is_Discount_Violation = 1 bila AdditionalDiscountPct > MaxAdditionalDiscountPct sales tsb. Is_Below_Cost = 1 bila LineMarginAmount < 0. Bucket keterlambatan: 0 / 1-30 / 31-60 / 61-90 / >90 hari. Flag per faktur = Maximum flag baris (1 bila ada minimal 1 baris bermasalah).

Invoice.csv(1205 Rows)
CSV Reader
Invoice.id(1205 Rows)
Duplicate Row Filter
CSV Writer
InvoiceLineID.csv(3904 Rows)
CSV Reader
InvoiceLineID.id(3904 Rows)
Duplicate Row Filter
Matching RowsCustomers ID = Customers ID
Joiner
Payment.csv(1.205 rows)
CSV Reader
Payment.id(1.205 rows)
Duplicate Row Filter
Only Violations
Row Filter
Violation Count
GroupBy
Only Loss Transactions
Row Filter
Flagged Invoices
Row Filter
Discount Loss Value
Math Formula
Total Discount Loss
GroupBy
Overdue Invoices
Row Filter
Overdue Distribution
Value Counter
SalesRep.id(12 Rows)
Duplicate Row Filter
(Left Outer)Invoices ID = Invoices ID
Joiner
Product.csv(24 Rows)
CSV Reader
SalesRep.csv(12 Rows)
CSV Reader
Product.id(24 Rows)
Duplicate Row Filter
left Outer)SalesRepID = SalesRepID
Joiner
Joiner
GroupBy
Numeric Binner
Discount Violations
Rule Engine
Sales Below Cost / Loss
Rule Engine

Nodes

Extensions

Links