CRUSETRA

See what your screening catches, and what it flags incorrectly.

A screening threshold is the score above which two names count as a match.
Crusetra Screening compares names seven ways, at every threshold, over alerts your analysts already closed.

git clone https://github.com/ArslaneSempai-ui/crusetra-screening cd crusetra-screening npm ci --ignore-scripts npm run measure:yours -- --alerts=your-alerts.csv
Send us your list for a sealed report within 48 hours
The sieve tower, state 01: Exact matching raises no false alert, and finds few of the true matches. exact matching: recall 21.7%near-matches: false alerts 0%
finding 01no false alert

The tool keeps only the settings that catch at least 90% of true matches, then among those picks the one with the fewest false alerts. Exact matching catches 21.7% of them, and raises no false alert on the near-matches, which are names that look similar but belong to different people. You use this to choose your own bar, on your own alerts.

21.7%catches 21.7% of true matches, interval 13% to 34%, on 60 pairs
0%no false alert, interval 0% to 6%, on 60 pairs of near-matches
The sieve tower, state 02: Jaro-Winkler at 0.50 finds all the true matches, and alerts on most near-matches. jaro-winkler 0.50: recall 100%near-matches: false alerts 85%
finding 0285% false alerts

Jaro-Winkler is a score that says how similar two names look, from 0 to 1. If you set the bar at 0.50, the tool finds all the confirmed matches, and alerts on 85% of the near-matches.

100%catches 100% of true matches with jaro-winkler at 0.50, interval 94% to 100%, on 60 pairs
85%false alerts 85% at the same setting, interval 74% to 92%, on 60 pairs of near-matches
The sieve tower, state 03: Catching nearly all the true matches costs a great many false alerts. best trade-off: recall 98.3%that cell: false alerts 76.7%
finding 0376.7% false alerts

This setting finds 98.3% of the true matches. It also alerts on 76.7% of the near-matches, because those pairs were written to be hard to tell apart.

98.3%catches 98.3% of true matches with jaro-winkler at 0.56, interval 91% to 100%, on 60 pairs
76.7%false alerts 76.7% at the same setting, interval 65% to 86%, on 60 pairs of near-matches
The sieve tower, state 04: The same setting alerts on 17.2% of generated pairs and 76.7% of the written pairs. written near-matches: 76.7%generated near-matches: 17.2%
finding 0417.2% against 76.7%

The same setting alerts on 76.7% of the pairs an AI agent wrote for us, and on 17.2% of the ones a script generated from them. A generated pair is easier to tell apart, so it is counted on its own, and the rates above come from the written pairs.

76.7%false alerts 76.7% at the setting the tool picks, on the written pairs, interval 65% to 86%
17.2%false alerts 17.2% at the same setting, on 360 pairs a script generated, interval 14% to 21%
The sieve tower, state 05: Run the same measurement on your own alert history. 120 pairs written720 pairs generated
finding 05one run, one report

The rates here come from our public test set: 60 pairs of confirmed matches and 60 pairs of near-matches, written for this repository by an AI agent, and another 360 pairs of each kind that a script generated from them. Run the tool on your own alert history and it writes the report into the folder your file is in.

60 pairs60 pairs of confirmed matches and 60 pairs of near-matches, written by an AI agent, behind the rates
360 pairsanother 360 pairs of each kind, generated by a script from the written ones

Company and vessel names

Nearly half of real spelling variants come back strong.
None of a thousand different companies do.

469 real companies, each under two spellings of its name in the GLEIF register: each mark is one pair, lit when the tool finds it.

47%

222 found at the strong level, 47 % [42.9-51.9]96 more at the possible level, 318 in all, 68 % [63.4-71.9]151 missed at both levels

1,000 pairs of real, different companies that share a distinctive word: a lit mark is a false alert.

0

0 of 1,000 raised a strong alert [0.0-0.4 %]2 raised a possible alert [0.1-0.7 %]

1,000 invented counterparties on no list, screened against the seven sources of 4 October: the lit marks are what your officer reads.

24/1000

0 strong24 possible976 with no candidate

Measured once, on 4 October 2026, on names the tool had never seen. 151 of the 469 spelling variants, about a third (32 %), are missed even at the possible level: a name written very differently can get through. A candidate is a name for your compliance officer to read, never a match established. On an easier set, written by a separate AI agent that never saw the matcher, 332 of 400 true pairs came back strong and 0 of 200 neighbors did (28 September 2026, before the tool was recalibrated on real names). The counterparty book was read to set the review budget, so its figure is not blind.

Read the four verdicts on real names Open the sealed record

measured 2026-10-04 at commit 3b611c5 · sealed and signed · content hash ea01de439f1f2478

The screening report

Send us your list, and within 48 hours it comes back screened and sealed.

  1. You send a CSV or a spreadsheet with a column of company and vessel names, and the IMO number of a vessel when you have it.
  2. We screen each name against ten public sources: OFAC SDN, the OFAC consolidated (non-SDN) lists, the US Consolidated Screening List (its Commerce and State lists), the UN Security Council list, the EU financial sanctions list, the UK Sanctions List, the vessels the EU designates in Annex XLII of Regulation 833/2014, Australia's DFAT Consolidated List, the Consolidated Canadian Autonomous Sanctions List and New Zealand's Russia Sanctions Register, each as downloaded on the date the report states.
  3. You receive a PDF, a spreadsheet and the sealed record: each candidate with its list entry and the words that matched, the dates of the lists, and a seal anyone can check with one command, npm run sceller -- <record>.screening.json --check.
First page of the sample report: 30 invented counterparties, 9 strong candidates, 3 possible, 18 with no candidate.
sample report · 30 invented counterparties · a fresh run of 2026-10-06 at commit 3083aff, record 0b7f471641d39abe · the committed record of the same file is fe75f2ae1033acc0 (2026-10-05)

One report

$99up to 500 names

Your list, screened once and sealed, back within 48 hours.

  • The report as a PDF and as a spreadsheet
  • Each candidate with its list entry and the words that matched
  • The dates of the ten sources, and a seal anyone can check

Weekly re-screen

$79a month, up to 500 names

The same list, screened again each week against the lists of that week.

  • 52 sealed reports a year
  • Each report opens with what changed since the last one
  • Paid yearly, two months free
  • Stop any time: your list goes to the trash, deleted within 30 days
500

A list of 500 names: $99 for one report, or $79 a month to have it screened again each week.

Once the report is sent, your file and the mails that carried it go to the trash and are permanently deleted within 30 days. A weekly re-screen subscriber's list is kept for the re-screen and goes the same way when the subscription stops. A candidate is a name for your compliance officer to check: the report does not decide, does not screen ownership, and is not legal advice.

Download the sample report Open the record this PDF renders Open the committed example record

Crusetra, explained.

The five Screening findings