Skip to main content
Challenge

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.

CybersecurityHosted by Vera
Challenge brief

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.

Rules

Participation guide

Processes synthetic reference datasets; carries no legal or regulatory consequence and freezes no funds. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

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.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

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.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

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.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Interactive version-diff viewer with visual property highlight chips and exportable provenance change tables.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Processes synthetic reference datasets; carries no legal or regulatory consequence and freezes no funds.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

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.

Resources and assets

Reference links and supporting material

Dataset notes

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.

Evaluation checks
  • 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.
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 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

Action Space
  • DSPy · Optional
Training Infra
  • DSPy · Optional
Orchestration
  • 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.

Frequently Asked Questions about Build a Watchlist Source Provenance and Historical Version Diff Engine