# Decision Log — Synthetic Multi-source Dataset

- Dataset: customers.csv, transactions.csv, field_reports.csv; seed=42 for reproducibility.
- Missing amount: imputed with median valid amount (120000); `amount_missing=1` retained.
- Missing payment method: imputed with mode (`transfer`); `method_missing=1` retained.
- Dates: parsed to ISO-8601 `YYYY-MM-DD`; unparseable values would remain blank and be flagged.
- City aliases: normalized `Ternate City` → `Ternate`; `Tidore Island` → `Tidore`.
- IQR: Q1=105000, Q3=185000, IQR=80000, bounds=(-15000, 305000).
- Outliers: extreme value classified `Error`; unusual but plausible values classified `Anomali Genuin`; no rows silently deleted.
- Duplicates: exact and near-duplicates flagged in audit_flags.csv, retained for traceability.
- Unified output: one row per customer with transaction/report aggregates.
