SystemSanctions Screening

Sanctions Alert Review

Sanctions alert review that puts the member and the list entry face to face, every identifier cited, and leaves every decision to a person

Every hit cleared identifier by identifier; true matches with the officer within the hour.

See one case, screen by screen ↓
demo54minfrom OFAC publishing its October 21 update to 538,200 member and party records re-screened: 268 hits
demo2 of 5identifiersconflict on the sample hit, each value cited: not the listed person, at 0.97 confidence
demo22minmedian for a potential match to reach the OFAC Officer in October; 41 of 41 within the hour
demo10%or more of every analyst's closures re-reviewed blind; 25% for a new analyst and every override
In short

What is Sanctions Alert Review?

Sanctions alert review is the work of clearing the hits that OFAC name screening raises on members, applicants and payments: proving that each false hit is not the listed person and escalating the ones that might be. Sanctions Alert Review puts the member and the list entry face to face, one identifier per row, each value cited, and seven agents compare, guard list versions and draft. An analyst closes or escalates, a QA reviewer re-checks a sample blind, and the OFAC Officer decides every potential match.

AI use cases in banking: a buyer's guide to agentic AI for bank and credit union operations →

Updated

The problem

Why sanctions alert review is mostly look-ups and free-text reasons

Sanctions alert review is the work of clearing the hits that OFAC screening raises on members, applicants and payments. Fuzzy matching makes hits, and most of them are false, but each one must be proven false: an analyst opens the member in the core banking system, the application in digital account opening or the wire in the payments hub, opens the list entry on another screen, compares name, date of birth, nationality, address and ID by eye, and types a reason such as “not a match” into case management. A potential match goes to the OFAC Officer by email.

The failures are well known. A hit is closed as a duplicate of an earlier closure after the list entry has changed. A potential match waits in a queue. A rationale cannot be reproduced. QA samples closures on a spreadsheet days later and sees the analyst's answer first. A list update is applied days late. And after a block or a rejection, the report to OFAC is due within 10 business days. OFAC liability is strict: a violation needs no intent.

typical90–95%of sanctions screening hits are false positives, as commonly reported
typical265$M+in OFAC civil penalties in 2025, against about $49 million in 2024
typical8daysa potential match waited in a queue in a 2025 UK enforcement case that also found hits closed in error as duplicates
Where an analyst's minutes go on one OFAC hitestimated
By hand3 minutes
With the solution0.8 minutes
  • Opening the member in the core and the application or wire0.8 → 0.1 min
  • Finding the list entry and the version that raised the hit0.5 → 0.1 min
  • Comparing the identifiers by eye0.8 → 0.3 min
  • Checking earlier closures for the same member and entry0.3 → 0.1 min
  • Typing the reason into case management0.6 → 0.2 min

Estimated split of the about 3 minutes an analyst spends on one hit today (about 160 hits each in an 8-hour day), by hand and with the solution; under 1 minute is the design target.

How it works

How one hit moves

Seven agents compare every identifier, guard list versions and draft the reports; an analyst closes, a reviewer re-checks blind, two officers block.

What comes in
What arrives3 sources · onboarding, payments and list re-screens
Agents at work
Intake agentrecord and clock attached
Then
Duplicate guardsame entry version?
List watch agentsame-day re-screen
Then
Comparison agentidentifier by identifier
Then
QA samplerblind re-review
Escalation agentofficer packet · report clock
A person decides
Analyst closes, officer decides matchesreason codes · a second officer approves every block
What comes out
Cited closure
OFAC report draft
Examiner pack
One case, step by step

One sanctions alert review, from an OFAC update to a cited closure

