{
    "ok": true,
    "generated_at": "2026-07-08T00:20:27+00:00",
    "summary": "Livre de formules pour rendre les KPI territoire Winerix coherents, ponderes, caveates et comparables.",
    "metric_count": 7,
    "normalization_rule_count": 5,
    "metrics": [
        {
            "key": "territory_reference_score",
            "label": "Territory Reference Score",
            "question": "Le territoire est-il assez prouve, source et caveate pour etre publie comme reference Winerix ?",
            "scale": "0-100",
            "formula": "0.35 * regulatory_proof + 0.20 * source_fidelity + 0.15 * vineyard_footprint + 0.15 * data_freshness + 0.15 * publication_readiness",
            "weights": {
                "regulatory_proof": 35,
                "source_fidelity": 20,
                "vineyard_footprint": 15,
                "data_freshness": 15,
                "publication_readiness": 15
            },
            "source_stack": [
                "inao_aoc_aop_communes",
                "inao_siqo_products",
                "eambrosia_gi",
                "rpg_parcels",
                "reference_source_fidelity",
                "reference_publication_gate"
            ],
            "minimum_gate": "Publier seulement si les preuves INAO/eAmbrosia/SIQO sont visibles et si le caveat principal est present.",
            "copy_sentence": "Score reference : synthese ponderee des preuves officielles, de la fidelite source, de l empreinte viticole et du gate de publication.",
            "visual_family": "reference_authority"
        },
        {
            "key": "oenotourism_readiness_score",
            "label": "Oenotourism Readiness Score",
            "question": "Le territoire a-t-il assez d offre, de capacite et de labels pour soutenir une promesse oenotouristique ?",
            "scale": "0-100",
            "formula": "0.20 * wine_offer_density + 0.17 * accommodation_capacity + 0.14 * tourism_demand_signal + 0.12 * destination_label_signal + 0.11 * quality_reception_signal + 0.08 * bike_access_signal + 0.08 * accessibility_signal + 0.10 * address_quality",
            "weights": {
                "wine_offer_density": 20,
                "accommodation_capacity": 17,
                "tourism_demand_signal": 14,
                "destination_label_signal": 12,
                "quality_reception_signal": 11,
                "bike_access_signal": 8,
                "accessibility_signal": 8,
                "address_quality": 10
            },
            "source_stack": [
                "datatourisme_oenotourism",
                "insee_tourism_capacity_communes",
                "insee_tourism_occupancy",
                "atout_france_classified_accommodations",
                "vignobles_decouvertes",
                "qualite_tourisme_establishments",
                "bnsc_bike_parking",
                "tourisme_handicap_establishments",
                "ban_address_reference"
            ],
            "minimum_gate": "Ne jamais decrire ce score comme frequentation oenotouristique : Insee mesure la demande hebergements generale, a croiser avec offre vin.",
            "copy_sentence": "Readiness oenotourisme : offres vin, capacite, demande touristique Insee, labels, Qualite Tourisme, mobilite douce, accessibilite et adresse dans un score caveate.",
            "visual_family": "oenotourism_capacity"
        },
        {
            "key": "wine_business_density_score",
            "label": "Wine Business Density Score",
            "question": "Le territoire concentre-t-il assez d acteurs vin pour justifier une priorite produit, commerciale ou partenaire ?",
            "scale": "0-100",
            "formula": "0.40 * active_wine_establishment_density + 0.20 * core_naf_share + 0.15 * geocoding_quality + 0.15 * sustainability_signal + 0.10 * source_activation_status",
            "weights": {
                "active_wine_establishment_density": 40,
                "core_naf_share": 20,
                "geocoding_quality": 15,
                "sustainability_signal": 15,
                "source_activation_status": 10
            },
            "source_stack": [
                "sirene_wine_establishments",
                "wine_naf_codes",
                "ban_address_reference",
                "hve_certified_estates",
                "source_activation_status"
            ],
            "minimum_gate": "Publier en agrege si Sirene/HVE ne sont pas relus nominativement ; marquer pipeline si le stock Sirene manque.",
            "copy_sentence": "Densite business : volume d etablissements vin, part coeur filiere, qualite geocodage et signaux HVE.",
            "visual_family": "business_density"
        },
        {
            "key": "sustainable_wine_signal",
            "label": "Sustainable Wine Signal",
            "question": "Le territoire possede-t-il des signaux environnementaux officiels exploitables sans surpromesse ?",
            "scale": "0-100",
            "formula": "0.30 * hve_wine_related_density + 0.25 * organic_wine_operator_density + 0.15 * siqo_product_signal + 0.10 * vineyard_surface_context + 0.10 * source_fidelity + 0.10 * caveat_quality",
            "weights": {
                "hve_wine_related_density": 30,
                "organic_wine_operator_density": 25,
                "siqo_product_signal": 15,
                "vineyard_surface_context": 10,
                "source_fidelity": 10,
                "caveat_quality": 10
            },
            "source_stack": [
                "hve_certified_estates",
                "agencebio_organic_wine",
                "inao_siqo_products",
                "rpg_parcels",
                "agreste_viticulture_territorial",
                "reference_source_fidelity"
            ],
            "minimum_gate": "Toujours distinguer HVE, Bio et SIQO ; publier les operateurs bio en agregat territoire avant listing nominatif.",
            "copy_sentence": "Signal durabilite : HVE, bio vin Agence Bio, produits SIQO et surface viticole, avec caveats distincts par source.",
            "visual_family": "wine_territory"
        },
        {
            "key": "organic_wine_sustainability_score",
            "label": "Organic Wine Sustainability Score",
            "question": "Le territoire dispose-t-il d un signal bio vin officiel assez robuste pour enrichir la lecture durabilite ?",
            "scale": "0-100",
            "formula": "0.45 * organic_operator_density + 0.25 * organic_viticulture_surface_context + 0.15 * certifier_diversity_signal + 0.15 * hve_complement_signal",
            "weights": {
                "organic_operator_density": 45,
                "organic_viticulture_surface_context": 25,
                "certifier_diversity_signal": 15,
                "hve_complement_signal": 15
            },
            "source_stack": [
                "agencebio_organic_wine",
                "agencebio_organic_viticulture_surfaces",
                "hve_certified_estates",
                "sirene_wine_establishments",
                "ban_address_reference"
            ],
            "minimum_gate": "Publier comme signal bio officiel uniquement avec agregats territoire, source Agence Bio citee, output surfaces VI normalise ou badge partiel explicite.",
            "copy_sentence": "Bio vin : operateurs engages, certificateurs et prochain jalon surfaces viticoles bio/conversion pour qualifier la durabilite d un territoire.",
            "visual_family": "sustainability_badge"
        },
        {
            "key": "supply_market_context_score",
            "label": "Supply & Market Context Score",
            "question": "Le territoire dispose-t-il d un contexte offre, foncier et marche assez robuste pour enrichir l analyse ?",
            "scale": "0-100",
            "formula": "0.25 * production_context + 0.20 * stock_context + 0.20 * land_value_context + 0.20 * bulk_price_context + 0.15 * freshness_gate",
            "weights": {
                "production_context": 25,
                "stock_context": 20,
                "land_value_context": 20,
                "bulk_price_context": 20,
                "freshness_gate": 15
            },
            "source_stack": [
                "dgddi_vitivinicole_stocks_harvests",
                "agreste_vineyard_land_values",
                "franceagrimer_bulk_prices",
                "agreste_viticulture_territorial",
                "source_refresh_policy"
            ],
            "minimum_gate": "Score a utiliser comme contexte secondaire tant que DGDDI/FranceAgriMer/Agreste ne sont pas normalises et frais.",
            "copy_sentence": "Contexte offre/marche : production, stocks, foncier et prix servent de cadrage, pas de promesse principale.",
            "visual_family": "market_context"
        },
        {
            "key": "map_publication_readiness",
            "label": "Map Publication Readiness",
            "question": "Les lieux peuvent-ils etre affiches sur une carte publique avec un niveau de confiance suffisant ?",
            "scale": "0-100",
            "formula": "0.35 * geocoded_rate + 0.25 * address_score + 0.15 * source_type_clarity + 0.15 * public_opening_confidence + 0.10 * privacy_gate",
            "weights": {
                "geocoded_rate": 35,
                "address_score": 25,
                "source_type_clarity": 15,
                "public_opening_confidence": 15,
                "privacy_gate": 10
            },
            "source_stack": [
                "ban_address_reference",
                "datatourisme_oenotourism",
                "sirene_wine_establishments",
                "atout_france_classified_accommodations",
                "tourisme_handicap_establishments"
            ],
            "minimum_gate": "Ne pas afficher de lieux nominatifs si adresse, ouverture au public ou statut RGPD ne sont pas clarifies.",
            "copy_sentence": "Readiness carte : mieux vaut moins de points, mais geocodes, sources et caveates.",
            "visual_family": "source_operations"
        }
    ],
    "normalization_rules": [
        {
            "key": "min_max_territory",
            "label": "Min-max territorial",
            "rule": "Normaliser les volumes par famille de territoire comparable avant pondération."
        },
        {
            "key": "coverage_penalty",
            "label": "Penalite de couverture",
            "rule": "Appliquer une penalite si la source couvre un perimetre plus large que le territoire affiche."
        },
        {
            "key": "pipeline_cap",
            "label": "Plafond pipeline",
            "rule": "Un score alimente majoritairement par sources metadata_only ou pipeline ne peut pas depasser 59/100."
        },
        {
            "key": "gate_override",
            "label": "Publication Gate prioritaire",
            "rule": "Le Publication Gate peut bloquer un score meme si la formule numerique est elevee."
        },
        {
            "key": "caveat_required",
            "label": "Caveat obligatoire",
            "rule": "Aucun score ne sort sans caveat source et perimetre."
        }
    ],
    "copy_markdown": "# Reference Territory KPI Formula Book\n\nLivre de formules pour rendre les KPI territoire Winerix coherents, ponderes, caveates et comparables.\n\n## Formules\n\n### Territory Reference Score\n- Cle : `territory_reference_score`\n- Question : Le territoire est-il assez prouve, source et caveate pour etre publie comme reference Winerix ?\n- Echelle : 0-100\n- Formule : `0.35 * regulatory_proof + 0.20 * source_fidelity + 0.15 * vineyard_footprint + 0.15 * data_freshness + 0.15 * publication_readiness`\n- Sources : inao_aoc_aop_communes, inao_siqo_products, eambrosia_gi, rpg_parcels, reference_source_fidelity, reference_publication_gate\n- Gate minimum : Publier seulement si les preuves INAO/eAmbrosia/SIQO sont visibles et si le caveat principal est present.\n- Copy : Score reference : synthese ponderee des preuves officielles, de la fidelite source, de l empreinte viticole et du gate de publication.\n- Famille visuelle : reference_authority\n- Poids :\n  - regulatory_proof : 35%\n  - source_fidelity : 20%\n  - vineyard_footprint : 15%\n  - data_freshness : 15%\n  - publication_readiness : 15%\n\n### Oenotourism Readiness Score\n- Cle : `oenotourism_readiness_score`\n- Question : Le territoire a-t-il assez d offre, de capacite et de labels pour soutenir une promesse oenotouristique ?\n- Echelle : 0-100\n- Formule : `0.20 * wine_offer_density + 0.17 * accommodation_capacity + 0.14 * tourism_demand_signal + 0.12 * destination_label_signal + 0.11 * quality_reception_signal + 0.08 * bike_access_signal + 0.08 * accessibility_signal + 0.10 * address_quality`\n- Sources : datatourisme_oenotourism, insee_tourism_capacity_communes, insee_tourism_occupancy, atout_france_classified_accommodations, vignobles_decouvertes, qualite_tourisme_establishments, bnsc_bike_parking, tourisme_handicap_establishments, ban_address_reference\n- Gate minimum : Ne jamais decrire ce score comme frequentation oenotouristique : Insee mesure la demande hebergements generale, a croiser avec offre vin.\n- Copy : Readiness oenotourisme : offres vin, capacite, demande touristique Insee, labels, Qualite Tourisme, mobilite douce, accessibilite et adresse dans un score caveate.\n- Famille visuelle : oenotourism_capacity\n- Poids :\n  - wine_offer_density : 20%\n  - accommodation_capacity : 17%\n  - tourism_demand_signal : 14%\n  - destination_label_signal : 12%\n  - quality_reception_signal : 11%\n  - bike_access_signal : 8%\n  - accessibility_signal : 8%\n  - address_quality : 10%\n\n### Wine Business Density Score\n- Cle : `wine_business_density_score`\n- Question : Le territoire concentre-t-il assez d acteurs vin pour justifier une priorite produit, commerciale ou partenaire ?\n- Echelle : 0-100\n- Formule : `0.40 * active_wine_establishment_density + 0.20 * core_naf_share + 0.15 * geocoding_quality + 0.15 * sustainability_signal + 0.10 * source_activation_status`\n- Sources : sirene_wine_establishments, wine_naf_codes, ban_address_reference, hve_certified_estates, source_activation_status\n- Gate minimum : Publier en agrege si Sirene/HVE ne sont pas relus nominativement ; marquer pipeline si le stock Sirene manque.\n- Copy : Densite business : volume d etablissements vin, part coeur filiere, qualite geocodage et signaux HVE.\n- Famille visuelle : business_density\n- Poids :\n  - active_wine_establishment_density : 40%\n  - core_naf_share : 20%\n  - geocoding_quality : 15%\n  - sustainability_signal : 15%\n  - source_activation_status : 10%\n\n### Sustainable Wine Signal\n- Cle : `sustainable_wine_signal`\n- Question : Le territoire possede-t-il des signaux environnementaux officiels exploitables sans surpromesse ?\n- Echelle : 0-100\n- Formule : `0.30 * hve_wine_related_density + 0.25 * organic_wine_operator_density + 0.15 * siqo_product_signal + 0.10 * vineyard_surface_context + 0.10 * source_fidelity + 0.10 * caveat_quality`\n- Sources : hve_certified_estates, agencebio_organic_wine, inao_siqo_products, rpg_parcels, agreste_viticulture_territorial, reference_source_fidelity\n- Gate minimum : Toujours distinguer HVE, Bio et SIQO ; publier les operateurs bio en agregat territoire avant listing nominatif.\n- Copy : Signal durabilite : HVE, bio vin Agence Bio, produits SIQO et surface viticole, avec caveats distincts par source.\n- Famille visuelle : wine_territory\n- Poids :\n  - hve_wine_related_density : 30%\n  - organic_wine_operator_density : 25%\n  - siqo_product_signal : 15%\n  - vineyard_surface_context : 10%\n  - source_fidelity : 10%\n  - caveat_quality : 10%\n\n### Organic Wine Sustainability Score\n- Cle : `organic_wine_sustainability_score`\n- Question : Le territoire dispose-t-il d un signal bio vin officiel assez robuste pour enrichir la lecture durabilite ?\n- Echelle : 0-100\n- Formule : `0.45 * organic_operator_density + 0.25 * organic_viticulture_surface_context + 0.15 * certifier_diversity_signal + 0.15 * hve_complement_signal`\n- Sources : agencebio_organic_wine, agencebio_organic_viticulture_surfaces, hve_certified_estates, sirene_wine_establishments, ban_address_reference\n- Gate minimum : Publier comme signal bio officiel uniquement avec agregats territoire, source Agence Bio citee, output surfaces VI normalise ou badge partiel explicite.\n- Copy : Bio vin : operateurs engages, certificateurs et prochain jalon surfaces viticoles bio/conversion pour qualifier la durabilite d un territoire.\n- Famille visuelle : sustainability_badge\n- Poids :\n  - organic_operator_density : 45%\n  - organic_viticulture_surface_context : 25%\n  - certifier_diversity_signal : 15%\n  - hve_complement_signal : 15%\n\n### Supply & Market Context Score\n- Cle : `supply_market_context_score`\n- Question : Le territoire dispose-t-il d un contexte offre, foncier et marche assez robuste pour enrichir l analyse ?\n- Echelle : 0-100\n- Formule : `0.25 * production_context + 0.20 * stock_context + 0.20 * land_value_context + 0.20 * bulk_price_context + 0.15 * freshness_gate`\n- Sources : dgddi_vitivinicole_stocks_harvests, agreste_vineyard_land_values, franceagrimer_bulk_prices, agreste_viticulture_territorial, source_refresh_policy\n- Gate minimum : Score a utiliser comme contexte secondaire tant que DGDDI/FranceAgriMer/Agreste ne sont pas normalises et frais.\n- Copy : Contexte offre/marche : production, stocks, foncier et prix servent de cadrage, pas de promesse principale.\n- Famille visuelle : market_context\n- Poids :\n  - production_context : 25%\n  - stock_context : 20%\n  - land_value_context : 20%\n  - bulk_price_context : 20%\n  - freshness_gate : 15%\n\n### Map Publication Readiness\n- Cle : `map_publication_readiness`\n- Question : Les lieux peuvent-ils etre affiches sur une carte publique avec un niveau de confiance suffisant ?\n- Echelle : 0-100\n- Formule : `0.35 * geocoded_rate + 0.25 * address_score + 0.15 * source_type_clarity + 0.15 * public_opening_confidence + 0.10 * privacy_gate`\n- Sources : ban_address_reference, datatourisme_oenotourism, sirene_wine_establishments, atout_france_classified_accommodations, tourisme_handicap_establishments\n- Gate minimum : Ne pas afficher de lieux nominatifs si adresse, ouverture au public ou statut RGPD ne sont pas clarifies.\n- Copy : Readiness carte : mieux vaut moins de points, mais geocodes, sources et caveates.\n- Famille visuelle : source_operations\n- Poids :\n  - geocoded_rate : 35%\n  - address_score : 25%\n  - source_type_clarity : 15%\n  - public_opening_confidence : 15%\n  - privacy_gate : 10%\n\n## Regles de normalisation\n- **Min-max territorial** : Normaliser les volumes par famille de territoire comparable avant pondération.\n- **Penalite de couverture** : Appliquer une penalite si la source couvre un perimetre plus large que le territoire affiche.\n- **Plafond pipeline** : Un score alimente majoritairement par sources metadata_only ou pipeline ne peut pas depasser 59/100.\n- **Publication Gate prioritaire** : Le Publication Gate peut bloquer un score meme si la formule numerique est elevee.\n- **Caveat obligatoire** : Aucun score ne sort sans caveat source et perimetre.\n"
}