opensanctions / opensanctions/opensanctions

worldbank_debarred: the "Other Sanctions" table on the same page is not crawled

Open
#5,604 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
810
Forks
187
Avg merge
1d 7h
Merged PRs (30d)
133

Description

The crawler reads only the JSON feed at apigwext.worldbank.org/.../SANCTIONED_FIRM, which carries debarments and cross-debarments (INELIG_FLG D and X). The same page publishes a second, hand-maintained HTML table headed "Other Sanctions", holding the sanctions the World Bank imposes short of debarment: conditional non-debarment, letter of reprimand and restitution. None of those rows appear in the JSON feed, so they are missing from the dataset entirely.

The clearest example is IQVIA Consulting and Information Services India, sanctioned with conditional non-debarment from June 17, 2025 to December 16, 2026 for Fraudulent Practices, as the result of a settlement agreement. It has no record in OpenSanctions at all:

GET /search/default?q=IQVIA+Consulting+and+Information+Services+India  ->  0 results

and it is genuinely absent from the feed the crawler reads:

curl -s 'https://apigwext.worldbank.org/dvsvc/v1.0/json/APPLICATION/ADOBE_EXPRNCE_MGR/FIRM/SANCTIONED_FIRM' \
  -H 'apikey: z9duUaFUiEUYSHs97CU38fcZO7ipOPvm' \
  | jq '[.response.ZPROCSUPP[] | select(.SUPP_NAME | test("IQVIA";"i"))] | length'
0

The table as published today is four rows:

Name Period Sanction Grounds
OAO Armada Ongoing Letter of reprimand Sanctions Procedures, Section 9.04(a)
PT. Bumirejo Ongoing Letter of reprimand January 1999 Procurement Guidelines, para. 1.15(a)(ii)
TPF GETINSA EUROESTUDIOS S.L. February 29, 2024 to November 28, 2027 Conditional non-debarment Corrupt and Collusive Practices
IQVIA Consulting and Information Services India June 17, 2025 to December 16, 2026 Conditional non-debarment Fraudulent Practices

Of those, TPF Getinsa is separately debarred and so is already in the dataset (footnote *59 spells out that it remains debarred with conditions through November 28, 2027 under Decision No. 134). "OAO Armada" appears to be a different entity from the listed "OOO ARMADA CENTER". IQVIA and PT. Bumirejo have no record at all.

Two things that seem worth deciding if you pick this up:

  1. A conditional non-debarment or a letter of reprimand is not a debarment, and the firm stays eligible for Bank financing. Emitting these into worldbank_debarred under the debarment topic would overstate them, so a separate dataset or at least a distinct topic looks more accurate.
  2. The table is hand maintained and the published HTML carries typos ("Feberuary", "Non-debarmen"), so a parser should not key on exact strings for the sanction type.

Happy to open a PR if that is useful.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the worldbank_debarred crawler and its current JSON-feed entry point, then compare its output with the World Bank's hand-maintained "Other Sanctions" table. Decide whether these records need a separate dataset or topic, accounting for conditional non-debarment and reprimands. Done means the relevant sanctions are represented without overstating them as debarments, including coverage for IQVIA and PT. Bumirejo.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.