Norrell Federal Credit Union, Thursday, October 22, 2026. The evening before, OFAC added an entry for CASTILLO, Maria Elena, and a member since 2014 has that name. The same morning, a held wire matches another entry on every identifier. Here is what happens, screen by screen, in the working solution.

  1. 01Oct 21, 5:41 PM

    OFAC's update, re-screened the same evening

    List watch agent

    OFAC published 22 changed entries at 4:47 PM on Wednesday, October 21: 14 additions, 6 amendments and 2 removals. The List watch agent loaded the update at 5:02 PM, kept every entry's version, and re-screened 538,200 member and party records against the changed entries by 5:41 PM: 268 hits, each saying which change caused it. The new entry CASTILLO, Maria Elena caused 3 of them.

    This month, 9 of 9 OFAC list updates were loaded the day they were published.

  2. 02Thursday morning

    The day along the clock, and one next hit

    Jordan Ellery · Sanctions analyst

    Jordan's Today screen shows 412 hits in today's work on a 24-hour clock, in three lanes: list re-screen 268, payments 83 and onboarding 61. 297 are closed and 115 open. The agents' brief cites the October 21 update, the duplicate guard's 54 linked and 7 reopened hits, and a 5 of 5 match on a held $48,250.00 wire. One next hit waits: Maria Elena Castillo.

  3. 0310:38 AM

    The member and the list entry, face to face

    Comparison agent

    Member Maria Elena Castillo faces SDN entry 59341, version 1, CASTILLO, Maria Elena, one identifier per row. The name matches at a score of 96. The date of birth does not: June 14, 1988 against March 7, 1961. Nationality and place of birth do not: United States, born Portland, Maine, against Mexico, born Culiacán, Sinaloa. The entry gives no address and no ID number, so those rows are marked missing.

    “2 of 5 identifiers conflict; not the listed person.” Confidence 0.97 · FP-DOB · FP-NAT

  4. 04One click

    Every value opens its source

    Jordan Ellery · Sanctions analyst

    A citation sits beside every value. The member's side opens the core banking record or the account-opening file; the list side opens the entry itself: OFAC SDN List, entry 59341, version 1, added October 21, 2026, with the alias CASTILLO RUIZ, Maria Elena, the date and place of birth, nationality Mexico and the program [ILLICIT-DRUGS-EO14059]. It shows that the entry lists no address or ID number and that it was loaded at 5:02 PM, and the view is logged.

  5. 05Run again

    OFAC's six evaluation steps, in order

    The agents

    Run again replays the agents' work on the hit: intake, the duplicate guard, OFAC's six steps for a potential match, and the QA sampler, each with what it found. Step 3 compares the full entry: 1 match, 2 no match, 2 missing. Step 4 asks whether it is a likely match and answers no, with two disqualifying conflicts. Step 6 records the rationale, kept 10 years. The duplicate guard found no earlier hit against the new entry.

    The Comparison agent never proposes a close on a name alone: two identifiers must conflict.

  6. 0610:41 AM

    The analyst closes it, with reason codes

    Jordan Ellery · Sanctions analyst

    Jordan agrees and closes SH-261022-0418 as a false positive. The agent's codes FP-DOB and FP-NAT are preselected and the rationale is drafted for the analyst to edit; changing the codes would require an override reason, OV-1 to OV-3, and put the closure in the QA sample. At the moment of closure the QA sampler draws it for today's sample, with a random draw of 0.041 under 0.10.

    The closure is kept 10 years with the ledger and the list version it was decided on.

  7. 0710:44 AM

    Re-reviewed blind, then compared

    Grant Okafor · Sanctions QA reviewer

    Grant sees the same ledger without the identifier marks, the agent's verdict or Jordan's decision, and answers first: not the listed person. Only then does the comparison appear, with his answer, Jordan's closure and the agent's verdict side by side, and he records QA-A, agree. The hit is one of 39 closures in today's sample: 31 drawn at random and 8 by rule.

    Nobody re-reviews their own closure.

  8. 08The same morning

    A changed list entry reopens an old closure

    Duplicate guard

    Keisha Monroe closed Samir Haddad's hit against entry 48807 on September 3, because version 2 of the entry had no date of birth. The October 21 amendment, version 3, adds 1984 and a place of birth, Beirut, and Samir was born on March 3, 1984 in Beirut. The guard does not link the new hit to the old closure: it reopens it, the comparison now finds 3 of 5 identifiers matching, and the hit goes to the OFAC Officer.

    Today 61 hits had an earlier closure: 54 linked on an identical entry version, 7 reopened because the entry changed.

  9. 0910:04 AM

    A 5 of 5 potential match on a held wire

    Renée Lindqvist · BSA/OFAC Officer

    At 9:58 AM a held outgoing wire of $48,250.00 from member business Harborline Marine Repair LLC to Kestrel Bay Trading FZE in the Jebel Ali Free Zone hit an entry under the [NPWMD] program. All 5 identifiers match: name, registration number JAFZ-118204, country, address and entity type. Keisha Monroe escalated it at 10:03 AM, and it was on Renée's desk at 10:04 AM with the ledger, the wire and the clock, beside Samir Haddad and Elena V. Morozova.

    October to date: 41 potential matches escalated, all within the hour, median 22 minutes.

  10. 1010:48 AM · signed

    Blocked on two signatures, with the report clock running

    Curtis Vang · Deputy BSA Officer

    Renée decides true match, block, at 10:46 AM. Nothing moves until Curtis Vang approves at 10:48 AM: then $48,250.00 goes to blocked account 9900-0417 and the drafted blocked-transaction report goes to OFAC reporting, due Thursday, November 5, 2026, 10 business days under 31 CFR 501.603. A confidential referral goes to the BSA team in case management.

    What Harborline sees in online banking: “Could not be sent”. Never a list, a match or a referral.

