Build a Watchlist Source Provenance and Historical Version Diff Engine
Audit entity changes across sequential versions of sanctions watchlists using FollowTheMoney diffing structures. Map source citation modifications to identify stealth delistings and identifier updates.
What you are building
The core problem, expected build, and operating context for this challenge.
Audit entity changes across sequential versions of sanctions watchlists using FollowTheMoney diffing structures. Map source citation modifications to identify stealth delistings and identifier updates.
Sanctions Quality Assurance Analyst
Ingest consecutive snapshot packages of FollowTheMoney entity records from simulated watchlist feeds.
Compute property-level diffs detecting modified legal names, added aliases, and altered registration numbers.
Extract upstream source citations and publishing agency markers to document entity modification provenance.
Compile a delta audit register highlighting material changes that require investigator portfolio re-screening.
Interactive version-diff viewer with visual property highlight chips and exportable provenance change tables.
Use mock yente snapshot dumps containing simulated versioned FollowTheMoney JSON entities. Starter examples below are synthetic. They are not downloaded records.
OpenSanctions data toolkit Leverage FollowTheMoney entity schemas, properties, and change tracking conventions from the yente framework.
dspy, pydantic, fastapi. DSPy compiles precise extraction assertions to classify property mutation categories systematically. Local or hosted LLM supported by DSPy with structured output capabilities.
Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.
Detects 100% of property diffs across name, jurisdiction, and identifier fields between revisions.
Correctly categorizes modifications into addition, modification, or removal events.
Attaches source timestamp and dataset origin ID to every identified change record.
Emits an alert flag whenever an entity identifier changes without an explicit legal rationale.
```json [ { "input": { "entity_id": "ftm-ent-501", "v1": { "schema": "Company", "properties": { "name": [ "Zenith Holdings Ltd" ], "jurisdiction": [ "gb" ], "registrationNumber": [ "01234567" ] } }, "v2": { "schema": "Company", "properties": { "name": [ "Zenith Global Holdings Ltd" ], "jurisdiction": [ "gb" ], "registrationNumber": [ "01234567" ], "alias": [ "ZGH Limited" ] } }, "snapshot_metadata": { "v1_date": "2024-01-01", "v2_date": "2024-02-01", "source_id": "uk-ofsi-mock" } }, "expected_output": { "entity_id": "ftm-ent-501", "source_id": "uk-ofsi-mock", "changes_detected": [ { "field": "name", "change_type": "modified", "old_value": [ "Zenith Holdings Ltd" ], "new_value": [ "Zenith Global Holdings Ltd" ] }, { "field": "alias", "change_type": "added", "old_value": [], "new_value": [ "ZGH Limited" ] } ], "rescreening_required": true, "provenance_summary": "Entity name modified and alias added in uk-ofsi-mock snapshot between 2024-01-01 and 2024-02-01." } }, { "input": { "entity_id": "ftm-ent-502", "v1": { "schema": "Company", "properties": { "name": [ "Static Trade Co" ], "jurisdiction": [ "de" ] } }, "v2": { "schema": "Company", "properties": { "name": [ "Static Trade Co" ], "jurisdiction": [ "de" ] } }, "snapshot_metadata": { "v1_date": "2024-01-01", "v2_date": "2024-02-01", "source_id": "eu-fsf-mock" } }, "expected_output": { "entity_id": "ftm-ent-502", "source_id": "eu-fsf-mock", "changes_detected": [], "rescreening_required": false, "provenance_summary": "No changes detected across snapshots." } } ] ```
Processes synthetic reference datasets; carries no legal or regulatory consequence and freezes no funds. Use mock external writes. Require human review before any real deployment.
Participation guide
Processes synthetic reference datasets; carries no legal or regulatory consequence and freezes no funds. Use mock external writes and human review.
How work is evaluated
Detects 100% of property diffs across name, jurisdiction, and identifier fields between revisions. Correctly categorizes modifications into addition, modification, or removal events. Attaches source timestamp and dataset origin ID to every identified change record. Emits an alert flag whenever an entity identifier changes without an explicit legal rationale.
Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.
Challenge datasets
Public datasets, plus the private datasets you have access to.
How submissions are scored
These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.
Complete workflow
Ingest consecutive snapshot packages of FollowTheMoney entity records from simulated watchlist feeds. Compute property-level diffs detecting modified legal names, added aliases, and altered registration numbers. Extract upstream source citations and publishing agency markers to document entity modification provenance. Compile a delta audit register highlighting material changes that require investigator portfolio re-screening.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Correctness and evidence
Detects 100% of property diffs across name, jurisdiction, and identifier fields between revisions. Correctly categorizes modifications into addition, modification, or removal events. Attaches source timestamp and dataset origin ID to every identified change record. Emits an alert flag whenever an entity identifier changes without an explicit legal rationale.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Review interface
Interactive version-diff viewer with visual property highlight chips and exportable provenance change tables.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Safe execution
Processes synthetic reference datasets; carries no legal or regulatory consequence and freezes no funds.
This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.
What you should walk away with
Ingest consecutive snapshot packages of FollowTheMoney entity records from simulated watchlist feeds.
Compute property-level diffs detecting modified legal names, added aliases, and altered registration numbers.
Extract upstream source citations and publishing agency markers to document entity modification provenance.
Compile a delta audit register highlighting material changes that require investigator portfolio re-screening.
Reference links and supporting material
Use mock yente snapshot dumps containing simulated versioned FollowTheMoney JSON entities. Supplied starter examples are synthetic, not source extracts.
Challenge setup
Configuration summary for this challenge.
Challenge input
Input details are not configured.
DSPy
Prompt and LM program optimization framework.
Evaluated output
No output checks are configured.
- Ingest consecutive snapshot packages of FollowTheMoney entity records from simulated watchlist feeds. Compu...
- Detects 100% of property diffs across name, jurisdiction, and identifier fields between revisions. Correctl...
- Interactive version-diff viewer with visual property highlight chips and exportable provenance change tables.
- 2 public reference cases
- 3 configured tools
Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.
View technical recipe
Configured tools
- DSPy · Optional
- DSPy · Optional
- DSPy · Optional
Evaluation contract
- Complete workflow · Weight 40
- Correctness and evidence · Weight 30
- Review interface · Weight 20
- Safe execution · Weight 10
Reference cases
- 2 public reference cases
Workflow tasks
No workflow tasks are configured.
Recipe freeze marker
No recipe freeze time is recorded.