finess_sirene_coverage_in_radius
Compare FINESS (DREES) and SIRENE (INSEE) registries within a geographic radius to detect over-declaration or under-declaration of healthcare facilities. Uses NAF code and optional FINESS families for accurate matching.
Instructions
Compare la couverture du référentiel FINESS DREES (sites physiques agréés LBM/pharmacie/etc.) au référentiel SIRENE DINUM (SIRET physiques actifs au NAF cible) dans un rayon géographique. Métrique : ratio sites FINESS / SIRET SIRENE. Utile pour détecter une sur-déclaration FINESS (sites encore listés mais SIRET fermés) ou une sous-déclaration DREES (sites SIRENE non agréés FINESS). Inclut une méthodologie explicite + caveats. V0.13.2 : si familles n'est pas passé, le scope FINESS est auto-dérivé du NAF cible (garantit un ratio cohérent — sinon finess_sites mélangerait toutes les familles co-localisées dans le rayon). Le matching FINESS↔SIRET est gaté par activité NAF↔famille (cas Hôpital Franco-Britannique : IFSI et labo au 4 rue Kléber ne sont plus confondus). Source : FINESS DREES + DINUM Recherche Entreprises + SIRENE INSEE.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lon | Yes | Longitude WGS84 du centre de la zone. | |
| lat | Yes | Latitude WGS84 du centre de la zone. | |
| radius_km | No | Rayon de la zone en km (0.1-50, défaut 5). | |
| naf | Yes | Code NAF SIRENE à comparer (ex: '8690B' labos d'analyses médicales, '4773Z' pharmacies, '8621Z' médecine générale). | |
| familles | No | Familles FINESS à inclure côté DREES. V0.13.2 : si omis, auto-dérivé du NAF cible via la table naf-finess-mapping (ex: naf=8690B → familles=[labo] ; naf=8610Z → multi-familles hospitalières). Passer explicitement si vous voulez restreindre davantage le scope. Valeurs : mco, ssr, sld, had, psychiatrie, dialyse, ambulatoire, labo, imagerie, pharmacie, msp_cpts, ehpad, residence_autonomie, senior_accompagnement, ssiad, aide_domicile, handicap_enfants, handicap_adultes, addictologie, enfance_protection, pmi, hebergement_social, prevention_sante, groupement. | |
| max_unites_legales | No | Nombre maximum d'unités légales DINUM à déplier (1-25, défaut 10). Au-delà : truncated_unites_legales=true. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| finess_sites | Yes | Nombre de sites FINESS dans le rayon (référentiel DREES). | |
| sirene_sirets | Yes | Nombre de SIRET physiques actifs au NAF cible dans le rayon (DINUM/SIRENE). | |
| matched_count | No | Nombre de matchs greedy Dice ≥ 0.7. | |
| coverage_ratio | Yes | matched / finess_sites ∈ [0, 1]. null si `sirene_sirets === 0` (zone rurale + NAF rare → ratio non calculable). | |
| finess_only_count | No | ||
| sirene_only_count | No | ||
| matched_samples | No | ||
| finess_only_samples | No | ||
| sirene_only_samples | No | ||
| methodology | Yes | Description LLM-friendly de l'algorithme appliqué. | |
| caveats | No | Limitations méthodologiques explicites (discipline zéro overclaim). | |
| truncated_unites_legales | No | true si le cap `maxUnitesLegales` a été atteint avant énumération complète. | |
| familles_auto_derivees | Yes | Familles FINESS auto-dérivées du `naf` cible quand `familles` n'est pas passé (V0.13.2 couche 1 — garantit un ratio cohérent). `null` si le caller a passé `familles` explicitement. | |
| familles_excluees_naf | No | Familles passées en input mais incompatibles avec le `naf` cible, exclues du périmètre FINESS (V0.13.2 couche 2). Absent si tout est cohérent ou si `familles` n'a pas été passé. | |
| coverage_status | Yes | Statut typé du calcul (toujours présent). `computed` = calcul nominal (finess_sites peut être 0 sur rayon vide). `scope_empty_unknown_naf` = NAF non mappé, court-circuit (corriger le NAF ou compléter naf-finess-mapping). `scope_empty_familles_incompatible` = `familles` toutes incompatibles avec le NAF (réviser le couple ou omettre `familles` pour auto-derive). Le `caveats[]` reste exposé en parallèle pour lecture humaine — ce champ fait foi pour le routage. | |
| perimetre | No | Lentille de la source : ce que le comptage inclut/exclut. Lire `completeness_note` et la restituer au lecteur final. |