Who it’s for

Built for everyone who clears, checks and decides a sanctions hit.

The same hits, seen by the four people who carry them: what their day looked like, and what it looks like now.

JE
Jordan EllerySanctions analyst · the maker
Sanctions analyst
Before
Clears about 160 hits a day by hand: the member in the core, the list entry in another tab, a comparison by eye and a typed reason.
Now
Opens each hit with the member and the list entry face to face, every value cited, and closes it with the agent's codes or overrides them with a reason.
GO
Grant OkaforSanctions QA reviewer · the checker
Sanctions QA reviewer
Before
Re-reviews a sample of yesterday's closures on a spreadsheet, a day late, with the analyst's answer in front of him.
Now
Gets closures drawn at the moment they are made, answers on the ledger before he sees anyone's decision, then agrees or reopens with a QA code.
RL
Renée LindqvistBSA/OFAC Officer · decides every potential match
BSA/OFAC Officer
Before
Hears about a potential match by email and has to gather the entry, the payment and the member herself.
Now
Has every potential match on one desk within the hour, with the ledger, the held payment and the minutes it has waited, and decides with a reason code.
CV
Curtis VangDeputy BSA Officer · the second signature
Deputy BSA Officer
Before
Signs blocks and OFAC reports from a forwarded email chain.
Now
Approves or returns each block with the decision, the blocked account and the drafted report in front of him; the officer who decided cannot approve.
Built on the engine

7 agents. Each with one job, and hard limits.

Seven agents compare every identifier, guard list versions and draft the reports; an analyst closes, a reviewer re-checks blind, two officers block.

Intake agent

Takes each hit from the OFAC screening service (onboarding, payments and list re-screens), attaches the member record and the source item, sets the SLA clock and routes it by load.

  • Never releases a held payment or account
  • Never closes a hit
Comparison agent

Builds the face-to-face ledger, cites every value to the member record or the list entry and its version, runs OFAC's six evaluation steps and writes a one-sentence verdict with its confidence and reason codes.

  • Never proposes a close on a name alone or with fewer than two conflicting identifiers
  • Escalates whenever three or more identifiers match
  • Never closes; the analyst decides
Duplicate guard

Compares each hit with earlier closures for the same member and entry, links it only when the entry version is identical, and reopens and explains a hit whose entry has changed.

  • Never links a hit across list entry versions
  • Never closes a linked duplicate itself; an analyst confirms
List watch agent

Loads each OFAC update the day it is published, records every entry's version, re-screens against the changed entries and tells the analyst which change caused each hit.

  • Never edits a list entry
  • Never suppresses a hit
QA sampler

Draws the QA sample at each closure (10% at random, 25% for a new analyst, every override and every closure below 0.95 confidence) and prepares the blind view for the reviewer.

  • Never assigns a closure to the person who made it
Escalation agent

