Skip to content

policy: Finance "AML Transaction Screening" Gate #44

Description

@akarlaraytu

📘 Context

A banking AI assistant needs a deterministic AML (Anti-Money Laundering) gate
to decide whether a wire transfer can be AUTHORIZED, ESCALATED, or BLOCKED before
execution.

This policy should act as a pre-execution screening layer for cross-border and
high-value transactions, enforcing FATF and FinCEN-aligned thresholds without
relying on model judgment.

🎯 The Goal

Write an AML transaction screening policy for a banking AI assistant.

Variables you can use:

  • transaction_amount (Float): USD value of the transaction.
  • transaction_type (Enum): "DOMESTIC", "CROSS_BORDER", "CRYPTO_OFFRAMP".
  • sender_kyc_verified (Boolean): Whether sender has completed KYC.
  • receiver_kyc_verified (Boolean): Whether receiver has completed KYC.
  • sender_risk_score (Integer): Risk rating 0-100.
  • receiver_country_sanctioned (Boolean): Whether receiver country is on sanctions list.
  • pep_match (Boolean): Whether sender or receiver is a Politically Exposed Person.
  • daily_volume_usd (Float): Sender's cumulative transaction volume that day.
  • compliance_officer_approved (Boolean): Whether human compliance reviewer signed off.

Requirements:

  • BLOCK if sender_kyc_verified is False.
  • BLOCK if receiver_country_sanctioned is True.
  • BLOCK if transaction_amount > 10000 and transaction_type == "CROSS_BORDER" and compliance_officer_approved is False.
  • ESCALATE if pep_match is True.
  • ESCALATE if transaction_amount > 50000.
  • ESCALATE if sender_risk_score > 75.
  • BLOCK if daily_volume_usd > 100000 and compliance_officer_approved is False.

📚 Resources

  • Start here: docs/getting-started.md
  • Check syntax: quickstart/01_hello_world.csl
  • See how examples are structured: examples/community/

✅ Definition of Done

Submit a PR with: examples/community/finance_aml_screening.csl

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions