# Changelog of Sanctions List Screening – EU, UN & UK Lists (`lwsdjfls/eu-sanctions-screening`) Actor

- **URL**: https://apify.com/lwsdjfls/eu-sanctions-screening/changelog.md
- **Full Actor documentation**: https://apify.com/lwsdjfls/eu-sanctions-screening.md

## Changelog

### 0.1 (2026-09-17)

First public release.

- Screening against the EU consolidated financial sanctions list, the UN Security Council Consolidated List, the UK Sanctions List and the OFAC SDN and Consolidated lists, fetched from the publishers with conditional requests and cached per list version.
- Name matching with transliteration of Cyrillic, Greek, Arabic and Hebrew script, folded spelling keys (Mohammed/Muhammad, Yevgeny/Evgeniy), Jaro-Winkler token similarity, order-insensitive alignment, and weights for particles, titles, legal forms and generic words.
- Every name of a listed party is weighed, including weak aliases (marked), former names and original-script names; dates of birth, countries and identifiers adjust the score.
- Full evidence per match: token-by-token agreement, transliterations, adjustments, all names weighed, list reference, listing date, programme, reason and source link, plus the list versions used.
- No state between runs: screened names stay in the run's input and dataset; nothing carries over to the next run.
- The charge for each name is reserved before it is screened: names above `maxNamesPerRun` or beyond the spending limit are not screened or charged, and the run is marked partial. A run whose spending limit cannot pay for one name stops before any list is downloaded, and a run stops screening once its results fill a sixteenth of its JavaScript heap (about 32 MB at 1 GB of memory and 128 MB at 4 GB; the run log states the bound). List files are downloaded two at a time and read one at a time.
- One record per distinct name: repeated identical entries are screened and charged once. A name is charged only after its record is written to the dataset.
- Every name that is not screened (above the run limit, past the spending limit or past the memory bound) gets a free `skipped` record with the reason, so the dataset shows which names were not screened. Their number follows what the run charged: up to 1,000 per run, or 10 per name screened and charged when that is more, never more than 50,000; the run log counts the names left without a record.
- Runs need at least 1 GB of memory: parsed and indexed, the five list files take about 280 MB of it (the files of 17 September 2026 hold 33,465 listed parties with 99,994 names).
