← Console Tableau de bord BI — miroir et crypto →

Note autonome — N'DRI Research Lab. Index du 12/10/2026 13:35 UTC : 20 426 désignations, 43 282 noms et alias, aucune adresse africaine publiée. Companion de l'onglet « Sanctions » de blockchain_tracer.html et du cas pratique 09_cas_pratique_criblage_vasp.md. Chiffres recalculés par build_note_afrique.py ; annexe ligne à ligne : 10_entrees_africaines_annexe.csv.


1. Le chiffre, et ce qu'il vaut

L'index compte 20 426 désignations (OFAC SDN + liste consolidée ONU). 868 portent le marqueur « Afrique », soit 4.2 % — 634 côté OFAC, 234 côté ONU. Ce n'est pas un recensement : c'est le résultat d'une règle de tri, appliquée à des champs saisis par des tiers.

La distinction est essentielle pour l'usage fiscal : un drapeau « Afrique » sert à prioriser une lecture, jamais à conclure. Les sections qui suivent démontent la règle, puis les trois façons dont elle produit des faux positifs.

2. La règle, exactement

Le marqueur est posé par is_africa() dans _vpsdata/build_sanctions_lists.py. Il teste 54 indices (pays, régimes et dénominations onusiennes) sur le nom, les pays (pays d'adresse pour l'OFAC, nationalités et pays listés pour l'ONU) et, selon la source, les programmes (OFAC) ou les commentaires de la fiche (ONU). La correspondance se fait sur mot entier, insensible à la casse :

AFRICA_HINTS = ["DRC", "CONGO", "RDC", "LIBYA", "LIBYE", "SOMALIA", "SOMALIE", "SUDAN", …]

def is_africa(*fields):
    blob = " ".join(str(x) for x in fields if x).upper()
    for hint in AFRICA_HINTS:
        if re.search(r"\b" + re.escape(hint) + r"\b", blob):
            return True
    return False

Conséquences mécaniques de cette écriture :

Les indices qui déclenchent le plus de marqueurs :

IndiceEntrées marquéesPart des 868
SUDAN13315.3 %
CONGO11513.2 %
SOMALIA10612.2 %
DRC596.8 %
LIBERIA526.0 %
LIBYA515.9 %
CAR495.6 %
SOUTH SUDAN455.2 %
EGYPT414.7 %
CENTRAL AFRICAN354.0 %
RWANDA343.9 %
ALGERIA333.8 %

3. Décomposition

DimensionValeurPart
Source — OFAC63473.0 %
Source — ONU23427.0 %
Type — personne physique55263.6 %
Type — entité31636.4 %
Avec au moins un alias61170.4 %
Avec pays renseigné868100.0 %
Avec adresse de crypto-actif00.0 %

Le déséquilibre personnes/entités est un fait de source, pas d'analyse : l'ONU liste massivement des individus (nationalités, dates de naissance) là où l'OFAC liste des sociétés et des réseaux.

4. Programmes : 44 codes distincts

Un même dossier porte plusieurs programmes : les 868 entrées cumulent 927 étiquettes. 330 entrées portent au moins un code africain (soit 330 étiquettes), et 538 ne portent aucun code africain tout en restant marquées : pour celles-là, le lien vient du pays ou du nom, jamais du régime.

ProgrammeEntréesCode africainPart des 868
SDGT211non24.3 %
Al-Qaida105non12.1 %
GLOMAG105non12.1 %
DRC57oui6.6 %
DRCONGO57oui6.6 %
SUDAN-EO1409857oui6.6 %
CAR42oui4.8 %
SOMALIA30oui3.5 %
RUSSIA-EO1402428non3.2 %
SOUTH SUDAN24oui2.8 %
SDNTK17non2.0 %
Somalia17oui2.0 %
FTO16non1.8 %
IRAN-EO1390216non1.8 %
LIBYA314oui1.6 %

Les codes africains présents (13) : DRC (57), DRCONGO (57), SUDAN-EO14098 (57), CAR (42), SOMALIA (30), SOUTH SUDAN (24), Somalia (17), LIBYA3 (14), Libya (11), Sudan (9), SouthSudan (5), MALI-EO13882 (4), LIBYA2 (3).

Les codes globaux (31) expliquent le reste : terrorisme international (SDGT, FTO, Al-Qaida), droits humains et corruption (GLOMAG), cyber (CYBER2), régimes non africains (RUSSIA-EO14024, IRAN-EO13902, DPRK)… Un djihadiste égyptien est « africain » par sa nationalité et « SDGT » par son régime de sanction : les deux lectures sont vraies et ne disent pas la même chose.

5. Pays : 392 valeurs, dont du bruit

Le champ « pays » est le plus fragile des trois. Côté ONU, le parseur lit tous les champs <VALUE> de la fiche : on y trouve les nationalités, mais aussi des dates (770 valeurs de type AAAA-MM-JJ, réparties sur 154 entrées) et la chaîne « UN List » (234 entrées). Côté OFAC, le champ provient du fichier d'adresses : c'est un lieu d'établissement, pas une nationalité.

Table des 15 valeurs pays les plus citées, hors bruit (dates et « UN List ») :

Pays citéEntréesIndice africain
Congo, Democratic Republic of the104oui
Somalia101oui
Sudan64oui
Liberia52oui
South Sudan52oui
United Arab Emirates49non
Egypt48oui
Libya47oui
Central African Republic45oui
Lebanon42non
Algeria36oui
Mali33oui
Rwanda32oui
Nigeria31oui
Tunisia30oui

La présence d'États du Golfe ou du Liban dans ce tableau n'est pas une erreur : une personne listée peut y résider. C'est précisément l'argument contre l'usage du drapeau comme preuve d'un lien africain.

493 des 868 entrées (56.8 %) ne sont marquées que par le champ pays — ni le nom ni le programme ne portent d'indice africain. C'est la dépendance centrale de ce chiffre.

6. Qui manque

Autrement dit : 868 est un plancher, pas un recensement. La vraie question n'est pas « combien y en a-t-il ? » mais « de quoi ce chiffre est-il le nom ? ».

7. Trois faux positifs types (calculés, pas illustratifs)

CasEntréeCe que contient la ficheCe que ça montre
Le plus grand nombre de pays citésREVIVAL OF ISLAMIC HERITAGE SOCIETY (OFAC/10923)programmes : SDGT<br>indice(s) africain(s) : Somalia, Ghana · 38 autre(s) valeur(s) (ex. Kuwait, Bangladesh, Bosnia and Herzegovina)Aucun indice africain dans le nom ni dans les programmes : le drapeau ne tient qu'à un lieu (siège, filiale, adresse) noyé parmi des dizaines d'autres.
Programme global, pays africainMOHAMED BEN BELGACEM BEN ABDALLAH AL-AOUADI (UN/111735)programmes : Al-Qaida<br>indice(s) africain(s) : Tunisia · 0 autre(s) valeur(s) · bruit : 15 date(s), « UN List »Le programme est global (terrorisme, Magnitsky, régime non africain) ; l'entrée n'est « africaine » que par un pays de la fiche.
Bruit de parsing ONUABD AL-BASET AZZOUZ (UN/6908525)programmes : Al-Qaida<br>indice(s) africain(s) : Libya · 0 autre(s) valeur(s) · bruit : 3 date(s), « UN List »Le champ pays contient une date de la fiche onusienne : la valeur est conservée telle quelle, sans correction.

Ces trois cas ne sont pas des erreurs de code : ce sont les limites de la source. Le marqueur ne prétend pas dire « cette entrée concerne un régime africain » ; il dit « un champ de cette fiche contient un indice africain ».

8. Ce que ça change

Pour un criblage. Le drapeau ne remplace aucune décision : il sert de file de lecture. Dans le cas pratique 09, aucune des contreparties n'était africaine ; si l'une l'avait été, le drapeau aurait seulement indiqué au responsable conformité qu'il existe une désignation liée à ce pays — la vérification (identité, date de naissance, adresse) restant entière.

Pour la fiscalité. Le résultat le plus utile de cette note est un constat négatif : aucune des 868 entrées africaines ne porte d'adresse de crypto-actif. Un contrôle des flux crypto liés à des personnes désignées africaines ne peut donc pas reposer sur l'index. Il doit passer par les points de contact existants — PSAV, plateformes d'échange, déclarations — et par les mécanismes d'échange de renseignements, pas par la chaîne de blocs.

Pour la recherche. Les 868 entrées forment un corpus de travail pour un codebook « régimes et pays africains » qui n'existe pas encore : la liste d'indices actuelle (54 chaînes) mélange pays, régimes onusiens et dénominations, ce qui interdit tout comptage par pays. C'est le prochain chantier méthodologique.

9. Reproduire

cd _vpsdata
python build_sanctions_lists.py --drop-raw   # télécharge les fichiers officiels et les hache
python build_note_afrique.py                 # recalcule cette note + l'annexe CSV
python build_note_afrique.py --check         # vérifie que la note publiée est à jour
FichierContenu
_vpsdata/sanctions_lists_latest.jsonindex complet (20 426 entrées), source de tous les chiffres
_vpsdata/build_sanctions_lists.pyrègle is_africa + liste AFRICA_HINTS
_vpsdata/build_note_afrique.pygénérateur de cette note et de l'annexe
recherche/10_entrees_africaines_annexe.csv868 lignes, 9 colonnes
conference_site/data/sanctions_meta.jsonempreintes et compteurs publiés à l'interface

Empreinte de l'index (sha256 des lignes key|sha256|bytes) : 531f8b9694d3465e1e17fea4cc2f3ac2abead9d40c2f87f1e38a0b49c7a54dc5 Date du relevé : 12/10/2026 13:35 UTC.

10. Réserves

  1. Agrégation OSINT de deux listes publiques (OFAC SDN et liste consolidée ONU). Ni l'UE, ni les listes nationales africaines, ni les listes régionales ne sont incluses : le chiffre est un plancher.
  2. Le drapeau est heuristique. 54 indices testés sur trois champs, sans géocodage ni référentiel pays canonique. Il sert à trier, pas à qualifier juridiquement.
  3. Le champ pays est bruité : 770 valeurs de type date et 234 occurrences de « UN List » proviennent du parsing des fiches onusiennes ; elles sont conservées telles quelles.
  4. Aucune adresse africaine publiée : 0 entrée(s) marquée(s) Afrique en porte une. Toute conclusion sur des flux crypto africains serait donc sans fondement dans cet index.
  5. Aucune identification de personne. Une correspondance de nom reste un signal (homonymie, translittération) ; les exemples du §7 sont des fiches publiques, pas des soupçons.
  6. Données datées. Le relevé vaut pour le 12/10/2026 13:35 UTC ; une radiation ou une nouvelle désignation peut être intervenue depuis. Toute reprise doit refaire tourner le criblage.
  7. Les exemples sont choisis par règle (plus grand nombre de pays, programme non africain, date dans le champ pays) et non pour illustrer une thèse : la règle est dans le code, pas dans le commentaire.

Annexe — colonnes de 10_entrees_africaines_annexe.csv

ColonneContenu
srcOFAC ou UN
ididentifiant de la désignation dans la source
namenom principal tel que publié
typeindividual ou entity
countriesvaleurs du champ pays, séparées par « ; » (bruit inclus)
programsprogrammes de sanction, séparés par « ; »
aliases_countnombre d'alias publiés
crypto_assetsactifs des adresses publiées (vide pour les 868 entrées)
africa_termsindices africains effectivement trouvés dans la fiche

Note régénérée par _vpsdata/build_note_afrique.py ; l'annexe contient 868 lignes triées par source puis identifiant. Aucun chiffre de cette note n'est saisi à la main.