Assembles the OFAC Officer's packet (ledger, payment, member and history), drafts the block or rejection record and the report to OFAC, sets the 10-business-day clock and drafts the referral to the BSA team.

  • Never blocks, rejects, releases or files
  • Nothing it drafts reaches a member-facing view
Tuning agent

Reads every closure reason, finds the settings behind false hits, tests a proposed change on seeded names and writes the expected effect for the OFAC Officer and the Deputy BSA Officer.

  • Never changes a setting; two officers approve and the administrator applies
BSA/OFAC Officer

Decides every potential match; a deputy approves each block. The agents propose; a named person decides.

Ask in plain words

Ask about any hit, list change or number

Ask in plain words. The answers cite the member record, the list entry or the rule they come from, and open the screen that goes with them.

Why is Maria Elena Castillo not the listed person?

Two of five identifiers conflict. She was born June 14, 1988 in Portland, Maine; the person on SDN entry 59341, added October 21, was born March 7, 1961 in Culiacán, Mexico, with Mexican nationality. The entry lists no address or ID, so only the name matches. OFAC asks how much of the full entry matches: here, only the name. The close is yours to make.

What changed in yesterday's OFAC update?

OFAC published 22 changed entries at 4:47 PM on October 21: 14 added, 6 amended, 2 removed. It was loaded at 5:02 PM and 538,200 records were re-screened by 5:41 PM: 268 hits, 189 from additions and 79 from amendments. The amendment to entry 48807 added a date of birth and a place of birth.

Why did the duplicate guard reopen Samir Haddad?

Keisha Monroe closed his hit on September 3 because entry 48807, version 2, had no date of birth. Version 3, published October 21, adds 1984 and a place of birth, Beirut, both matching him. A closure is reused only on an identical entry version, so the guard reopened the hit; 3 of 5 identifiers now match and it is with the OFAC Officer.

Prepare the NCUA examiner pack for October

The pack holds October 1–22: 10,214 hits with their ledgers and citations, the 41 escalations, the 2 true matches with their OFAC reports, 1,092 QA results with the blind answers, and the list versions used. Tax IDs are masked to the last 4, and records are kept 10 years. Choose the audience and build it.

Every screen

The working solution, as it ships.

13 screens from the working solution, on its sample data. Pick one to see it large.

The member and the list entry, face to faceSanctions alert review on one OFAC hit: member Maria Elena Castillo faces SDN entry 59341, CASTILLO, Maria Elena, one identifier per row, each value cited, and the verdict “2 of 5 identifiers conflict; not the listed person” at 0.97 confidence.
Every value opens its sourceA citation on the ledger opens the list entry itself: OFAC SDN List, entry 59341, version 1, added October 21, 2026, with the matching fields marked and no address or ID number listed.
OFAC's six evaluation stepsThe agents' steps on the hit in order: intake, the duplicate guard, OFAC's six steps for a potential match and the QA sampler, each with what it found.
Today's hits along the clockSanctions screening alerts for the day: 412 hits in three lanes (list re-screen 268, payments 83, onboarding 61), 297 closed and 115 open, the one next hit and the agents' cited brief.
OFAC's update, re-screened the same evening22 changed entries published at 4:47 PM on October 21, loaded at 5:02 PM, and 538,200 member and party records re-screened by 5:41 PM: 268 hits, each change listed with the hits it caused.
The queue, with clocks and bulk acceptance115 open hits by state, each with its source, list entry, the agent's verdict, analyst and SLA clock; 12 proposals selected for bulk acceptance at 0.95 confidence or more with two conflicts.
Closing an OFAC false positiveThe analyst closes the hit with the agent's codes FP-DOB and FP-NAT preselected and an editable rationale; changing the codes requires an override reason, OV-1 to OV-3.
Blind QA re-reviewThe QA reviewer sees the ledger without the identifier marks, the agent's verdict or the analyst's decision, and answers first: not the listed person, possible match or can't tell.
Compared, then agreedAfter the blind answer, the reviewer's answer, the analyst's closure and the agent's verdict side by side, recorded as QA-A with the reviewer's name.
The duplicate guard reopens a changed entry7 hits reopened because their list entry changed and 54 linked on an identical version: Samir Haddad's entry 48807 moved from version 2 to 3 with a date and place of birth that match him.
The OFAC Officer's deskOFAC potential matches waiting for a decision: Kestrel Bay Trading FZE matches 5 of 5 identifiers on a held $48,250.00 wire, with the minutes each match has been on the desk.
A block needs two officersThe officer decided “true match: block” and the Deputy BSA Officer approved; the funds moved to a blocked account and the OFAC blocked transaction report, due November 5, 2026, went to OFAC reporting.
The audit trail and the examiner's packEvery action by people and agents with who, what, when, why, the evidence and the list version, and an export pack for the NCUA examiner, a state examiner, internal audit or the BSA Officer.
Governance

