OFAC Sanctions Screening: SDN and Consolidated Lists
Pricing
$4.00 / 1,000 name screeneds
OFAC Sanctions Screening: SDN and Consolidated Lists
Screen names against the live US Treasury OFAC sanctions lists, SDN plus the Consolidated non-SDN lists, with alias, transliteration and typo matching and the exact list edition on every row. Measured: 100 percent recall on known designations, zero false positives on 200 real businesses.
Pricing
$4.00 / 1,000 name screeneds
Rating
0.0
(0)
Developer
Pono Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Screen a name, or a batch of names, against the live United States Treasury OFAC sanctions lists. Every row states the verdict, any matched designations, and the exact list edition it was screened against.
This is a screening tool. A hit is a starting point for human review, not a compliance decision, and it is not legal advice. OFAC's own guidance is that apparent matches need verification.
Measured, not asserted
Against 240 real designations drawn from the live list, screened as OFAC spells them: 240 caught, 0 missed. Against 200 real registered US businesses: 0 flagged, everything came back clear.
Names are rarely typed the way a list spells them, so the harder question is what survives dirty data. Across 519 deliberately corrupted spellings of real designations, 93.4% were still caught:
| how the name was wrong | caught |
|---|---|
| a character doubled | 100.0% |
| a space dropped or added | 100.0% |
| name parts reordered | 96.6% |
| a character dropped | 96.2% |
| a middle name or patronymic missing | 93.3% |
| two characters transposed | 90.0% |
| a vowel changed | 78.8% |
A changed vowel is the weakest case, because it alters the letters a comparison leans on without shortening the name enough to look like a typo. Short names are the other soft spot: once a name is only a few characters, one wrong character leaves too little signal to match on, and this tool would rather return clear than guess.
Every number above is reproducible. tests/measure_accuracy.py runs the whole
measurement against the live lists with a fixed seed, and it fails loudly if its
own controls do not hold, so a run that quietly screened nothing cannot report a
perfect score.
What you get
One row per name screened:
| query | verdict | topScore | matchCount | lei | listsScreened | retrievedAt |
|---|---|---|---|---|---|---|
| AEROCARIBBEAN AIRLINES | strong | 1.0 | 1 | CONSOLIDATED,SDN | 2026-08-01T09:12:44Z | |
| Aero-Caribbean | strong | 1.0 | 1 | CONSOLIDATED,SDN | 2026-08-01T09:12:44Z | |
| Acme Widgets Incorporated | clear | 0.0 | 0 | CONSOLIDATED,SDN | 2026-08-01T09:12:44Z |
Each match carries the OFAC uid, whether it hit a primary name or an alias, the subject type, the sanctions programs, any listed countries, and the list and publish date it came from.
A matched company also gets its Legal Entity Identifier when the official GLEIF register holds a record under exactly that name. Be aware this is uncommon: measured on 60 random entity designations it filled in 2, because OFAC publishes long official forms that no register lists verbatim. The check is deliberately strict. GLEIF's own name filter returns near matches, so two unrelated Mexican companies both came back as the same third company, and the lookup now discards any answer whose returned name is not the name asked for. An empty LEI field means no record was confirmed, never that none exists.
How it decides
Names are folded before comparison: accents removed, case and punctuation
dropped, and for companies the corporate suffixes (LLC, GmbH, Pte, and the rest)
set aside, so ACME TRADING LLC and Acme Trading compare as the same name.
Aliases on the OFAC entry are matched as well as the primary name, which is how
Aero-Caribbean finds a designation filed under AEROCARIBBEAN AIRLINES.
Three verdicts: strong, possible, and clear. possible exists on purpose.
Near misses are surfaced for a human to look at rather than quietly cleared,
because a missed designation costs far more than a second look.
What it costs
Billed per name screened. A clear result bills exactly like a hit, because
knowing a counterparty is clear is the answer you came for. There is no actor
start fee.
Two things are never billed. A duplicate name inside one batch is answered once and the repeat is free. And if the sanctions list fails to load, the run stops with an error and bills nothing, rather than returning a comforting all clear it cannot stand behind.
Names beyond maxNames are returned free in a separate dataset marked
cap_reached, so nothing is silently dropped.
Your list is not kept
The names you submit are screened and returned. They are not written to any storage that outlives the run, and they are not retained, reused, or enriched into anything else.
Sources
- OFAC Specially Designated Nationals list, US Department of the Treasury
- OFAC Consolidated non-SDN lists (FSE, SSI, NS-MBS and others)
- GLEIF Legal Entity Identifier register, for company enrichment
All three are free public publications. Every row carries the source URL, the list publish date, and the time it was read.
Limits worth knowing
Matching is deterministic and name-based. It does not resolve identity from a date of birth, a passport number, or an address, so a common personal name can return more than one designation to review.
Cyrillic is transliterated so a Russian, Ukrainian or Belarusian record can reach
the Latin list. Other scripts are not, and a name with nothing screenable left
after normalisation is returned free in the rejected dataset marked
unscreenable_name, never billed as a clear result.
Screening is only as current as the list edition stamped on the row. OFAC adds and removes names without a fixed timetable, so re-screen when it matters.