Aller au contenu

Playbook · Calibrer et auditer la matrice de risques (BCT)

Pour qui : compliance officers + directeurs compliance + DSI des tenants bancaires tunisiens VitaKYC. Objectif : cadrer la création, la calibration, la publication et l’audit de la matrice de risques client conformément à la Circulaire BCT 2017-08 et aux recommandations FATF.

Pré-requis : lecture préalable de ADR-025, de la page engineering Risk Engine, et du POC.


SourceObligation
BCT Circulaire 2017-08 art. 8 + annexe DApproche par les risques (RBA) obligatoire. Classification type annexée : client, géographie, produit, canal. Revue périodique obligatoire.
Loi tunisienne 2015-26 (LCB-FT) art. 99-106Documentation écrite de la politique, application effective, traçabilité par client, sanctions en cas de défaut.
Loi 2019-9 (modificative)Renforcement des PEP et obligations de vigilance renforcée.
FATF Reco. 1, 10, 12, 15Identification et mitigation des risques ML/TF, revue régulière.
RGPD art. 22Droit à l’explication pour les décisions automatisées affectant significativement une personne.
Wolfsberg Group — RBA Guidance (2015)Bonnes pratiques industrie bancaire internationale.

En audit, l’inspecteur BCT demande : la politique écrite, les procédures d’application, la preuve d’application effective à chaque client, la traçabilité des revues, la démonstration de l’adéquation des seuils et pondérations au risque de l’établissement.


RôleResponsabilités
Compliance officerPropose la matrice, édite via UI, applique au quotidien
Directeur complianceApprouve la publication (dual control), signe la policy, arbitre les exceptions
DSICo-approuve la publication (dual control), valide l’impact technique
Auditeur interneVérifie application effective, échantillonne les décisions
Auditeur BCT / DGIContrôle externe, demande reproductibilité et pistes d’audit
Équipe CSM VitaKYCAccompagne la calibration initiale + revue annuelle

Matrice RACI :

ÉtapeCompliance officerDir. complianceDSIAuditeur interneVitaKYC CSM
Drafter la policyRACIC
BacktesterRAIIC
Shadow modeRACIC
Publier (dual control)RAAII
Appliquer au quotidienRAICI
Revue annuelleRACCC
Audit externeCRCRC

3. Phase 1 — Drafter la première matrice (semaines 1-2)

Section intitulée « 3. Phase 1 — Drafter la première matrice (semaines 1-2) »

Choisir parmi les 4 templates livrés :

  • TEMPLATE_BANK_TN_BCT (recommandé pour banque TN classique)
  • TEMPLATE_BANK_EU_6AMLD (filiale EU ou corporate international)
  • TEMPLATE_FINTECH_WALLET (si établissement de paiement ou wallet)
  • TEMPLATE_INSURANCE_CREDIT (si organisme de crédit ou assurance)

3.2 Ajuster pondérations et seuils aux spécificités de l’établissement

Section intitulée « 3.2 Ajuster pondérations et seuils aux spécificités de l’établissement »

Questions à se poser (workshop 2h, compliance officer + directeur compliance + CSM VitaKYC) :

  1. Quelle est notre typologie client principale ? (Retail, corporate, premium, non-résident)
  2. Avons-nous une exposition PEP significative ? (Si oui, augmenter weight client de 0.30 à 0.35)
  3. Quels produits offrons-nous qui portent du risque intrinsèque ? (Comptes devises, crédits structurés, produits d’épargne sophistiqués)
  4. Quels canaux d’entrée ? (Agence / remote / video-KYC / distributeurs tiers / mobile)
  5. Quels pays de contreparties typiques ? (Résidence client, origine/destination des fonds)
Profil établissementclientgeoproductchannelaml_screening
Banque TN retail classique (défaut)0.300.250.200.150.10
Banque TN avec forte activité internationale0.250.350.150.150.10
Banque avec exposition PEP / premium0.400.200.150.150.10
Fintech / wallet crypto-friendly0.200.250.250.100.20
Crédit / assurance0.200.150.400.100.15