Sanctions alert review that is cited, checked blind and signed twice.

The analyst closes, a reviewer re-checks blindThe analyst is the maker on every closure. The QA sampler draws 10% of each analyst's closures, 25% in an analyst's first 90 days, every override and every closure below 0.95 confidence, and the reviewer answers before seeing the analyst's decision. Nobody re-reviews their own closure.
Two officers on every block or rejectionThe BSA/OFAC Officer decides every potential match with a reason code. A block or a rejection, and its report to OFAC, need the Deputy BSA Officer's approval before funds move, and the officer who decided cannot approve it.
Every value cited, on the list version it came fromEach identifier on the ledger cites the member record or the account-opening file on one side, and the list, entry number, version and date on the other. Every closure keeps the ledger and the list version it was decided on.
No tipping offA screening hit, a potential match, an OFAC decision or a referral to the BSA team never appears on a member-facing view, a statement or a branch screen. A held wire reads “Could not be sent”; an application reads “Routine review”.
Agents propose, people decideAgents read, compare, draft and propose; they never close, block, reject, release, file or change a setting. Prompts and models are versioned, a close is proposed only at 0.92 confidence and bulk acceptance at 0.95, and every override carries a reason code, OV-1 to OV-3, and is sampled for QA.
Ten years on the record, with an examiner packEvery agent step and human action is logged with who, what, when, why, the evidence and the list version, and kept 10 years. One export builds the pack for the NCUA examiner, a state examiner, internal audit or the BSA Officer, with a redaction profile, a record count and a checksum.
Configuration

Your sanctions program's rules, as versioned settings

The Compliance Systems Administrator edits the settings and every save is a new version. Thresholds and QA rates wait for the BSA/OFAC Officer, and a tuning change needs the officer and the deputy before it is applied.

SettingDefaultChoose from
The agent proposes a close only whenTwo or more identifiers conflict and confidence is 0.92 or moreYour conflict count and confidence; a change waits for the BSA/OFAC Officer
The agent escalates wheneverThree or more identifiers matchYour match count; a change waits for the BSA/OFAC Officer
Bulk acceptance qualifies atConfidence 0.95 or more with two conflictsYour confidence floor; every bulk closure still enters QA sampling
A duplicate is linked only onAn identical entry version and identical member identifiersA change waits for the BSA/OFAC Officer
QA sample10% of each analyst's closures a day; 25% in the first 90 days; every override; every closure below 0.95Your rates; the review is always blind and never by the closer
Screening service fuzzy threshold8588 for single-token names proposed, tested on 2,400 seeded names; applied after the officer and deputy approve
SLAsPayment hits 30 minutes; onboarding 1 business day; list re-screen 2 business days; a potential match to the officer within 1 hourYour clocks; warn the analyst at 80% of an SLA and the officer at 100%
Records keptSanctions records 10 years (31 CFR 501.601); BSA records 5 years; the longer appliesRedaction profiles for the NCUA and state examiners, internal audit and the BSA Officer
Connections

Works with the systems a sanctions program already runs on

OFAC screening servicename-screening hits from onboarding, payments and list re-screens, and a test mode for tuning
OFAC Sanctions List Servicethe SDN and non-SDN lists, loaded the day an update is published, every entry's version kept
Core banking systemthe member record each identifier is cited to
Digital account opening platformapplications held for the sanctions review, and their release
Payments hubheld wires and international ACH, and the block or rejection after two approvals
Case management and OFAC reportingreferrals to the BSA team, and blocked and rejected transaction reports with their clock
What it changes

