ScenarioLoom
AML transaction monitoring

AML test data
with an answer key.

Generate a synthetic bank: customers, accounts, counterparties and months of ordinary transactions, with structuring, mule networks, fast in–fast out and other typologies planted inside. A separate answer key says which scenarios should alert, and which legitimate look-alikes should not.

Runs in your browser. Free plan, no account needed.

From the sample answer key
typology
fast_in_fast_out
expected_alert
true
difficulty
easy
Generated fixture · seed scenarioloom-sample
What you get

Inputs and answers,
kept apart.

Source records go to the system you are testing. The answer key stays with you, so you can compare results afterwards.

customers, accounts, counterparties

Individuals and businesses with occupations, onboarding dates, risk ratings and expected turnover.

transactions

Salaries, rent, card spending, supplier payments and payroll, with running balances, plus the planted scenarios.

expected_alerts

One row per scenario: typology, difficulty, subject accounts, amounts and whether an alert is expected.

txn_labels

Which transactions belong to which scenario, and their role in it.

Fast in, fast outStructuring below the thresholdFunnel accountFan-outLayering chainMule networkDormant reactivationProfile mismatch
Real output

A sample, generated by ScenarioLoom.

Seed scenarioloom-sample, anchor date 2026-11-01. Open the setup to change the volume, scenarios or format; the same settings always reproduce these files.

expected_alerts · first rows

scenario_idtypologylabelexpected_alertdifficultytxn_count
S0001fast_in_fast_outFast in, fast outtrueeasy11
S0002structuringStructuringtrueeasy13
S0003funnel_accountFunnel account (fan-in)trueeasy30
S0004fan_outRapid dispersal (fan-out)trueeasy25
S0005layering_chainLayering chain or round triptrueeasy7
S0009benign_payrollPayroll runfalse49
S0010benign_marketplace_sellerOnline sellerfalse6
S0011benign_student_remittanceStudent supported from abroadfalse2
S0012benign_property_purchaseProperty purchasefalse2
S0013benign_cash_businessCash-heavy restaurantfalse25

Sample files

Small enough for the Free plan. Answer-key files are marked; keep them away from the system under test.

How teams use it

Built for a repeatable test.

01

Tune detection rules

Run your rules against data where you know the right answer, then compare alerts with the answer key.

02

Measure false positives

Legitimate look-alikes such as payroll, marketplace sellers and property purchases show whether rules over-alert.

03

Score alerts locally

Import your system’s alerts in the workspace to get precision, recall and F1 per typology, without uploading anything.

Scope. These are fictional, seeded test fixtures. Expected outcomes define a synthetic benchmark, not a legal or compliance determination about any real party, and they are not a substitute for practitioner review. Use them in isolated test environments.
Questions

Common questions.

Is this real bank data?

No. Every customer, account and transaction is generated from a seed. The same seed, settings and engine version reproduce the same data, so a failing test can be rerun exactly.

How large can a dataset be?

This sample is deliberately small. In the workspace you can set the number of customers, the period, the scenarios per typology and their difficulty. Free exports up to 1,000 records per file; Pro removes that limit within your device’s memory.

How do I score my monitoring system?

Generate the data, run it through your system, then import the resulting alerts as CSV or JSON in the workspace. ScenarioLoom matches them by transaction, account or scenario ID and reports metrics locally.

Which currency and threshold are used?

The bank country sets the currency. The default reporting threshold is about US$10,000 converted; only the US figure reflects a real rule, and you can set your own.

More test data

Generate your own.

Change the seed, volume and scenarios in the browser. Nothing is uploaded.

Open the generator