Non négociable dans toute matrice BCT :

  • mustProhibit sur OFAC true positive + UN sanctions + BCT liste nationale
  • mustProhibit sur pays FATF blacklist (KP, IR, MM)
  • mustProhibit sur mineur pour produit non autorisé aux mineurs
  • mustHigh sur PEP OWN (conformément FATF Reco. 12)
  • mustHigh sur adverse media score > 0.9 (Wolfsberg)

Pour chaque dimension, remplir la model card obligatoire (format YAML dans la policy) :

dimension: client
owner: compliance-officer@banquex.tn
purpose: Évaluer le risque intrinsèque lié à la personne
variables:
- client.pep (source: WorldCheck + OpenSanctions, refresh daily)
- client.profession (source: form KYC, référentiel BCT codes)
regulatory_basis:
- "BCT Circulaire 2017-08 art. 8.2"
- "FATF Reco. 12 (PEP)"
last_review: 2026-04-15
last_reviewer: directeur-compliance@banquex.tn
next_review: 2027-04-15
known_limitations:
- "Adverse media uniquement en FR/AR/EN"
- "Définition 'close associate' PEP subjective, tolérance 10% FP"

Avant de publier, valider la draft sur 6 mois de dossiers historiques (échantillon 5000) pour quantifier l’impact sur :

  • taux auto-approve LOW (cible ≥ 60%)
  • taux HIGH (cible ≤ 20%)
  • taux PROHIBITED (cible ≤ 2%)
  • SLA agents (charge EDD prévisionnelle)
POST /v1/risk/policies/{id}/backtest
Content-Type: application/json
Authorization: Bearer <compliance-officer-token>
{
"window_months": 6,
"sample_size": 5000,
"reproducibility": {
"use_lists_at_evaluation_time": true // important : utilise les versions FATF/OFAC originales
}
}
202 Accepted (Temporal workflow, durée typique 10-20 min)

Le rapport inclut :

MétriqueSeuil d’alerteAction si dépassé
% dossiers dont le niveau change> 15%Revoir seuils/pondérations, faire un second draft
Confusion matrix (ancien niveau vs nouveau)Inspection visuelleIdentifier patterns systémiques
Top 20 dossiers dont la décision changeraitRevue manuelle par compliance officerValider ou justifier
Impact auto-approve LOW± 10%Si baisse significative : re-calibrer
Impact charge EDD+X% dossiers HIGHPrévoir renforts agents OU ajuster seuils
Faux-positifs estimés (vs feedback historique)> 2x prodRe-calibrer dimensions contribuant le plus aux FP

Si métriques KO : ne pas publier. Ajuster draft, rebacktester. Compte 2-3 itérations en moyenne pour une première matrice.


POST /v1/risk/policies/{id}/shadow-activate
→ 200 OK

Pendant cette période :

  • La policy ACTIVE prend les décisions en vrai (production inchangée)
  • La policy SHADOW évalue en parallèle chaque dossier, sans impact
  • Les métriques de divergence sont collectées
MétriqueSeuilAlerte
% divergence de niveau (prod vs shadow)≤ 15%Email compliance officer si > 15%
% nouveaux PROHIBITED≤ 5% de + par rapport à prodRevue manuelle obligatoire
% auto-approve LOW perdus≤ 10%OK si c’est le but (politique plus stricte)
Erreurs runtime (nouvelle policy crashe)0Revert immédiat, fix bug, re-shadow

2 semaines minimum, idéalement 4 semaines pour couvrir un cycle mensuel complet (paies, remises de chèques, échéances fiscales).

Fin du shadow → comité (compliance officer + directeur compliance + DSI) :

  • Métriques OK + pas d’erreur → go pour publication
  • Métriques KO → retour en phase draft

