{"schema_version":"1","site":"https://decosa.ai","id":"sanctions-disposition-record","num":"58","name":"Sanctions alert disposition record","tool_name":"Disposition a sanctions alert","short":"Sanctions dispositions","blurb":"Clears one sanctions screening alert at a time, for the analyst. Code compares the customer with the OFAC, EU or UK list entry field by field: name across transliterations and name order, date of birth, nationality, ID numbers, IMO number, address and the kind of party. It proposes true match, false positive or needs more information by a named rule. An open model gives an independent reading and writes a rationale, and every sentence of it is checked against the fields it cites. The analyst decides, and the decision is sealed in a signed, hash-chained record that pins the list version, for a 10-year log you keep.","status":"live","labels":{"industry":["finance","compliance-trust"],"job":["review","attest"],"input":["text"],"deploy":["selfhost"],"status":"live","output":["record","data"],"data":["pii","confidential"],"hardware":"gpu-96","licence":"permissive"},"industries":["finance","compliance-trust"],"runs_in":["selfhost"],"part_of":[],"built_from":["typed-judgment","signed-record"],"models":"Qwen3.8-27B explains; the comparison, the proposal and the checks are plain code","where":"Self-host for real alerts; the hosted demo takes synthetic customers only (list entries are real public data)","hardware":"1× RTX PRO 6000 (96 GB) or 1× RTX 5090 (32 GB) for Qwen3.8-27B; the comparison, the proposal and the record run on CPU","final_artifact":"A signed, hash-chained disposition record (list version, fields compared, proposal, rationale, analyst, time), a Markdown memo, and a signed audit sample on request.","self_host_first":true,"verification":{"receipt_coverage":"full","summary":"Receipt per model call, embedded in a signed, hash-chained record with the list snapshot's hash; every rationale sentence checked against its fields","manual_qa":{"hosted":{"date":"2026-09-26","result":"pass","p50_ms":8380,"p95_ms":null,"runs":null,"receipts_per_run":2,"cost_per_run_usd":0.0006},"selfhost":{"date":"2026-09-26","result":"pass","method":"fresh clone, compose up, sample against local model servers","notes":"A fresh clone of a decosa-api pre-release build (not yet merged to main), the api image built from docker/api/Dockerfile with DECOSA_SANCTIONS_SYNTHETIC_ONLY=0, run against the already-running local Qwen3.8-27B vLLM on the direct route. The dob-mismatch review took 0.86 s (false_positive by R-DISQ, both receipts attested, 3 grounded sentences); the record verified and an edited one failed; an override without a reason and a risky clear without a second reviewer both got 422. The documented list refresh ran in the container in 41 s. Model-server startup itself not re-verified."},"known_limits":["Synthetic customers only on the hosted demo, and every number here comes from our own generator on real list entries; not yet run on a real alert queue.","A true match whose customer data is wrong (a mistyped date of birth or ID) can be proposed as a false positive; the analyst checks the source document.","Names in scripts other than Latin and Cyrillic are not compared, so those alerts are held.","It reviews one alert against one list entry. It does not screen, and it does not cover ownership (the 50 Percent Rule), licences or list changes after the snapshot.","Records are not stored: you keep them for 10 years."],"nightly_covers":null},"nightly":"https://api.decosa.ai/verify/status"},"eval_summary":{"metrics":[{"name":"Same-party pairs proposed as false positive (the risky direction)","value":"0 of 1,094","unit":null,"n":1094,"split":"test","note":"Synthetic customers built from real list entries; dev 0 of 1,102."},{"name":"False-positive clearance precision","value":"635 / 635 (100%)","unit":null,"n":635,"split":"test","note":"Share of false-positive proposals that were different parties."},{"name":"Same-party pairs proposed as true match","value":"863 (78.9%)","unit":null,"n":1094,"split":"test","note":"The other 231 were held as needs more information (name only, day/month swapped, renewed passport)."},{"name":"Per-field status accuracy (labelled fields)","value":"99.77% of 2,199","unit":null,"n":2199,"split":"test","note":null},{"name":"Model reading agrees with the code proposal","value":"71 of 81 (88%)","unit":null,"n":81,"split":"test","note":"6 reviews that first lost both calls to a gateway outage were re-run after the fix; the outage is not counted."},{"name":"Rationale sentences passing the code check","value":"278 of 278 (100%)","unit":null,"n":278,"split":"test","note":"Manual read of 30: 0 invented facts."},{"name":"Planted rationale errors held by the checker","value":"2,776 of 2,776 (100%)","unit":null,"n":2776,"split":"test","note":"531 of 531 correct sentences passed after one fix made on seeing this set (516 before)."}],"dataset":"Synthetic customers against real OFAC, EU and UK list entries (snapshot of 26 Sep 2026), labelled by construction: 13 same-party and 11 different-party cases, split by list-entry uid into dev (1,990 pairs) and test (1,967 pairs); 81 test reviews through the hosted model (6 re-run after a gateway outage).","held_out":true,"caveats":["The customers, the variants and the rules were all written by the same agent: this shows the rules do what they say on list-derived data, not accuracy on a real alert queue.","A true match with wrong customer data (a mistyped date of birth or ID) is not in the set and would be proposed as a false positive.","The checker's planted errors are templates; the model made no error the checker caught, so its recall on real model errors is unknown.","Names in scripts other than Latin and Cyrillic are not compared.","The manual read had one reader, the building agent."],"date":"2026-09-26","doc_url":"https://decosa.ai/metrics/evals/sanctions-disposition-record"},"stack":{"summary":"For compliance analysts clearing sanctions name-screening alerts. Give it one alert: the screened party and the OFAC, EU or UK list entry it hit. Code compares every identifier: the name (transliteration and name order handled), date of birth, nationality, place of birth, ID numbers, IMO number, address and the kind of party. It then proposes true match, false positive or needs more information by a named rule that follows OFAC's FAQ 5. It only proposes a false positive on a strong disqualifier. Qwen3.8-27B gives an independent typed reading and writes a short rationale. Every sentence of the rationale is checked in code against the fields it cites; the model explains, it never decides. The analyst decides. An override needs a reason, and clearing against a matching identifier needs a second reviewer. The decision is sealed in a signed, hash-chained record that holds the list snapshot's hash, the fields compared, the rationale, the analyst and the time. It links to the previous record, for a 10-year log you keep. It also draws a reproducible, signed audit sample. It is not a screening engine and never a compliance determination.","tagline":"Clear a screening alert field by field, with a rule-based proposal, a rationale checked against the fields, and a signed record that pins the list version.","deployment":"self-host-first","regulatory_note":"Checked 26 Sep 2026 against primary sources (links under Tools). OFAC's recordkeeping rule, 31 CFR 501.601, now requires a full and accurate record of each transaction subject to OFAC's regulations, kept at least 10 years after the transaction; blocked-property records must be kept 10 years after unblocking. The change from 5 to 10 years came in an interim final rule (89 FR 74832, 13 Sep 2024, effective 12 Mar 2025), which a final rule adopted without change (90 FR 13286, published and effective 21 Mar 2025). It matches the 10-year statute of limitations for IEEPA and TWEA violations that took effect on 24 Apr 2024 (Pub. L. 118-50, as summarised in those rules). The rule text speaks of transactions and blocked property; it does not name screening alerts. Keeping an alert's disposition with the transaction record for the same 10 years is our conservative reading, not quoted text, so the record's retain_until is 10 years from the later of the decision and the transaction date. The proposal rules follow OFAC FAQ 5 (updated 9 Sep 2026). Step 3 there says to compare all the details on the list entry, that an address alone may not be enough, and that many potential matches are false positives. Step 4 says multiple matching identifiers suggest a valid match, and the organisation decides under its own procedures. Weak aliases follow OFAC FAQs 122-123. For the UK, the OFSI Consolidated List closed on 28 Jan 2026, and the UK Sanctions List (FCDO) is now the only source; the snapshot uses it. OFAC notes that EU data-retention limits can conflict with the 10-year rule (90 FR 13286); where they do, that is a question for your counsel. This is decision support, not legal advice and never a compliance determination: the analyst decides. The hosted demo takes synthetic customers only. Model licence: Apache-2.0 (Qwen3.8-27B). List data: US government works, EU list (Commission Decision 2011/833/EU reuse), UK list (Open Government Licence assumed, not stated in the file).","components":[{"id":"desk","role":"List snapshot, field comparison, proposal rules, rationale check, signed record, audit sample (no model; CPU)","name":"decosa-api sanctions desk (decosa_api/verticals/sanctions), with the typed-judgment core (vertical 24) and the session hash chain (record, vertical 07)","hf_repo":null,"license":"AGPL-3.0-or-later","params":null,"quant":null,"vram_gb":0,"memory_gb_estimate":null,"engine":"Python 3.12, standard library: OFAC, EU and UK XML parsers; Cyrillic transliteration and spelling folds; order-independent Jaro-Winkler; date-of-birth ranges and circa; Ed25519 via cryptography","receipt_coverage":"partial","in_hosted_demo":null,"tiers":["lite","standard"],"alternative_to":null},{"id":"model","role":"Independent typed reading and the rationale","name":"Qwen3.8-27B (NVFP4)","hf_repo":"nvidia/Qwen3.8-27B-NVFP4","license":"Apache-2.0","params":"27.8B","quant":"NVFP4 (MLP NVFP4, GDN/attention FP8) + FP8 KV cache; MTP head, 3 draft tokens","vram_gb":20,"memory_gb_estimate":null,"engine":"vLLM 0.29.0, temperature 0, thinking off, prefix caching","receipt_coverage":"strong","in_hosted_demo":true,"tiers":["standard"],"alternative_to":null},{"id":"translit","role":"Transliteration for Arabic, Persian, Chinese and Korean names (alternate)","name":"A licence-clean multilingual transliteration or name-matching model (not chosen)","hf_repo":null,"license":"unknown","params":null,"quant":null,"vram_gb":null,"memory_gb_estimate":null,"engine":null,"receipt_coverage":"none","in_hosted_demo":false,"tiers":["alternates"],"alternative_to":null}],"tiers":[{"id":"lite","label":"Lite · the comparison and the proposal, no GPU","summary":"POST /sanctions/analyze compares every field and proposes a disposition by rule, and /decide seals the analyst's decision; no model reading, no rationale.","components":["desk"],"hardware":"Any CPU (about 200 MB of RAM for the list snapshot)","quality_evidence":[{"metric":"Same-party pairs proposed as false positive (held-out test split)","value":"0 of 1,094","source":"docs/evals/sanctions-disposition-record.md, part A, 26 Sep 2026"},{"metric":"False-positive clearance precision (test)","value":"635 of 635 (100%)","source":"docs/evals/sanctions-disposition-record.md, part A"},{"metric":"Field status accuracy on labelled fields (test)","value":"99.77% of 2,199","source":"docs/evals/sanctions-disposition-record.md, part A"}],"latency_note":"measured: under a millisecond per alert in process","in_hosted_demo":true,"receipt_coverage":"none","receipt_note":"No model call, so no receipts; the record is signed by the instance key.","hosting":null},{"id":"standard","label":"Standard · one GPU for the model (hosted demo)","summary":"Adds Qwen3.8-27B's independent typed reading and a rationale whose every sentence is checked against the fields it cites. This is what the hosted demo runs, on synthetic customers only.","components":["desk","model"],"hardware":"1x RTX PRO 6000 96 GB (measured) or 1x RTX 5090 32 GB (estimate)","quality_evidence":[{"metric":"Typed reading agrees with the code proposal (81 test reviews)","value":"71 of 81 (88%); it never proposed clearing a same-party pair","source":"docs/evals/sanctions-disposition-record.md, part B"},{"metric":"Rationale sentences passing the code check","value":"278 of 278","source":"docs/evals/sanctions-disposition-record.md, part B"},{"metric":"Planted rationale errors held by the checker (wrong year, country, ID, polarity, citation)","value":"2,776 of 2,776; 531 of 531 correct sentences passed","source":"docs/evals/sanctions-disposition-record.md, part C"},{"metric":"Invented facts in a manual read of 30 sampled rationale sentences","value":"0","source":"docs/evals/sanctions-disposition-record.md, part B"}],"latency_note":"measured: seconds per review through the shared gateway; faster when it was quiet.","in_hosted_demo":true,"receipt_coverage":"strong","receipt_note":"Both model calls are separate gateway calls with gateway-signed receipts, embedded in the record.","hosting":null}],"alternates":[{"id":"translit","label":"Names in every script","components":["translit"],"hardware":"1x RTX PRO 6000 96 GB (estimate)","use":"Compare names written in Arabic, Persian, Chinese and Korean script directly, not only their Latin forms. The model is not chosen yet; it must be licence-clean.","status":"not built"}],"services":[{"name":"decosa-api","port":8445,"image":"${DECOSA_REGISTRY}/decosa-api:<tag>","purpose":"GET /sanctions/info, /samples, /lists, /entry, /search; POST /sanctions/analyze, /review (SSE or JSON), /decide, /verify, /audit-sample. The list snapshot ships inside the image. Keeps no customer data."},{"name":"vLLM (model)","port":8114,"image":"vllm/vllm-openai@sha256:c2914767605584b6d8f45686b82de173ecc99e781897aa3d0a66dacd72c51ae1","purpose":"Qwen3.8-27B NVFP4 behind our gateway (hosted) or called directly (self-host)."}],"tools":[{"name":"31 CFR 501.601 (eCFR, current text)","url":"https://www.ecfr.gov/current/title-31/section-501.601","license":"US regulation (public domain)","purpose":"The 10-year recordkeeping requirement for transactions and blocked property."},{"name":"OFAC interim final rule, 89 FR 74832 (13 Sep 2024, effective 12 Mar 2025)","url":"https://www.federalregister.gov/documents/2024/09/13/2024-20674/reporting-procedures-and-penalties","license":"US government work (public domain)","purpose":"Extended 501.601 recordkeeping from 5 to 10 years to match the IEEPA/TWEA statute of limitations."},{"name":"OFAC final rule, 90 FR 13286 (21 Mar 2025)","url":"https://www.federalregister.gov/documents/2025/03/21/2025-04864/reporting-procedures-and-penalties-regulations","license":"US government work (public domain)","purpose":"Adopted the interim rule without change; notes the tension with EU retention limits."},{"name":"OFAC FAQ 5: determining a valid match (updated 9 Sep 2026)","url":"https://ofac.treasury.gov/faqs/5","license":"US government work (public domain)","purpose":"The five steps behind the proposal rules and the fields compared."},{"name":"OFAC FAQs 122-123: weak aliases","url":"https://ofac.treasury.gov/faqs/topic/1646","license":"US government work (public domain)","purpose":"Weak AKAs confirm other identifiers; a name match on one is marked."},{"name":"OFAC Sanctions List Service: SDN.XML and CONSOLIDATED.XML","url":"https://sanctionslistservice.ofac.treas.gov/api/PublicationPreview/exports/SDN.XML","license":"US government work (public domain)","purpose":"The OFAC lists in the snapshot (SDN published 23 Sep 2026: 19,391 entries; Consolidated 14 Sep 2026: 481)."},{"name":"EU Consolidated Financial Sanctions List (XML 1.1)","url":"https://webgate.ec.europa.eu/fsd/fsf/public/files/xmlFullSanctionsList_1_1/content?token=dG9rZW4tMjAxNw","license":"European Commission; reuse with acknowledgement (Commission Decision 2011/833/EU)","purpose":"The EU list in the snapshot (generated 22 Sep 2026: 6,241 entries)."},{"name":"UK Sanctions List (FCDO)","url":"https://sanctionslist.fcdo.gov.uk/docs/UK-Sanctions-List.xml","license":"Crown copyright; Open Government Licence v3.0 assumed (not stated in the file)","purpose":"The UK list in the snapshot (generated 21 Sep 2026: 6,339 entries). The OFSI Consolidated List closed 28 Jan 2026."},{"name":"scripts/eval_sanctions.py and docs/evals/sanctions-disposition-record.md","url":null,"license":"Apache-2.0","purpose":"The synthetic pair generator, the code, model and checker evals, and every result file."},{"name":"POST /sanctions/verify and POST /sanctions/audit-sample","url":null,"license":"Apache-2.0","purpose":"Verify a record, a chain of records or a sample manifest; draw a reproducible signed sample for QA or an examiner."}],"hardware":[{"tier":"1x RTX PRO 6000 Blackwell 96 GB","fits":true,"notes":"Measured on our server: the hosted demo and the eval ran on this card through the shared gateway."},{"tier":"1x RTX 5090 32 GB","fits":true,"notes":"Estimate: Qwen3.8-27B NVFP4 needs about 20 GB of weights plus KV cache; not run for this tool."},{"tier":"CPU only","fits":true,"notes":"The lite tier (POST /sanctions/analyze: the comparison and the proposal) and the record need no GPU. The loaded snapshot takes about 200 MB of RAM."}],"latency":[{"lane":"review: code analysis plus both model calls in parallel, hosted gateway route","typical_ms":8380,"source":"measured on our server 2026-09-26: median of 81 eval reviews (p90 12.9 s, max 15.4 s) with the gateway shared with other workloads; 2.6 s on a quiet gateway"},{"lane":"code analysis only (POST /sanctions/analyze)","typical_ms":null,"source":"measured on our server 2026-09-26: 0.4 ms per pair over 1,967 test pairs, in process (under 1 ms)"},{"lane":"seal the decision (POST /sanctions/decide)","typical_ms":null,"source":"no model call; milliseconds on CPU (not separately timed)"}],"benchmark":null,"notes":["The risky direction is clearing a true match. On 1,094 held-out same-party pairs (synthetic customers built from real list entries, with transliteration variants, held-out aliases, Cyrillic names, typos, renewed passports and partial data), the code proposed a false positive 0 times. All 635 of its false-positive proposals were different parties.","It proposed a true match on 79% of same-party pairs. The rest were held as needs more information because the data could not confirm them: name only, a day/month swap, a renewed passport. Of different parties, it cleared 73% and held the rest.","A true match whose customer record carries a wrong date of birth or ID would be proposed as a false positive: the tool cannot tell a typo from a different person, except for a swapped day and month or a one-year slip. Check the source document.","The model's independent reading agreed with the code on 71 of 81 reviews and never proposed clearing a same-party pair. All 278 rationale sentences passed the code check. A manual read of 30 found no invented facts.","Names in Arabic, Persian, Chinese, Korean and other scripts besides Latin and Cyrillic are not transliterated: such a name is 'not compared' and the alert is held.","Everything here is measured on synthetic customers written by the agent that built the rules; it has not been run on a real alert queue."]},"buyer_facts":[{"label":"Data retention","value":"Nothing stored: the alert lives in memory for the request, and the review and the record go back to you. Logs carry the list, rule and decision, never names, dates of birth or numbers. You keep the records (10 years under 31 CFR 501.601)."},{"label":"What leaves the box","value":"Hosted: the two model calls go through our gateway to the GPU serving Qwen3.8-27B, and only synthetic customers are accepted. Self-hosted on the direct route: nothing leaves the box. Refreshing the lists downloads the public list files; no customer data is sent."},{"label":"What it will not do","value":"Decide, screen your customer base, or say 'compliant'. It proposes; the analyst decides and the record says who."},{"label":"Lists","value":"OFAC SDN and Consolidated, EU consolidated, UK Sanctions List: 32,452 entries in the 26 Sep 2026 snapshot, each source file's sha256 and publish date recorded. Rebuild the snapshot any day with one command."},{"label":"Typical run","value":"Two model calls, a fraction of a cent at the gateway list price; the analysis and the record are free."}],"data_handling":{"page":"/data#sanctions-disposition-record","self_host":{"level":"confidential","leaves":"nothing","summary":"Runs on your machine; nothing is sent to Decosa or a third party by default."},"hosted":{"level":"operator-processed","demo_only":true,"summary":"Hosted demo on sample or public data only; self-host for real data.","gpus":"operator-contracted","third_parties":[],"retention":"Nothing stored: the alert lives in memory for the request, and the review and the record go back to you. Logs carry the list, rule and decision, never names, dates of birth or numbers. You keep the records (10 years under 31 CFR 501.601).","used_for_training":false,"encrypted_while_processed":false},"sealed_tier":{"applies":false,"note":"The sealed tier (raw chat only, never use-case pipelines) is paused at launch (/docs/sealed-tier)."},"external_calls":[]},"console":{"href":"/tools/finance/sanctions-disposition-record","input":"sanctions","lanes":[{"id":"fields","title":"Fields compared (code)","kind":"list"},{"id":"proposal","title":"Proposed disposition and rule","kind":"json"},{"id":"model","title":"Model's reading and checked rationale","kind":"list"},{"id":"record","title":"Analyst's decision and signed record","kind":"json"}],"samples":[{"n":1,"id":"translit-true-match","title":"Translit true match","deep_link":"/tools/finance/sanctions-disposition-record?sample=1&autorun=0"},{"n":2,"id":"common-name-false-positive","title":"Common name false positive","deep_link":"/tools/finance/sanctions-disposition-record?sample=2&autorun=0"},{"n":3,"id":"dob-mismatch","title":"Dob mismatch","deep_link":"/tools/finance/sanctions-disposition-record?sample=3&autorun=0"},{"n":4,"id":"alias-true-match","title":"Alias true match","deep_link":"/tools/finance/sanctions-disposition-record?sample=4&autorun=0"},{"n":5,"id":"name-only","title":"Name only","deep_link":"/tools/finance/sanctions-disposition-record?sample=5&autorun=0"},{"n":6,"id":"company-vs-vessel","title":"Company vs vessel","deep_link":"/tools/finance/sanctions-disposition-record?sample=6&autorun=0"},{"n":7,"id":"vessel-imo","title":"Vessel imo","deep_link":"/tools/finance/sanctions-disposition-record?sample=7&autorun=0"},{"n":8,"id":"cyrillic-true-match","title":"Cyrillic true match","deep_link":"/tools/finance/sanctions-disposition-record?sample=8&autorun=0"}],"deep_link_params":{"sample":"1-based index into samples, or a sample id","autorun":"1 = start the run once the sample is loaded; 0 (default) = only preselect","reduce-motion":"1 = turn off animations"}},"api":{"base":"https://api.decosa.ai","contract":"/api/contract.json","contract_markdown":"/api/contract.md","reference":"/docs/api","keys":"/account/keys"},"prompts":{"hosted":"/prompts/sanctions-disposition-record-hosted.md","selfhost":"/prompts/sanctions-disposition-record-selfhost.md","assemble":"/prompts/sanctions-disposition-record-assemble.md","mac":null},"rehearsal":{"bundle":"/samples/sanctions-disposition-record.zip","bundle_url":"https://decosa.ai/samples/sanctions-disposition-record.zip","folder":"/samples/sanctions-disposition-record/","expected":"/samples/sanctions-disposition-record/expected.json","files":["/samples/sanctions-disposition-record/expected.json","/samples/sanctions-disposition-record/inputs/alert.json","/samples/sanctions-disposition-record/inputs/customer.json"],"bytes":2133,"checks":["the code proposes a false positive","by the disqualifier rule","the date of birth is the disqualifier","the nationality agrees","at least one rationale sentence is grounded in the fields it cites","the review is signed","deciding against the proposal without a reason is refused","the disposition record verifies","the record keeps the analyst's decision","the record is kept for 10 years","a record with its decision changed no longer verifies","the audit sample takes the record and is signed","every model call has a signed receipt"],"licence":"The customer is fictional (made up for this bundle). The list entry is public OFAC SDN data (US government work, public domain). Part of decosa-api, AGPL-3.0-or-later.","about":"A fictional customer, Ali Zeaiter (born 2 Nov 1977, Lebanese), hits the real OFAC SDN entry ofac-sdn:17037 (Ali ZEAITER, born 24 Feb 1977, Lebanon). The code compares every field and proposes a false positive by rule R-DISQ: same year, different date of birth, and nothing else that identifies the person agrees. The model gives an independent reading and a rationale whose sentences are checked against the fields they cite. The analyst clears the alert; the decision is sealed in a signed, hash-chained record that verifies, and an edited record does not. A decision against the proposal without a reason is refused. Needs the list snapshot of 26 Sep 2026 (or any snapshot that still has ofac-sdn:17037).","run":{"containers":"docker compose exec api python scripts/rehearse.py sanctions-disposition-record","checkout":"python scripts/rehearse.py sanctions-disposition-record --bundle sanctions-disposition-record.zip --base-url http://127.0.0.1:8445","mac":".venv/bin/python scripts/rehearse.py sanctions-disposition-record"},"guidance":"Set up with a coding agent (we recommend Claude Code with Claude Opus 5.5; any capable coding agent works) on mock data only, run the rehearsal until every check passes, then run your own data locally yourself. Never give the agent real data during setup."},"hardware_fit":{"check":"/self-host/hardware?use=sanctions-disposition-record","data":"/api/hardware.json","tiers":[{"id":"lite","gpu_gb":0,"basis":null,"unknown":[]},{"id":"standard","gpu_gb":57.6,"basis":"stack","unknown":[]},{"id":"alternate-translit","gpu_gb":0,"basis":null,"unknown":["translit"]}],"mac":null},"links":{"page":"/tools/finance/sanctions-disposition-record","json":"/use-cases/sanctions-disposition-record.json","metrics":"/metrics/sanctions-disposition-record","console":"/tools/finance/sanctions-disposition-record","console_sample":"/tools/finance/sanctions-disposition-record?sample=1&autorun=0","stack":"/tools/finance/sanctions-disposition-record#stack","try_live":"/tools/finance/sanctions-disposition-record","watch":"/tools/finance/sanctions-disposition-record","build":"/tools/finance/sanctions-disposition-record#build","self_host":"/tools/finance/sanctions-disposition-record#self-host","prompts":{"hosted":"/prompts/sanctions-disposition-record-hosted.md","selfhost":"/prompts/sanctions-disposition-record-selfhost.md","assemble":"/prompts/sanctions-disposition-record-assemble.md","mac":null}}}