ScenarioLoom
Trade-based money laundering

Trade finance and TBML
test scenarios.

Generate fictional companies, banks, invoices, shipments, structured letters of credit and financing draws. Twelve case types plant over- and under-invoicing, business mismatches, duplicate financing and unexplained routing next to ordinary trade and explained exceptions, and the answer key gives the expected action for each.

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

From the sample answer key
case_key
over_invoicing
expected_action
alert
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.

companies, banks, ports, vessels

Fictional parties with declared sectors and permitted HS-code scopes, plus routes and IMO numbers.

invoices, shipments, letters_of_credit

Goods, grades, quantities, prices, routes, transshipments and credit terms that tie together.

reference_prices, screening_restrictions

Supplied reference prices and fictional vessel/port restrictions the cases are measured against.

expected_trade_alerts, trade_labels

Expected action and evidence references for each case and payment.

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_trade_alerts · first rows

case_keyexpected_actionreason
over_invoicingalertStandard-grade goods are invoiced at 3.5 times the supplied fixture reference price without supporting explanation.
under_invoicingalertStandard-grade goods are invoiced at 20% of the supplied fixture reference price without supporting explanation.
business_mismatchalertA food retailer imports industrial measuring instruments outside its supplied declared business scope.
duplicate_financingalertTwo full-value financing draws claim the same invoice, bill of lading and shipment without an installment agreement.
unexplained_routingalertAn unnecessary distant transshipment port is added without a supplied commercial explanation.
listed_vesselalertThe vessel IMO matches an active fictional screening restriction.
listed_portalertThe discharge port matches an active fictional screening restriction.
dual_use_reviewreviewThe supplied goods-risk register requests end-use review for this specific instrument specification. An HS code alone does not establish an export-control restriction.
ordinary_tradeno_alertA shipment fits the business scope, fixture price, ordinary route and supplied screening records.
explained_priceno_alertThe higher invoice price exactly matches the supplied premium-grade reference and supporting certificate.
installmentsno_alertTwo agreed 40%/60% draws finance one invoice; their total is the invoice value.
explained_routingno_alertA supplied port-closure notice explains the otherwise unusual transshipment route.

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

Test pricing rules

Over- and under-invoicing are measured against supplied reference prices, with a premium-grade control that should not alert.

02

Test document consistency

Business-scope mismatches, duplicate draws and routing exceptions need invoices, shipments and credits read together.

03

Balance alerts with controls

Ordinary trade, explained routing and documented installments check that rules do not over-alert.

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.

Where do the case types come from?

The broad indicator categories are informed by public FATF/Egmont trade-based money-laundering risk indicators and HMRC guidance on common techniques. The specific cases are synthetic benchmarks.

Are the letters of credit SWIFT messages?

No. They are structured fixture records with the fields needed for the cases, not SWIFT MT700 instruments.

Are the vessels and ports real?

Ports and vessels are fictional or illustrative, and restrictions are fictional test entries. Nothing here asserts that a real vessel, port or company is sanctioned.

How many cases can I generate?

The default pack has 24 cases. In the workspace choose case types, copies (up to 1,000 per case), currency and identity countries.

More test data

Generate your own.

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

Open the generator