Compliance officer initie :

POST /v1/risk/policies/{id}/submit-for-approval
{
"backtest_report_id": "btr_...",
"shadow_report_id": "shr_...",
"justification": "Adaptation au renforcement BCT 2025-10 (nouvelle greylist + seuil COMPTE_DEVISE relevé)"
}
200 OK, status = PENDING_APPROVAL

Deux approbateurs distincts doivent signer :

  1. Directeur compliance (valide la dimension métier / conformité)
  2. DSI (valide l’impact technique, fenêtres, capacité)

Chaque approbateur reçoit un email avec :

  • Diff vs policy ACTIVE (dimensions changées, seuils, overrides)
  • Rapport backtest (1 page)
  • Rapport shadow (1 page)
  • Model cards modifiées

Signature : Ed25519 via Vault (clé personnelle liée au compte SSO + MFA). Horodatage serveur.

POST /v1/risk/policies/{id}/approve
{
"signature": "ed25519:...",
"comment": "Approuvé après revue du backtest (ligne 234 du doc), scan des model cards."
}

Une fois les 2 signatures en place :

POST /v1/risk/policies/{id}/publish
{
"effective_from": "2026-05-01T00:00:00Z",
"rollout_strategy": "BIG_BANG" // ou "CANARY_5_25_50_100" pour rollout progressif
}
200 OK, status = PUBLISHED → ACTIVE à effectiveFrom

Email automatique à :

  • Tous les compliance officers du tenant
  • Directeur compliance
  • DSI
  • Head of customer experience (agents impactés)
  • Équipe CSM VitaKYC (tracking)

Avec : changelog condensé, liens vers rapports, date d’effet, contact en cas d’incident.


7. Phase 5 — Revue périodique (annuelle + trigger event)

Section intitulée « 7. Phase 5 — Revue périodique (annuelle + trigger event) »

Chaque année, minimum (FATF Reco. 1, BCT implicite). Rappels automatiques à :

  • J-60 : email compliance officer “échéance revue dans 60j”
  • J-30 : escalade directeur compliance
  • J-7 : alerte urgente
  • J+0 : incident compliance ouvert

Pendant la revue, re-jouer toutes les phases 1 à 4. Budget typique : 1 semaine de travail compliance + 2 semaines shadow + publication.

Re-évaluer immédiatement si :

  • Nouvelle liste FATF (greylist / blacklist) publiée
  • Nouvelle sanction internationale majeure
  • Changement législatif (nouvelle circulaire BCT, nouvelle directive UE)
  • Incident compliance (fraude passée à travers le filet)
  • Changement de stratégie produit (nouveau produit à risque)
  • Fusion / acquisition (portefeuille client changé)

Chaque revue produit un rapport archivé au audit WORM :

  • Date
  • Motif (annuel / trigger event XXX)
  • Changements proposés (diff)
  • Décision (publier nouvelle version / conserver)
  • Signatures

L’auditeur BCT demandera typiquement, dans l’ordre :

  1. Politique écrite — la matrice active + historique versions + model cards
  2. Procédures — ce playbook + procédures agents (décisions, 4-eyes)
  3. Preuve d’application — échantillon aléatoire de 20-50 dossiers avec leur RiskEvaluation JSON complet
  4. Traçabilité des revues — rapports annuels + revues ad-hoc
  5. Traçabilité des publications — audit WORM : qui a drafté, signé, publié, quand
  6. Reproductibilité — refaire tourner un ancien dossier avec la policy de l’époque (listRefs l’exige) et obtenir le même verdict
  7. Backtesting — rapports des dernières publications
  8. Exceptions — liste des overrides manuels par senior compliance officers avec justifications
  9. Model cards — pour chaque dimension
  10. Formations — preuve que les agents et compliance officers sont formés
