Sanctions Desk gathers and checks the evidence for every sanctions-screening alert and recommends an outcome; a person with the right entitlement approves it. One alert, start to finish · The problem it works on
Recorded runs / ALR-0030
ALR-0030: No date of birth on file
What happened: The decision step recommended NEED_MORE_INFO; the critic sent it back once and then approved it; the policy guard let it stand. Outcome: Ask for more information (NEED_MORE_INFO), as the label expects.
Outcomes: CLOSE_FALSE_POSITIVE = close as a false positive · ESCALATE_L2 = escalate to level 2 · NEED_MORE_INFO = ask for more information · RECOMMEND_BLOCK = recommend a block (two people must confirm). Raise-only: the policy guard can make an outcome more cautious, never less.
A data-quality rule blocks a close: the customer has no date of birth on record, so the Zetaris rule dob_present_for_individuals fails, the policy guard blocks any close, and the case goes to a person as need more information.
Outcome
- Desk recommendation
- Ask for more information (NEED_MORE_INFO)
- Label in the case file
- Ask for more information (NEED_MORE_INFO); also acceptable: ESCALATE_L2 (eval/cases/exam.json, case EX-030)
- Compared with the label
- matches the label
- Code's first finding
- Ask for more information (NEED_MORE_INFO)
- Critic
- 2 round(s), final: approved
- Model calls
- 5 (1 local, 4 cloud); 5 with a signed receipt, all verified
- Run
- sys2b-routed-20261023T195504Z, policy version 6, 40 steps in 32.4 s
Case note from the case file: The match can be neither confirmed nor ruled out; the data-quality rule fails.
What the reviewer does next: The sealed record holds no human decision yet, so nothing has been prepared. The reviewer approves Ask for more information (NEED_MORE_INFO) or overrides it with a reason. On approval the desk prepares a request-for-information draft, which a person must approve before it is used for ALR-0030. Nothing is sent.
Checks along the way
No close was proposed in this run. What each check said:
- critic (step 29): rejected: cited fact does not hold: unknown table "data_quality". Cite only rows of these tables: account (key account_id), alert (key alert_id), beneficial_owner (key ownership_id), business_definition (key definition_key), customer (key customer_id), customer_alias (key alias_id), customer_identifier (key i
- critic (step 37): approved
- policy guard (raise-only rules in code): NEED_MORE_INFO stands. Checks that raised or flagged: data_quality: block (customer record fails dob_present_for_individuals)
Steps in order
Each line is one event from the run's trace (trace.jsonl.gz). The model is the one that served the call, as the signed receipt records it.
| # | Agent | Action | Status | What happened | Model | Receipt | Zetaris read |
|---|---|---|---|---|---|---|---|
| 0 | triage | plan | ok | in: customer alert ALR-0030 path: customer review; the critic may send the recommendation back up to 3 times | |||
| 1 | evidence | read_semantic_layer | ok | screening_usl v4efa3ddddfbe: 14 tables | |||
| 2 | evidence | find_alert | ok | in: alert_id=ALR-0030 1 rows | alert, 1 rowsbf5523f6-1e1b-40e5-8473-6f9fe05384cc | ||
| 3 | evidence | find_customer | ok | in: customer_id=CUST-0030 1 rows | customer, 1 rowsa47d2087-5c5e-42d7-8ea1-42feeb688640 | ||
| 4 | evidence | find_customer_identifier | ok | in: customer_id=CUST-0030 0 rows | customer_identifier, 0 rowsf0b211f6-e15d-4b69-ba88-30a491e536f5 | ||
| 5 | evidence | find_list_entry | ok | in: entry_id=OFAC-7257 1 rows | list_entry, 1 rows4feb471b-7194-47d9-be8d-2ba65a725c07 | ||
| 6 | evidence | find_list_alias | ok | in: entry_id=OFAC-7257 1 rows | list_alias, 1 rowsb54f8fab-373e-44a1-92c7-95f0df73bf58 | ||
| 7 | evidence | find_list_dob | ok | in: entry_id=OFAC-7257 1 rows | list_dob, 1 rows78c79e49-b229-4b0a-a64d-49c4387cc326 | ||
| 8 | evidence | find_list_country | ok | in: entry_id=OFAC-7257 4 rows | list_country, 4 rows22f202d2-7e21-40f8-a068-07de5381bd72 | ||
| 9 | evidence | find_list_identifier | ok | in: entry_id=OFAC-7257 1 rows | list_identifier, 1 rows49977e7b-090e-48ec-ac11-d724c8460573 | ||
| 10 | evidence | find_business_definition | ok | in: status=approved 6 rows | business_definition, 6 rows55a6a9e4-be74-4899-abe8-3ce987e9b23b | ||
| 11 | evidence | definitions | ok | counterparty_match@1, effective_ownership_threshold@1, false_positive@2, strong_identifier@1, true_match@1 | |||
| 12 | evidence | identifier_overlap | ok | no identifier matches | customer_identifier, 0 rowsf6fcb9b7-d852-474b-b9b0-427c74ca707f | ||
| 13 | evidence | data_quality | blocked | in: customer.dob_present_for_individuals for CUST-0030 record fails this rule | customer, 24 rows5226a242-8c57-4442-ac03-6da1a276adab | ||
| 14 | evidence | data_quality | ok | in: customer.nationality_is_iso2 for CUST-0030 record passes this rule | customer, 1 rowsed9d6994-0d83-4409-a8dc-1d5431b6ad06 | ||
| 15 | policy_guard | model_answer | ok | valid answer on attempt 1 | Nemotron 3.5 Lightning 30B-A3B (Runtime GGUF) (local, Lightning) | rcpt_req_dj3ngouxsignature valid, key pinned | |
| 16 | policy_guard | screen_inbound | ok | in: 3 text field(s) from the data no instruction-like text | |||
| 17 | screener | screen_text | skipped | no customer note, payment reference or list remark to read | |||
| 18 | matching | compare_party | ok | in: CUST-0030 vs OFAC-7257 possible: name 1.00 (exact) vs primary "Tarek Ben Habib Ben Al-Toumi MAAROUFI"; date of birth: missing_customer; country: match | |||
| 19 | triage | difficulty | ok | contested (possible; date of birth missing_customer; country match) | |||
| 20 | memory | recall | ok | in: customer CUST-0030 and OFAC-7257 no earlier decision about this pair | disposition, 0 rows6475380e-2871-442a-b382-609116ab58ba | ||
| 21 | triage | path | ok | confirm: the structured evidence settles it (the record fails a data-quality rule, so the data cannot be relied on yet) | |||
| 22 | triage | route | ok | earlier clearance still valid: fast path, no reasoning | |||
| 23 | decision | cloud_payload | ok | sent 17 fields, 5378 characters, hash b330662ac9324e86; free text withheld | |||
| 24 | decision | model_answer | ok | valid answer on attempt 1 | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_moixn9nisignature valid, key pinned | |
| 25 | decision | recommend | ok | NEED_MORE_INFO: The customer's date of birth is missing, preventing verification of the true_match definition which requires DOB agreement to the day. Nationality matches (TN), so false_positive cannot apply. With a | |||
| 26 | critic | verify_facts | blocked | in: 6 cited facts 5 verified, 1 issues | |||
| 27 | critic | cloud_payload | ok | sent 17 fields, 6040 characters, hash 9cb63654739304ee; free text withheld | |||
| 28 | critic | model_answer | ok | valid answer on attempt 1 | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_jmkg0inpsignature valid, key pinned | |
| 29 | critic | judge | blocked | rejected: cited fact does not hold: unknown table "data_quality". Cite only rows of these tables: account (key account_id), alert (key alert_id), beneficial_owner (key ownership_id), business_definition (key definition_key), customer (key customer_id), customer_alias (key alias_id), customer_identifier (key i | |||
| 30 | critic | send_back | retry | cited fact does not hold: unknown table "data_quality". Cite only rows of these tables: account (key account_id), alert (key alert_id), beneficial_owner (key ownership_id), business_definition (key definition_key), customer (key customer_id), customer_alias (key alias_id), customer_identifier (key i | |||
| 31 | decision | cloud_payload | ok | sent 17 fields, 6093 characters, hash 34dd86cf979d917d; free text withheld | |||
| 32 | decision | model_answer | ok | valid answer on attempt 1 | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_x1rvfs7psignature valid, key pinned | |
| 33 | decision | recommend | ok | NEED_MORE_INFO: The customer's name matches the listed party exactly, but the customer's date of birth is missing while the listed party has a day-precision date of birth (1965-11-23). Nationality matches (TN). Becau | |||
| 34 | critic | verify_facts | ok | in: 5 cited facts 5 verified, 0 issues | |||
| 35 | critic | cloud_payload | ok | sent 17 fields, 5424 characters, hash 4e514efa00098663; free text withheld | |||
| 36 | critic | model_answer | ok | valid answer on attempt 1 | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_2m50jiv2signature valid, key pinned | |
| 37 | critic | judge | ok | approved | |||
| 38 | policy_guard | apply_policy | ok | NEED_MORE_INFO stands | |||
| 39 | reporter | seal_record | ok | record rec-eval-sys2b-routed-EX-030 sealed |
Model calls and receipts
Each signature was checked when this page was built, with the same code as npm run evidence:verify (Ed25519 over the receipt body in receipts.jsonl.gz); the build stops if one does not verify, is missing, or names a different model from the trace. The Nightshift runtime's receipt key is pinned in config/default.json, so signature valid, key pinned shows the receipt was not changed and that this runtime signed it; a receipt signed by any other key stops the build.
| # | Step | Mode asked for | Model that served it | Receipt | App | Checked now | At run time | Time | Tokens in / out |
|---|---|---|---|---|---|---|---|---|---|
| 15 | policy_guard | meterless/fast | Nemotron 3.5 Lightning 30B-A3B (Runtime GGUF) (local, Lightning) | rcpt_req_dj3ngoux | sanctions-desk-guard | signature valid, key pinned | valid_pinned | 0.5 s | 481 / 19 |
| 24 | decision | meterless/deep | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_moixn9ni | sanctions-desk-reasoning | signature valid, key pinned | valid_pinned | 11.2 s | 4334 / 526 |
| 28 | critic | meterless/judge | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_jmkg0inp | sanctions-desk-reasoning | signature valid, key pinned | valid_pinned | 4.5 s | 2911 / 152 |
| 32 | decision | meterless/deep | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_x1rvfs7p | sanctions-desk-reasoning | signature valid, key pinned | valid_pinned | 8.5 s | 4444 / 557 |
| 36 | critic | meterless/judge | Nemotron 3 Ultra 550B A55B (cloud, Ultra) | rcpt_req_2m50jiv2 | sanctions-desk-reasoning | signature valid, key pinned | valid_pinned | 4.8 s | 2731 / 128 |
The whole run passes the same check: 305 receipts with valid signatures, 305 model calls in the trace that name a receipt, none missing and none naming a different model from its receipt.
Signing key fingerprint (first 16 hex of SHA-256): 1835d1eab9211f97.
Zetaris queries
The statements are exactly as the sealed decision record of this run keeps them (output_examples/need-more-info-critic-sent-back/decision-record.json; its hash matches the one the trace logged when it was sealed). The record keeps each statement and a hash of each row returned, not the rows themselves.
| Agent | Table | Rows | Statement | Query id |
|---|---|---|---|---|
| evidence | alert | 1 | SELECT `alert_id`, `alert_type`, `alert_source`, `customer_id`, `payment_id`, `list_id`, `entry_id`, `matched_name`, `match_score`, `raised_at`, `status` FROM lightning.metastore.sanctions.screening_usl.alert WHERE `alert_id` = 'ALR-0030' ORDER BY `alert_id` LIMIT 200 | bf5523f6-1e1b-40e5-8473-6f9fe05384cc |
| evidence | customer | 1 | SELECT `customer_id`, `customer_type`, `full_name`, `date_of_birth`, `nationality`, `residence_country`, `onboarding_date`, `risk_rating`, `desk`, `notes`, `data_origin` FROM lightning.metastore.sanctions.screening_usl.customer WHERE `customer_id` = 'CUST-0030' ORDER BY `customer_id` LIMIT 200 | a47d2087-5c5e-42d7-8ea1-42feeb688640 |
| evidence | customer_identifier | 0 | SELECT `identifier_id`, `customer_id`, `id_type`, `id_number`, `issuing_country` FROM lightning.metastore.sanctions.screening_usl.customer_identifier WHERE `customer_id` = 'CUST-0030' ORDER BY `identifier_id` LIMIT 200masked in the result: id_number | f0b211f6-e15d-4b69-ba88-30a491e536f5 |
| evidence | list_entry | 1 | SELECT `entry_id`, `list_id`, `source_uid`, `party_kind`, `primary_name`, `primary_name_script`, `name_normalised`, `listed_on`, `sanctions_list`, `remarks`, `snapshot_id`, `content_hash` FROM lightning.metastore.sanctions.screening_usl.list_entry WHERE `entry_id` = 'OFAC-7257' ORDER BY `entry_id` LIMIT 200 | 4feb471b-7194-47d9-be8d-2ba65a725c07 |
| evidence | list_alias | 1 | SELECT `alias_id`, `entry_id`, `alias_name`, `alias_type`, `script`, `name_normalised`, `is_primary`, `is_strong` FROM lightning.metastore.sanctions.screening_usl.list_alias WHERE `entry_id` = 'OFAC-7257' ORDER BY `alias_id` LIMIT 200 | b54f8fab-373e-44a1-92c7-95f0df73bf58 |
| evidence | list_dob | 1 | SELECT `dob_id`, `entry_id`, `dob_value`, `dob_precision`, `range_from`, `range_to`, `is_approximate` FROM lightning.metastore.sanctions.screening_usl.list_dob WHERE `entry_id` = 'OFAC-7257' ORDER BY `dob_id` LIMIT 200 | 78c79e49-b229-4b0a-a64d-49c4387cc326 |
| evidence | list_country | 4 | SELECT `country_link_id`, `entry_id`, `country_iso2`, `country_name`, `role`, `place` FROM lightning.metastore.sanctions.screening_usl.list_country WHERE `entry_id` = 'OFAC-7257' ORDER BY `country_link_id` LIMIT 200 | 22f202d2-7e21-40f8-a068-07de5381bd72 |
| evidence | list_identifier | 1 | SELECT `identifier_id`, `entry_id`, `id_type`, `id_number`, `issuing_country`, `note` FROM lightning.metastore.sanctions.screening_usl.list_identifier WHERE `entry_id` = 'OFAC-7257' ORDER BY `identifier_id` LIMIT 200 | 49977e7b-090e-48ec-ac11-d724c8460573 |
| evidence | business_definition | 6 | SELECT `definition_key`, `definition_id`, `version`, `name`, `statement`, `status`, `owner`, `effective_from` FROM lightning.metastore.sanctions.screening_usl.business_definition WHERE `status` = 'approved' ORDER BY `definition_key` LIMIT 200 | 55a6a9e4-be74-4899-abe8-3ce987e9b23b |
| evidence | customer_identifier | 0 | SELECT ci.id_type AS id_type, COUNT(*) AS n FROM lightning.metastore.sanctions.screening_usl.customer_identifier ci JOIN lightning.metastore.sanctions.screening_usl.list_identifier li ON regexp_replace(upper(ci.id_number), '[^A-Z0-9]', '') = regexp_replace(upper(li.id_number), '[^A-Z0-9]', '') WHERE ci.customer_id = 'CUST-0030' AND li.entry_id = 'OFAC-7257' GROUP BY ci.id_type | f6fcb9b7-d852-474b-b9b0-427c74ca707f |
| evidence | customer | 24 | SHOW DQ INVALID RECORD dob_present_for_individuals TABLE lightning.metastore.sanctions.screening_usl.customer | 5226a242-8c57-4442-ac03-6da1a276adab |
| evidence | customer | 1 | SHOW DQ INVALID RECORD nationality_is_iso2 TABLE lightning.metastore.sanctions.screening_usl.customer | ed9d6994-0d83-4409-a8dc-1d5431b6ad06 |
| memory | disposition | 0 | SELECT `disposition_id`, `alert_id`, `customer_id`, `entry_id`, `decision`, `reason_codes`, `decided_at`, `decided_by`, `entry_content_hash`, `list_snapshot_id` FROM lightning.metastore.sanctions.screening_usl.disposition WHERE `customer_id` = 'CUST-0030' ORDER BY `disposition_id` LIMIT 200 | 6475380e-2871-442a-b382-609116ab58ba |
| critic | customer | 1 | SELECT `customer_id`, `customer_type`, `full_name`, `date_of_birth`, `nationality`, `residence_country`, `onboarding_date`, `risk_rating`, `desk`, `notes`, `data_origin` FROM lightning.metastore.sanctions.screening_usl.customer WHERE `customer_id` = 'CUST-0030' ORDER BY `customer_id` LIMIT 200 | 61cc6479-b5f0-4229-bfb8-9dbcefb9b6ed |
| critic | customer | 1 | SELECT `customer_id`, `customer_type`, `full_name`, `date_of_birth`, `nationality`, `residence_country`, `onboarding_date`, `risk_rating`, `desk`, `notes`, `data_origin` FROM lightning.metastore.sanctions.screening_usl.customer WHERE `customer_id` = 'CUST-0030' ORDER BY `customer_id` LIMIT 200 | ff101545-871c-45fc-ae48-03bd3989654c |
| critic | list_dob | 1 | SELECT `dob_id`, `entry_id`, `dob_value`, `dob_precision`, `range_from`, `range_to`, `is_approximate` FROM lightning.metastore.sanctions.screening_usl.list_dob WHERE `dob_id` = 'OFAC-7257-d-ed7c3122' ORDER BY `dob_id` LIMIT 200 | a839ec87-e086-40c3-ae50-e967dcf24e57 |
| critic | list_dob | 1 | SELECT `dob_id`, `entry_id`, `dob_value`, `dob_precision`, `range_from`, `range_to`, `is_approximate` FROM lightning.metastore.sanctions.screening_usl.list_dob WHERE `dob_id` = 'OFAC-7257-d-ed7c3122' ORDER BY `dob_id` LIMIT 200 | 294afe0d-6c18-4f12-b05c-f4fabc86fb8a |
| critic | list_country | 1 | SELECT `country_link_id`, `entry_id`, `country_iso2`, `country_name`, `role`, `place` FROM lightning.metastore.sanctions.screening_usl.list_country WHERE `country_link_id` = 'OFAC-7257-c-fedb041a' ORDER BY `country_link_id` LIMIT 200 | 3eff9e9f-d1e5-4e10-b15d-3d8d578cfd8d |
| critic | customer | 1 | SELECT `customer_id`, `customer_type`, `full_name`, `date_of_birth`, `nationality`, `residence_country`, `onboarding_date`, `risk_rating`, `desk`, `notes`, `data_origin` FROM lightning.metastore.sanctions.screening_usl.customer WHERE `customer_id` = 'CUST-0030' ORDER BY `customer_id` LIMIT 200 | 0343f08e-7639-49a7-81e5-7c4eff4abffa |
| critic | customer | 1 | SELECT `customer_id`, `customer_type`, `full_name`, `date_of_birth`, `nationality`, `residence_country`, `onboarding_date`, `risk_rating`, `desk`, `notes`, `data_origin` FROM lightning.metastore.sanctions.screening_usl.customer WHERE `customer_id` = 'CUST-0030' ORDER BY `customer_id` LIMIT 200 | d362aa27-6496-48ba-b9bc-d3cfd19c37e0 |
| critic | list_dob | 1 | SELECT `dob_id`, `entry_id`, `dob_value`, `dob_precision`, `range_from`, `range_to`, `is_approximate` FROM lightning.metastore.sanctions.screening_usl.list_dob WHERE `dob_id` = 'OFAC-7257-d-ed7c3122' ORDER BY `dob_id` LIMIT 200 | 10620adc-208f-4111-9d1d-2ee310197ef1 |
| critic | list_dob | 1 | SELECT `dob_id`, `entry_id`, `dob_value`, `dob_precision`, `range_from`, `range_to`, `is_approximate` FROM lightning.metastore.sanctions.screening_usl.list_dob WHERE `dob_id` = 'OFAC-7257-d-ed7c3122' ORDER BY `dob_id` LIMIT 200 | 89fe0649-0ccc-473c-9ddd-bd19fcd108c3 |
| critic | list_country | 1 | SELECT `country_link_id`, `entry_id`, `country_iso2`, `country_name`, `role`, `place` FROM lightning.metastore.sanctions.screening_usl.list_country WHERE `country_link_id` = 'OFAC-7257-c-fedb041a' ORDER BY `country_link_id` LIMIT 200 | aed5f548-b04b-4b5e-96ca-3135b61cc931 |
Check it yourself
Clone the repository and run npm run evidence:verify -- eval/runs/sys2b-routed-20261023T195504Z. What the export left out: tokens, local paths, hostnames and addresses other than the local machine, usernames, e-mail addresses and secret environment values were removed from results.json and trace.jsonl.gz; receipts.jsonl.gz is untouched.