reconcilier_finess_sirene
Cross-references FINESS DREES with SIRENE INSEE to compute a Sørensen-Dice similarity score for candidate SIRETs, helping validate or reject num_finess ↔ SIRET pairings.
Instructions
Croise FINESS DREES ↔ SIRENE INSEE V3.11 et calcule un score de cohérence (Sørensen-Dice sur bigrammes) pour chaque SIRET candidat. Utile pour confirmer/infirmer un appariement num_finess ↔ SIRET avant prospection ou cross-check qualité.
Logique :
Récupère FINESS (raison sociale + adresse libellée)
Récupère SIRET candidats via la table RPPS
Pour chaque SIRET, lookup SIRENE puis calcule 3 sous-scores :
nom: Dice sur raison sociale (FINESS vs SIRENE.uniteLegale)adresse: Dice sur adresse complètetelephone: binaire 0/1 (toujours 0 actuellement : SIRENE n'expose pas le tel)
Score global = pondération (nom 0.5, adresse 0.4, tel 0.1)
Verdict brut :
match(≥0.8) /partial(0.5..0.8) /mismatch(<0.5)
Algorithme PUBLIC (Sørensen-Dice est dans la littérature depuis 1948). Aucune valeur ajoutée Unilabs ici — c'est une primitive ouverte. La connaissance propriétaire (mapping enseignes ↔ SELAS) reste côté Geo Intel.
Format : objet LookupResult. Quand found: true, retourne { num_finess, candidates, skipped } :
candidates: tableau trié parscore_globaldécroissant (meilleur match en premier)skipped: SIRET candidats qu'on n'a PAS pu réconcilier (lookup SIRENE rejected ou not_found) avec lareason. Permet au caller de distinguer 'aucun SIRET candidat trouvé' (found: falseLookupResult.not_found) de 'N SIRETs candidats mais tous rejetés par SIRENE' (candidates: []+skipped: [...]).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| num_finess | Yes | Numéro FINESS exact (9 chiffres). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| found | Yes | ||
| lookupStatus | Yes | ||
| key | No | Clé recherchée (SIREN, num_finess, code INSEE, …). | |
| message | No | Explication actionnable quand `found=false` (cause probable + remédiation). |