Question BCTRéponse attendue
”Pourquoi le poids de client est 0.30 et pas 0.40 ?”Model card + workshop d’origine + backtest qui montre que 0.30 donne un taux de faux-positifs acceptable tout en capturant les PEP/professions à risque via les overrides
”Comment empêchez-vous un agent d’outrepasser un PROHIBITED ?”L’ADR-025 impose que les overrides ne peuvent qu’ÉLEVER le niveau. Un PROHIBITED ne peut être abaissé que via un processus séparé de “re-classification justifiée” avec 4-eyes + audit WORM + approbation directeur compliance
”Combien de temps gardez-vous les évaluations ?“10 ans (table WORM chiffrée), conforme BCT + RGPD (mais pseudonymisation si suppression demandée)
“Que faites-vous si un client est PEP mais refuse de le déclarer ?”Screening tiers (WorldCheck, OpenSanctions) détectera. screening.pepConfirmed trigger mustHigh. Si client persiste à nier : rejet manuel + note incident
”Comment avez-vous calibré le seuil 50 pour le passage STANDARD → HIGH ?”Backtest sur historique 6 mois + benchmarking concurrents (Jumio/Onfido publient ~55) + avis CSM VitaKYC basé sur 5 autres tenants TN
POST /v1/audit/export
{
"tenant_id": "TN-BANQUEX",
"date_from": "2025-01-01",
"date_to": "2026-04-23",
"types": ["policy", "evaluation", "override"],
"format": "ZIP_PDF" // ou "JSON" pour machine-readable
}
→ signed URL valide 7j

Le ZIP contient :

  • Tous les rapports de revue
  • Toutes les publications de policy (diff inclus)
  • Échantillon d’évaluations (ou toutes si demandé)
  • Hash chain pour vérification intégrité
  • Model cards

IncidentDétectionAction
Dossier classé LOW alors qu’il était une fraudeFeedback agent après détection fraudeRevue post-mortem, reclassement si possible (profil changé), backtest pour voir si la policy aurait dû le détecter, ajuster dimensions si oui
Taux HIGH qui explose (>30%)Dashboards KPIAlerte auto, revue compliance officer, ajuster seuils ou dimensions
Liste OFAC mise à jour mais pas propagéeMonitor technique + alerte refresh Kafka KOIncident technique P1, rollback version liste, re-play dossiers impactés dans la fenêtre
Override PROHIBITED contesté par le client (RGPD)Demande explicite clientRGPD art. 22 : fournir l’explain sanitisé (niveau + raisons, sans PII tierces), permettre contestation auprès du directeur compliance, tracer la contestation
Deux approbateurs valident sans backtestAudit interneIncident compliance majeur, rollback policy, revue processus, formation obligatoire
Policy draft publiée par erreurAlerte diff surprise ou feedback agentRollback immédiat (la policy précédente est ARCHIVED mais restaurable < 5 min), incident post-mortem
Score d’un dossier diverge entre 2 évaluations identiquesAuditeur rejoue, verdict différentBug critique — vérifier si listes FATF/OFAC ont changé entre temps (listRefs doit différer), sinon investigation bug determinisme

  • Template de base choisi + documenté
  • Workshop calibration effectué (2h, compliance + directeur + DSI + CSM)
  • Model cards complétées pour les 5 dimensions
  • 20+ profils test joués dans POC, résultats validés en comité
  • Backtest 6 mois sur historique (ou 3 mois si tenant jeune)
  • Shadow mode activé minimum 2 semaines, métriques dans les seuils
  • 2 comptes dual control configurés (clés Vault + MFA + SSO)
  • Alertes configurées (SLA drift, p99 évaluation, % HIGH)
  • Audit WORM testé (export complet + vérification hash chain)
  • Playbook signé par directeur compliance + DSI
  • Formation agents (2h) + formation compliance officers (4h) effectuée
  • Exercice audit simulé (inspection interne) effectué
  • Runbook incident ouvert (escalade, contacts, rollback procedure)