Integrity certificate for Anti-money-laundering transactions with ground truth
Re-run against these exact files.

Every line below was measured, not asserted. The CSVs are right here and the checks are ordinary joins.

  PASS  customers.customer_id: 0 duplicate(s), 0 null(s)
  PASS  accounts.account_id: 0 duplicate(s), 0 null(s)
  PASS  accounts.customer_id -> customers.customer_id: 0 orphan(s) of 487 rows
  PASS  counterparties.counterparty_id: 0 duplicate(s), 0 null(s)
  PASS  transactions.transaction_id: 0 duplicate(s), 0 null(s)
  PASS  transactions.account_id -> accounts.account_id: 0 orphan(s) of 83,818 rows
  PASS  transactions.customer_id -> customers.customer_id: 0 orphan(s) of 83,818 rows
  PASS  transactions.counterparty_id -> counterparties.counterparty_id: 0 orphan(s) of 83,818 rows
  PASS  alerts.alert_id: 0 duplicate(s), 0 null(s)
  PASS  alerts.customer_id -> customers.customer_id: 0 orphan(s) of 145 rows
  PASS  alerts.account_id -> accounts.account_id: 0 orphan(s) of 145 rows
  PASS  cases.case_id: 0 duplicate(s), 0 null(s)
  PASS  cases.customer_id -> customers.customer_id: 0 orphan(s) of 49 rows
  PASS  cases.first_alert_id -> alerts.alert_id: 0 orphan(s) of 49 rows
  PASS  no row is dated before the row it belongs to

15 checks, 15 passing.
Generated by Misata Studio -- https://www.misata.studio