The difference, in numbers.

Every figure is labelled: a target the solution is built to, an estimate, a typical published result, or a proven one.

target
1hour
or less for every potential match to reach the OFAC Officer, with the ledger and the clock
target
0hits
closed as duplicates against a changed list entry
target
100%
of closures with cited identifiers and a reason; 10% or more re-reviewed blind
Every closure
with its ledger

“demo” = seen in the working solution, on its sample data · “target” = the design goal, measured in the live solution · “estimated” = our estimate of where an analyst's minutes go on one hit · “typical” = published figures: OFAC civil penalties in 2025 and 2024 (a published law-firm review), the 8 days in OFSI's September 8, 2025 disclosure, and vendor and trade sources for the commonly reported 90–95% false-positive range, directional only. Rules: 31 CFR 501.603 and 501.604 (reports within 10 business days), 31 CFR 501.601 (10-year records, effective March 21, 2025), 31 CFR 1010.430 (BSA records), OFAC FAQ 5 and A Framework for OFAC Compliance Commitments (May 2, 2019). Norrell Federal Credit Union, its members, the businesses, the list entries and the people named on this page are fictional: characters and sample data in the working solution.

Questions

What sanctions teams ask about sanctions alert review.

What is Sanctions Alert Review?

Sanctions alert review is the work of clearing the hits that OFAC name screening raises on members, applicants and payments: proving that each false hit is not the listed person and escalating the ones that might be. Sanctions Alert Review puts the member and the list entry face to face, one identifier per row, each value cited, and seven agents compare, guard list versions and draft. An analyst closes or escalates, a QA reviewer re-checks a sample blind, and the OFAC Officer decides every potential match.

What does an OFAC hit mean, and what happens to one?

An OFAC hit means the screening service found a name close enough to a list entry to need a person's review. Here the Intake agent attaches the member record and the source item and sets the clock, and the Comparison agent compares every identifier on the entry and writes a verdict with its confidence. The analyst then closes it with reason codes, escalates it to the OFAC Officer or asks for information.

How do you clear an OFAC false positive?

On the full list entry, not the name: the Comparison agent proposes a close only when two or more identifiers conflict and confidence is at least 0.92, and never on a name alone. The analyst closes it with the agent's reason codes, such as FP-DOB and FP-NAT, or changes them with an override reason. The closure keeps the ledger, the citations and the list version for 10 years.

What happens when an OFAC hit is a potential match?

The analyst escalates it and the Escalation agent puts it on the OFAC Officer's desk with the ledger, the held payment, the member and the clock; in the sample month, 41 of 41 arrived within the hour. The officer decides true match (block or reject) or not the listed person. A block or rejection moves nothing until the Deputy BSA Officer approves, and the drafted report to OFAC carries its 10-business-day due date.

How does it handle OFAC list updates and duplicate hits?

The List watch agent loads each OFAC update the day it is published, keeps every entry's version and re-screens against the changed entries, saying which change caused each hit. The Duplicate guard reuses an earlier closure only when the list entry version is identical; when the entry has changed, it reopens the hit and shows which earlier reason no longer holds.

Can it reduce sanctions screening false positives?

The Tuning agent reads every closure reason, finds the settings behind false hits and tests a proposed change before anyone approves it. In the sample, raising the threshold for single-token names from 85 to 88 is expected to remove about 70 hits a day, while 180 of 180 list-derived variants still hit. The change is applied only after the OFAC Officer and the Deputy BSA Officer approve it.

Do people stay in control of every decision?

Yes. Agents compare, cite, draft and propose; they never close, block, reject, release, file or change a setting. The analyst closes, a QA reviewer re-reviews a sample blind, the OFAC Officer decides potential matches, and the Deputy BSA Officer approves every block, rejection and OFAC report.

How long does it take to go live?

The Agentic Solution Engine builds and deploys it from your requirements and documents (your screening rules, reason codes, SLAs, QA rates and a sample of past hits), and it goes live once every quality gate has passed. We will walk you through it on your own hits first.

See it on
your screening hits.

We'll run Sanctions Alert Review on a sample of your own past hits and list updates.