{
  "version": "V20.98",
  "title": "Registre de chiffrage reproductible — Bouclier numérique de la France",
  "doctrine": "Architecture de chiffrage publique : aucune valeur monétaire inconnue n’est remplacée par zéro. Les coûts récurrents sont séparés année par année ; le financement transféré entre budgets publics ne réduit pas mécaniquement le coût public consolidé.",
  "formula_4y": "NET_4Y = CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
  "formula_symbols": {
    "CAPEX": "investissements initiaux attribuables au programme",
    "OPEX_Y1..Y4": "fonctionnement récurrent, calculé séparément pour chaque année",
    "TRANSITION": "migration, double exploitation, formation ou bascule",
    "MUTUALISATION_SAVINGS_4Y": "économies de mutualisation démontrées sur quatre ans",
    "EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y": "part de crédits publics existants couvrant exactement le même objet et éligible à déduction après preuve de périmètre",
    "EXTERNAL_COFINANCING_4Y": "cofinancement externe au budget public consolidé si juridiquement et comptablement déductible",
    "TRANSFERRED_FUNDING": "transfert entre administrations ; change le propriétaire du financement mais ne réduit pas, à lui seul, le coût public consolidé"
  },
  "public_budget_anchors": [
    {
      "anchor_id": "BUD-001",
      "name": "Investissements numériques/cyber annoncés par le Gouvernement en avril 2026",
      "value_eur": 200000000,
      "value_type": "crédit annoncé / budget existant ou à ouvrir",
      "scope": "applications, détection, cryptographie post-quantique ; allocation exacte par action Delta-Sierra non connue",
      "deductible_now": "no",
      "reason": "ne pas soustraire tant que les crédits ne sont pas ventilés action par action",
      "source": "https://www.info.gouv.fr/actualite/cybersecurite-le-premier-ministre-annonce-un-plan-d-action-pour-renforcer-la-protection-numerique-de-l-etat",
      "source_date": "2026-04-30",
      "included_in_anchor_id": "",
      "overlap_status": "possible_overlap_with_future_ministerial_5pct"
    },
    {
      "anchor_id": "BUD-002",
      "name": "Cible de 5 % des budgets numériques ministériels dédiés au cyber dès 2027",
      "value_eur": "",
      "value_type": "pourcentage de budget existant",
      "scope": "ministères ; assiette monétaire consolidée non fournie dans la source utilisée",
      "deductible_now": "no",
      "reason": "montant non calculable sans assiette des budgets numériques de chaque ministère",
      "source": "https://www.info.gouv.fr/actualite/cybersecurite-le-premier-ministre-annonce-un-plan-d-action-pour-renforcer-la-protection-numerique-de-l-etat",
      "source_date": "2026-04-30",
      "included_in_anchor_id": "",
      "overlap_status": "amount_unknown"
    },
    {
      "anchor_id": "BUD-003",
      "name": "Crédits de paiement 2026 de l’action 02 du programme 129",
      "value_eur": 431083302,
      "value_type": "crédits publics observés",
      "scope": "Coordination de la sécurité et de la défense ; périmètre plus large que la seule cybersécurité",
      "deductible_now": "no",
      "reason": "inclut SGDSN, ANSSI, Viginum, OSIIC et autres fonctions ; ne peut être assimilé au budget Bouclier",
      "source": "https://www.senat.fr/rap/a25-145-9/a25-145-9_mono.html",
      "source_date": "2025-11",
      "included_in_anchor_id": "",
      "overlap_status": "parent_scope"
    },
    {
      "anchor_id": "BUD-004",
      "name": "Crédits 2026 du SGDSN dans l’action 02",
      "value_eur": 318000000,
      "value_type": "crédits publics observés",
      "scope": "SGDSN incluant notamment ANSSI, OSIIC et Viginum",
      "deductible_now": "no",
      "reason": "périmètre agrégé ; ventilation Bouclier non disponible",
      "source": "https://www.senat.fr/rap/a25-141-9/a25-141-91.html",
      "source_date": "2025-11",
      "included_in_anchor_id": "BUD-003",
      "overlap_status": "subset_confirmed_by_budget_scope"
    }
  ],
  "actions": [
    {
      "action_id": "BN-01",
      "action_number": 1,
      "title": "Déclencher la cellule d’audit cyber de crise",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Premier ministre / SGDSN",
      "vehicle": "Décret et instruction interministérielle",
      "deadline": "H+24",
      "refs": "[O03][O06]",
      "formula_id": "COST-BN-01-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-02",
      "action_number": 2,
      "title": "Geler tout nouvel accès permanent de prestataire",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / DNUM / RSSI",
      "vehicle": "Instruction + clauses contractuelles",
      "deadline": "H+24",
      "refs": "[O01][O02][O07]",
      "formula_id": "COST-BN-02-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-03",
      "action_number": 3,
      "title": "Inventorier les comptes privilégiés",
      "cost_family": "identity",
      "cost_family_label": "Identités / PAM / MFA",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de comptes privilégiés Tier 0/1",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-IDENTITY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_u=utilisateurs/comptes; L_u=coût annuel par utilisateur; N_h=clefs ou matériels; P_h=prix unitaire; J_i=jours d’intégration; TJM=tarif journalier moyen",
      "missing_inputs": "nombre de comptes privilégiés Tier 0/1 ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Instruction technique",
      "deadline": "H+72",
      "refs": "[O02][O13]",
      "formula_id": "COST-BN-03-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MATERIEL × P_MATERIEL + J_INTEGRATION × TJM",
      "opex_y1_formula": "N_COMPTES_Y1 × LICENCE_ANNUELLE_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_COMPTES_Y2 × LICENCE_ANNUELLE_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_COMPTES_Y3 × LICENCE_ANNUELLE_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_COMPTES_Y4 × LICENCE_ANNUELLE_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION × TJM + FORMATION_INITIALE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_u × L_u + N_h × P_h + J_i × TJM"
    },
    {
      "action_id": "BN-04",
      "action_number": 4,
      "title": "MFA résistante au phishing pour les privilèges",
      "cost_family": "identity",
      "cost_family_label": "Identités / PAM / MFA",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de comptes privilégiés et nombre de facteurs matériels",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-IDENTITY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_u=utilisateurs/comptes; L_u=coût annuel par utilisateur; N_h=clefs ou matériels; P_h=prix unitaire; J_i=jours d’intégration; TJM=tarif journalier moyen",
      "missing_inputs": "nombre de comptes privilégiés et nombre de facteurs matériels ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DINUM",
      "vehicle": "Référentiel obligatoire",
      "deadline": "J+14",
      "refs": "[O02][O13]",
      "formula_id": "COST-BN-04-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "N_CLES_FIDO × P_CLE_FIDO + N_POSTES × J_ENROLEMENT × TJM",
      "opex_y1_formula": "N_COMPTES_Y1 × LICENCE_MFA_Y1 + SUPPORT_Y1",
      "opex_y2_formula": "N_COMPTES_Y2 × LICENCE_MFA_Y2 + SUPPORT_Y2",
      "opex_y3_formula": "N_COMPTES_Y3 × LICENCE_MFA_Y3 + SUPPORT_Y3",
      "opex_y4_formula": "N_COMPTES_Y4 × LICENCE_MFA_Y4 + SUPPORT_Y4",
      "transition_formula": "FORMATION_INITIALE + J_MIGRATION_IDENTITES × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_u × L_u + N_h × P_h + J_i × TJM"
    },
    {
      "action_id": "BN-05",
      "action_number": 5,
      "title": "Supprimer comptes génériques et partagés",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DNUM / RH / RSSI",
      "vehicle": "Instruction",
      "deadline": "J+30",
      "refs": "[O02]",
      "formula_id": "COST-BN-05-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-06",
      "action_number": 6,
      "title": "Accès administrateur « juste à temps »",
      "cost_family": "identity",
      "cost_family_label": "Identités / PAM / MFA",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de comptes privilégiés et opérations JIT",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-IDENTITY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_u=utilisateurs/comptes; L_u=coût annuel par utilisateur; N_h=clefs ou matériels; P_h=prix unitaire; J_i=jours d’intégration; TJM=tarif journalier moyen",
      "missing_inputs": "nombre de comptes privilégiés et opérations JIT ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / DNUM",
      "vehicle": "Marché-cadre + référentiel",
      "deadline": "J+100",
      "refs": "[O02]",
      "formula_id": "COST-BN-06-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MATERIEL × P_MATERIEL + J_INTEGRATION × TJM",
      "opex_y1_formula": "N_COMPTES_Y1 × LICENCE_ANNUELLE_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_COMPTES_Y2 × LICENCE_ANNUELLE_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_COMPTES_Y3 × LICENCE_ANNUELLE_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_COMPTES_Y4 × LICENCE_ANNUELLE_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION × TJM + FORMATION_INITIALE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_u × L_u + N_h × P_h + J_i × TJM"
    },
    {
      "action_id": "BN-07",
      "action_number": 7,
      "title": "Postes d’administration dédiés",
      "cost_family": "identity",
      "cost_family_label": "Identités / PAM / MFA",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de postes d’administration dédiés",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-IDENTITY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_u=utilisateurs/comptes; L_u=coût annuel par utilisateur; N_h=clefs ou matériels; P_h=prix unitaire; J_i=jours d’intégration; TJM=tarif journalier moyen",
      "missing_inputs": "nombre de postes d’administration dédiés ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Référentiel",
      "deadline": "J+100",
      "refs": "[O15]",
      "formula_id": "COST-BN-07-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MATERIEL × P_MATERIEL + J_INTEGRATION × TJM",
      "opex_y1_formula": "N_COMPTES_Y1 × LICENCE_ANNUELLE_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_COMPTES_Y2 × LICENCE_ANNUELLE_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_COMPTES_Y3 × LICENCE_ANNUELLE_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_COMPTES_Y4 × LICENCE_ANNUELLE_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION × TJM + FORMATION_INITIALE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_u × L_u + N_h × P_h + J_i × TJM"
    },
    {
      "action_id": "BN-08",
      "action_number": 8,
      "title": "Cartographie du graphe d’identités",
      "cost_family": "identity",
      "cost_family_label": "Identités / PAM / MFA",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-IDENTITY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_u=utilisateurs/comptes; L_u=coût annuel par utilisateur; N_h=clefs ou matériels; P_h=prix unitaire; J_i=jours d’intégration; TJM=tarif journalier moyen",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / DNUM",
      "vehicle": "Programme technique",
      "deadline": "J+45",
      "refs": "[O02][O13]",
      "formula_id": "COST-BN-08-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MATERIEL × P_MATERIEL + J_INTEGRATION × TJM",
      "opex_y1_formula": "N_COMPTES_Y1 × LICENCE_ANNUELLE_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_COMPTES_Y2 × LICENCE_ANNUELLE_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_COMPTES_Y3 × LICENCE_ANNUELLE_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_COMPTES_Y4 × LICENCE_ANNUELLE_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION × TJM + FORMATION_INITIALE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_u × L_u + N_h × P_h + J_i × TJM"
    },
    {
      "action_id": "BN-09",
      "action_number": 9,
      "title": "Réauthentification contextuelle",
      "cost_family": "identity",
      "cost_family_label": "Identités / PAM / MFA",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-IDENTITY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_u=utilisateurs/comptes; L_u=coût annuel par utilisateur; N_h=clefs ou matériels; P_h=prix unitaire; J_i=jours d’intégration; TJM=tarif journalier moyen",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / métiers",
      "vehicle": "Référentiel",
      "deadline": "J+100",
      "refs": "[O02]",
      "formula_id": "COST-BN-09-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MATERIEL × P_MATERIEL + J_INTEGRATION × TJM",
      "opex_y1_formula": "N_COMPTES_Y1 × LICENCE_ANNUELLE_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_COMPTES_Y2 × LICENCE_ANNUELLE_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_COMPTES_Y3 × LICENCE_ANNUELLE_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_COMPTES_Y4 × LICENCE_ANNUELLE_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION × TJM + FORMATION_INITIALE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_u × L_u + N_h × P_h + J_i × TJM"
    },
    {
      "action_id": "BN-10",
      "action_number": 10,
      "title": "Double validation pour les exports les plus sensibles",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Métiers / DPO / RSSI",
      "vehicle": "Décret ou instruction selon périmètre",
      "deadline": "J+100",
      "refs": "[O02]",
      "formula_id": "COST-BN-10-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "N_APPS × J_WORKFLOW × TJM + N_CONNECTEURS × J_CONNECTEUR × TJM + CONFIG_IAM_PAM",
      "opex_y1_formula": "N_APPROBATEURS_Y1 × LICENCE_WORKFLOW_Y1 + SUPPORT_Y1 + ETP_ADMIN_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_APPROBATEURS_Y2 × LICENCE_WORKFLOW_Y2 + SUPPORT_Y2 + ETP_ADMIN_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_APPROBATEURS_Y3 × LICENCE_WORKFLOW_Y3 + SUPPORT_Y3 + ETP_ADMIN_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_APPROBATEURS_Y4 × LICENCE_WORKFLOW_Y4 + SUPPORT_Y4 + ETP_ADMIN_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN_WORKFLOWS + FORMATION_APPROBATEURS",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-11",
      "action_number": 11,
      "title": "Quotas et limiteurs d’extraction",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DNUM / éditeurs",
      "vehicle": "Référentiel applicatif",
      "deadline": "J+45",
      "refs": "[O02]",
      "formula_id": "COST-BN-11-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "N_APPS × J_QUOTA × TJM + N_API × J_RATE_LIMIT × TJM",
      "opex_y1_formula": "LICENCE_GATEWAY_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "LICENCE_GATEWAY_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "LICENCE_GATEWAY_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "LICENCE_GATEWAY_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "TESTS_CHARGE + BASCULE_PROGRESSIVE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-12",
      "action_number": 12,
      "title": "Autorisation objet par objet dans les API",
      "cost_family": "data",
      "cost_family_label": "Données / API / segmentation",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DATA",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_s=systèmes concernés; J_s=jours par système; TJM=tarif journalier; L=licences/outils; T=transition/migration",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DNUM / développeurs",
      "vehicle": "Standard de développement",
      "deadline": "J+100",
      "refs": "[O02]",
      "formula_id": "COST-BN-12-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_APPLICATIONS × J_MODIFICATION × TJM + INFRA_INITIALE",
      "opex_y1_formula": "LICENCES_Y1 + HEBERGEMENT_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "LICENCES_Y2 + HEBERGEMENT_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "LICENCES_Y3 + HEBERGEMENT_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "LICENCES_Y4 + HEBERGEMENT_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_s × J_s × TJM + L + T"
    },
    {
      "action_id": "BN-13",
      "action_number": 13,
      "title": "Journalisation de bout en bout",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "volume journalier de logs",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "volume journalier de logs ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Référentiel",
      "deadline": "J+45",
      "refs": "[O02][O13]",
      "formula_id": "COST-BN-13-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "INFRA_INITIALE + J_INTEGRATION × TJM",
      "opex_y1_formula": "V_LOG_JOUR_Y1 × 365 × P_INGESTION_Y1 + S_RETENTION_Y1 × P_STOCKAGE_Y1 + ETP_SOC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "V_LOG_JOUR_Y2 × 365 × P_INGESTION_Y2 + S_RETENTION_Y2 × P_STOCKAGE_Y2 + ETP_SOC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "V_LOG_JOUR_Y3 × 365 × P_INGESTION_Y3 + S_RETENTION_Y3 × P_STOCKAGE_Y3 + ETP_SOC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "V_LOG_JOUR_Y4 × 365 × P_INGESTION_Y4 + S_RETENTION_Y4 × P_STOCKAGE_Y4 + ETP_SOC_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN_LOGS + J_MIGRATION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-14",
      "action_number": 14,
      "title": "Logs immuables et hors portée des administrateurs locaux",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "volume de logs à conservation immuable",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "volume de logs à conservation immuable ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / ANSSI",
      "vehicle": "Architecture",
      "deadline": "J+100",
      "refs": "[O02]",
      "formula_id": "COST-BN-14-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "INFRA_INITIALE + J_INTEGRATION × TJM",
      "opex_y1_formula": "V_LOG_JOUR_Y1 × 365 × P_INGESTION_Y1 + S_RETENTION_Y1 × P_STOCKAGE_Y1 + ETP_SOC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "V_LOG_JOUR_Y2 × 365 × P_INGESTION_Y2 + S_RETENTION_Y2 × P_STOCKAGE_Y2 + ETP_SOC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "V_LOG_JOUR_Y3 × 365 × P_INGESTION_Y3 + S_RETENTION_Y3 × P_STOCKAGE_Y3 + ETP_SOC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "V_LOG_JOUR_Y4 × 365 × P_INGESTION_Y4 + S_RETENTION_Y4 × P_STOCKAGE_Y4 + ETP_SOC_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN_LOGS + J_MIGRATION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-15",
      "action_number": 15,
      "title": "Détection comportementale des comptes légitimes",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de comptes et volume d’événements",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "nombre de comptes et volume d’événements ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SOC / PDIS",
      "vehicle": "Marché + règles de détection",
      "deadline": "J+45",
      "refs": "[O02][O13]",
      "formula_id": "COST-BN-15-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "INFRA_INITIALE + J_INTEGRATION × TJM",
      "opex_y1_formula": "V_LOG_JOUR_Y1 × 365 × P_INGESTION_Y1 + S_RETENTION_Y1 × P_STOCKAGE_Y1 + ETP_SOC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "V_LOG_JOUR_Y2 × 365 × P_INGESTION_Y2 + S_RETENTION_Y2 × P_STOCKAGE_Y2 + ETP_SOC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "V_LOG_JOUR_Y3 × 365 × P_INGESTION_Y3 + S_RETENTION_Y3 × P_STOCKAGE_Y3 + ETP_SOC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "V_LOG_JOUR_Y4 × 365 × P_INGESTION_Y4 + S_RETENTION_Y4 × P_STOCKAGE_Y4 + ETP_SOC_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN_LOGS + J_MIGRATION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-16",
      "action_number": 16,
      "title": "Blocage automatique des exfiltrations à haute confiance",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "flux d’exfiltration à surveiller et volume de données",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "flux d’exfiltration à surveiller et volume de données ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / SOC",
      "vehicle": "Doctrine de réponse",
      "deadline": "J+100",
      "refs": "[I02][O02]",
      "formula_id": "COST-BN-16-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "INFRA_INITIALE + J_INTEGRATION × TJM",
      "opex_y1_formula": "V_LOG_JOUR_Y1 × 365 × P_INGESTION_Y1 + S_RETENTION_Y1 × P_STOCKAGE_Y1 + ETP_SOC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "V_LOG_JOUR_Y2 × 365 × P_INGESTION_Y2 + S_RETENTION_Y2 × P_STOCKAGE_Y2 + ETP_SOC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "V_LOG_JOUR_Y3 × 365 × P_INGESTION_Y3 + S_RETENTION_Y3 × P_STOCKAGE_Y3 + ETP_SOC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "V_LOG_JOUR_Y4 × 365 × P_INGESTION_Y4 + S_RETENTION_Y4 × P_STOCKAGE_Y4 + ETP_SOC_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN_LOGS + J_MIGRATION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-17",
      "action_number": 17,
      "title": "Cartographier toutes les données sensibles",
      "cost_family": "data",
      "cost_family_label": "Données / API / segmentation",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DATA",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_s=systèmes concernés; J_s=jours par système; TJM=tarif journalier; L=licences/outils; T=transition/migration",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / DINUM / DPO",
      "vehicle": "Décret / référentiel",
      "deadline": "J+100",
      "refs": "[O04]",
      "formula_id": "COST-BN-17-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_APPLICATIONS × J_MODIFICATION × TJM + INFRA_INITIALE",
      "opex_y1_formula": "LICENCES_Y1 + HEBERGEMENT_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "LICENCES_Y2 + HEBERGEMENT_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "LICENCES_Y3 + HEBERGEMENT_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "LICENCES_Y4 + HEBERGEMENT_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_s × J_s × TJM + L + T"
    },
    {
      "action_id": "BN-18",
      "action_number": 18,
      "title": "Créer quatre niveaux fonctionnels de sensibilité",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / ANSSI",
      "vehicle": "Décret",
      "deadline": "J+100",
      "refs": "[O04][O06]",
      "formula_id": "COST-BN-18-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-19",
      "action_number": 19,
      "title": "Minimisation et purge automatiques",
      "cost_family": "data",
      "cost_family_label": "Données / API / segmentation",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DATA",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_s=systèmes concernés; J_s=jours par système; TJM=tarif journalier; L=licences/outils; T=transition/migration",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Métiers / DPO",
      "vehicle": "Instruction + automatisation",
      "deadline": "12 mois",
      "refs": "[O02]",
      "formula_id": "COST-BN-19-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_APPLICATIONS × J_MODIFICATION × TJM + INFRA_INITIALE",
      "opex_y1_formula": "LICENCES_Y1 + HEBERGEMENT_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "LICENCES_Y2 + HEBERGEMENT_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "LICENCES_Y3 + HEBERGEMENT_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "LICENCES_Y4 + HEBERGEMENT_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_s × J_s × TJM + L + T"
    },
    {
      "action_id": "BN-20",
      "action_number": 20,
      "title": "Découpler les grandes bases nationales",
      "cost_family": "data",
      "cost_family_label": "Données / API / segmentation",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DATA",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_s=systèmes concernés; J_s=jours par système; TJM=tarif journalier; L=licences/outils; T=transition/migration",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DNUM / architectes",
      "vehicle": "Programme d’architecture",
      "deadline": "24 mois",
      "refs": "[O02]",
      "formula_id": "COST-BN-20-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_APPLICATIONS × J_MODIFICATION × TJM + INFRA_INITIALE",
      "opex_y1_formula": "LICENCES_Y1 + HEBERGEMENT_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "LICENCES_Y2 + HEBERGEMENT_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "LICENCES_Y3 + HEBERGEMENT_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "LICENCES_Y4 + HEBERGEMENT_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_s × J_s × TJM + L + T"
    },
    {
      "action_id": "BN-21",
      "action_number": 21,
      "title": "Inventaire national de la surface Internet",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre d’actifs exposés Internet",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "nombre d’actifs exposés Internet ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DINUM",
      "vehicle": "Service mutualisé",
      "deadline": "J+14 puis continu",
      "refs": "[O03]",
      "formula_id": "COST-BN-21-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-22",
      "action_number": 22,
      "title": "Scanner quotidiennement les vulnérabilités exposées",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre d’actifs scannés quotidiennement",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "nombre d’actifs scannés quotidiennement ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Service continu",
      "deadline": "J+14",
      "refs": "[M01][I02]",
      "formula_id": "COST-BN-22-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-23",
      "action_number": 23,
      "title": "Patching piloté par le risque",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Référentiel",
      "deadline": "J+30",
      "refs": "[I02][M04]",
      "formula_id": "COST-BN-23-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-24",
      "action_number": 24,
      "title": "Chaîne de patch industrialisée",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / DNUM",
      "vehicle": "Programme DevSecOps",
      "deadline": "18 mois",
      "refs": "[M03][M04]",
      "formula_id": "COST-BN-24-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-25",
      "action_number": 25,
      "title": "Revue IA du code source critique",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de dépôts de code critique",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "nombre de dépôts de code critique ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / INESIA / DNUM",
      "vehicle": "Programme sécurisé",
      "deadline": "J+100 pilote",
      "refs": "[M01][M03][O17]",
      "formula_id": "COST-BN-25-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-26",
      "action_number": 26,
      "title": "SBOM obligatoire",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de projets nécessitant un SBOM",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "nombre de projets nécessitant un SBOM ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / acheteurs",
      "vehicle": "Clauses marché",
      "deadline": "12 mois",
      "refs": "[O06]",
      "formula_id": "COST-BN-26-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-27",
      "action_number": 27,
      "title": "Signature des artefacts et builds reproductibles",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / DNUM",
      "vehicle": "Standard",
      "deadline": "18 mois",
      "refs": "[O06]",
      "formula_id": "COST-BN-27-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-28",
      "action_number": 28,
      "title": "Coffre-fort national des secrets",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / ANSSI",
      "vehicle": "Service mutualisé",
      "deadline": "12 mois",
      "refs": "[O15]",
      "formula_id": "COST-BN-28-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-29",
      "action_number": 29,
      "title": "Réduire drastiquement les interconnexions implicites",
      "cost_family": "data",
      "cost_family_label": "Données / API / segmentation",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DATA",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_s=systèmes concernés; J_s=jours par système; TJM=tarif journalier; L=licences/outils; T=transition/migration",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Architecture",
      "deadline": "24 mois",
      "refs": "[O06]",
      "formula_id": "COST-BN-29-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_APPLICATIONS × J_MODIFICATION × TJM + INFRA_INITIALE",
      "opex_y1_formula": "LICENCES_Y1 + HEBERGEMENT_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "LICENCES_Y2 + HEBERGEMENT_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "LICENCES_Y3 + HEBERGEMENT_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "LICENCES_Y4 + HEBERGEMENT_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_s × J_s × TJM + L + T"
    },
    {
      "action_id": "BN-30",
      "action_number": 30,
      "title": "Microsegmentation des environnements critiques",
      "cost_family": "data",
      "cost_family_label": "Données / API / segmentation",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DATA",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_s=systèmes concernés; J_s=jours par système; TJM=tarif journalier; L=licences/outils; T=transition/migration",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DNUM",
      "vehicle": "Programme technique",
      "deadline": "24 mois",
      "refs": "[O06]",
      "formula_id": "COST-BN-30-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_APPLICATIONS × J_MODIFICATION × TJM + INFRA_INITIALE",
      "opex_y1_formula": "LICENCES_Y1 + HEBERGEMENT_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "LICENCES_Y2 + HEBERGEMENT_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "LICENCES_Y3 + HEBERGEMENT_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "LICENCES_Y4 + HEBERGEMENT_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_s × J_s × TJM + L + T"
    },
    {
      "action_id": "BN-31",
      "action_number": 31,
      "title": "Sauvegardes immuables et hors ligne",
      "cost_family": "resilience",
      "cost_family_label": "Sauvegarde / continuité / exercices",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "volume de sauvegardes critiques",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-RESILIENCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "S=volume de sauvegarde; P_s=coût de stockage sécurisé; N_s=systèmes; J_t=jours de test/restauration; TJM=tarif journalier; I=infrastructure dédiée",
      "missing_inputs": "volume de sauvegardes critiques ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DNUM / métiers",
      "vehicle": "Référentiel",
      "deadline": "J+100 pour Tier 0",
      "refs": "[O06]",
      "formula_id": "COST-BN-31-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "CAPACITE_SAUVEGARDE × P_INFRA + J_INTEGRATION × TJM",
      "opex_y1_formula": "STOCKAGE_ANNUEL_Y1 + MAINTENANCE_Y1 + EXERCICES_Y1",
      "opex_y2_formula": "STOCKAGE_ANNUEL_Y2 + MAINTENANCE_Y2 + EXERCICES_Y2",
      "opex_y3_formula": "STOCKAGE_ANNUEL_Y3 + MAINTENANCE_Y3 + EXERCICES_Y3",
      "opex_y4_formula": "STOCKAGE_ANNUEL_Y4 + MAINTENANCE_Y4 + EXERCICES_Y4",
      "transition_formula": "DOUBLE_EXPLOITATION + MIGRATION_SAUVEGARDES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = S × P_s + N_s × J_t × TJM + I"
    },
    {
      "action_id": "BN-32",
      "action_number": 32,
      "title": "Restaurations chronométrées trimestrielles",
      "cost_family": "resilience",
      "cost_family_label": "Sauvegarde / continuité / exercices",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de systèmes critiques à restaurer",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-RESILIENCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "S=volume de sauvegarde; P_s=coût de stockage sécurisé; N_s=systèmes; J_t=jours de test/restauration; TJM=tarif journalier; I=infrastructure dédiée",
      "missing_inputs": "nombre de systèmes critiques à restaurer ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DNUM / métiers",
      "vehicle": "Instruction",
      "deadline": "Trimestriel",
      "refs": "[O06]",
      "formula_id": "COST-BN-32-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "CAPACITE_SAUVEGARDE × P_INFRA + J_INTEGRATION × TJM",
      "opex_y1_formula": "STOCKAGE_ANNUEL_Y1 + MAINTENANCE_Y1 + EXERCICES_Y1",
      "opex_y2_formula": "STOCKAGE_ANNUEL_Y2 + MAINTENANCE_Y2 + EXERCICES_Y2",
      "opex_y3_formula": "STOCKAGE_ANNUEL_Y3 + MAINTENANCE_Y3 + EXERCICES_Y3",
      "opex_y4_formula": "STOCKAGE_ANNUEL_Y4 + MAINTENANCE_Y4 + EXERCICES_Y4",
      "transition_formula": "DOUBLE_EXPLOITATION + MIGRATION_SAUVEGARDES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = S × P_s + N_s × J_t × TJM + I"
    },
    {
      "action_id": "BN-33",
      "action_number": 33,
      "title": "Mode dégradé pour chaque service vital",
      "cost_family": "resilience",
      "cost_family_label": "Sauvegarde / continuité / exercices",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-RESILIENCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "S=volume de sauvegarde; P_s=coût de stockage sécurisé; N_s=systèmes; J_t=jours de test/restauration; TJM=tarif journalier; I=infrastructure dédiée",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / ministères",
      "vehicle": "Plan de continuité",
      "deadline": "12 mois",
      "refs": "[O05][O06]",
      "formula_id": "COST-BN-33-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "CAPACITE_SAUVEGARDE × P_INFRA + J_INTEGRATION × TJM",
      "opex_y1_formula": "STOCKAGE_ANNUEL_Y1 + MAINTENANCE_Y1 + EXERCICES_Y1",
      "opex_y2_formula": "STOCKAGE_ANNUEL_Y2 + MAINTENANCE_Y2 + EXERCICES_Y2",
      "opex_y3_formula": "STOCKAGE_ANNUEL_Y3 + MAINTENANCE_Y3 + EXERCICES_Y3",
      "opex_y4_formula": "STOCKAGE_ANNUEL_Y4 + MAINTENANCE_Y4 + EXERCICES_Y4",
      "transition_formula": "DOUBLE_EXPLOITATION + MIGRATION_SAUVEGARDES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = S × P_s + N_s × J_t × TJM + I"
    },
    {
      "action_id": "BN-34",
      "action_number": 34,
      "title": "Exercice annuel « France hors ligne »",
      "cost_family": "resilience",
      "cost_family_label": "Sauvegarde / continuité / exercices",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-RESILIENCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "S=volume de sauvegarde; P_s=coût de stockage sécurisé; N_s=systèmes; J_t=jours de test/restauration; TJM=tarif journalier; I=infrastructure dédiée",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN",
      "vehicle": "Exercice national",
      "deadline": "Annuel",
      "refs": "[O06]",
      "formula_id": "COST-BN-34-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "SCENARIO_INITIAL + CYBER_RANGE_INITIAL",
      "opex_y1_formula": "J_PREPARATION_Y1 × TJM + N_PARTICIPANTS_Y1 × H_EXERCICE_Y1 × C_H_AGENT_Y1 + LOCATION_CYBERRANGE_Y1 + OBSERVATION_Y1 + RETEST_Y1",
      "opex_y2_formula": "J_PREPARATION_Y2 × TJM + N_PARTICIPANTS_Y2 × H_EXERCICE_Y2 × C_H_AGENT_Y2 + LOCATION_CYBERRANGE_Y2 + OBSERVATION_Y2 + RETEST_Y2",
      "opex_y3_formula": "J_PREPARATION_Y3 × TJM + N_PARTICIPANTS_Y3 × H_EXERCICE_Y3 × C_H_AGENT_Y3 + LOCATION_CYBERRANGE_Y3 + OBSERVATION_Y3 + RETEST_Y3",
      "opex_y4_formula": "J_PREPARATION_Y4 × TJM + N_PARTICIPANTS_Y4 × H_EXERCICE_Y4 × C_H_AGENT_Y4 + LOCATION_CYBERRANGE_Y4 + OBSERVATION_Y4 + RETEST_Y4",
      "transition_formula": "REX_INITIAL + MISE_A_JOUR_PLANS",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = S × P_s + N_s × J_t × TJM + I"
    },
    {
      "action_id": "BN-35",
      "action_number": 35,
      "title": "Marchés publics : sécurité en critère éliminatoire",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DAE / DINUM / ANSSI",
      "vehicle": "Réforme réglementaire + cahiers types",
      "deadline": "6 mois",
      "refs": "[O04][O06]",
      "formula_id": "COST-BN-35-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-36",
      "action_number": 36,
      "title": "Clause cyber souveraine obligatoire",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DAE / juristes",
      "vehicle": "Clauses types",
      "deadline": "6 mois",
      "refs": "[O01][O02]",
      "formula_id": "COST-BN-36-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-37",
      "action_number": 37,
      "title": "Interdire l’auto-audit des intégrateurs",
      "cost_family": "procurement",
      "cost_family_label": "Prestataires / audits / réponse à incident",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-PROCUREMENT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_a=audits/interventions; J_a=jours moyens; TJM=tarif journalier documenté; R=réserve/astreinte contractuelle",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DAE / ANSSI",
      "vehicle": "Règle de marché",
      "deadline": "Immédiat",
      "refs": "[O15][O16]",
      "formula_id": "COST-BN-37-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_CADRAGE × TJM",
      "opex_y1_formula": "N_AUDITS_Y1 × J_AUDIT × TJM + ASTREINTE_Y1 + RETESTS_Y1",
      "opex_y2_formula": "N_AUDITS_Y2 × J_AUDIT × TJM + ASTREINTE_Y2 + RETESTS_Y2",
      "opex_y3_formula": "N_AUDITS_Y3 × J_AUDIT × TJM + ASTREINTE_Y3 + RETESTS_Y3",
      "opex_y4_formula": "N_AUDITS_Y4 × J_AUDIT × TJM + ASTREINTE_Y4 + RETESTS_Y4",
      "transition_formula": "J_MISE_EN_CONFORMITE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_a × J_a × TJM + R"
    },
    {
      "action_id": "BN-38",
      "action_number": 38,
      "title": "PASSI obligatoire avant mise en production Tier 0",
      "cost_family": "procurement",
      "cost_family_label": "Prestataires / audits / réponse à incident",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de systèmes Tier 0 à auditer",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-PROCUREMENT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_a=audits/interventions; J_a=jours moyens; TJM=tarif journalier documenté; R=réserve/astreinte contractuelle",
      "missing_inputs": "nombre de systèmes Tier 0 à auditer ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Décret / référentiel",
      "deadline": "12 mois",
      "refs": "[O15][O16]",
      "formula_id": "COST-BN-38-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_CADRAGE × TJM",
      "opex_y1_formula": "N_AUDITS_Y1 × J_AUDIT × TJM + ASTREINTE_Y1 + RETESTS_Y1",
      "opex_y2_formula": "N_AUDITS_Y2 × J_AUDIT × TJM + ASTREINTE_Y2 + RETESTS_Y2",
      "opex_y3_formula": "N_AUDITS_Y3 × J_AUDIT × TJM + ASTREINTE_Y3 + RETESTS_Y3",
      "opex_y4_formula": "N_AUDITS_Y4 × J_AUDIT × TJM + ASTREINTE_Y4 + RETESTS_Y4",
      "transition_formula": "J_MISE_EN_CONFORMITE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_a × J_a × TJM + R"
    },
    {
      "action_id": "BN-39",
      "action_number": 39,
      "title": "Retest indépendant des corrections critiques",
      "cost_family": "procurement",
      "cost_family_label": "Prestataires / audits / réponse à incident",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de retests critiques",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-PROCUREMENT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_a=audits/interventions; J_a=jours moyens; TJM=tarif journalier documenté; R=réserve/astreinte contractuelle",
      "missing_inputs": "nombre de retests critiques ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / PASSI",
      "vehicle": "Procédure",
      "deadline": "Immédiat",
      "refs": "[O15]",
      "formula_id": "COST-BN-39-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_CADRAGE × TJM",
      "opex_y1_formula": "N_AUDITS_Y1 × J_AUDIT × TJM + ASTREINTE_Y1 + RETESTS_Y1",
      "opex_y2_formula": "N_AUDITS_Y2 × J_AUDIT × TJM + ASTREINTE_Y2 + RETESTS_Y2",
      "opex_y3_formula": "N_AUDITS_Y3 × J_AUDIT × TJM + ASTREINTE_Y3 + RETESTS_Y3",
      "opex_y4_formula": "N_AUDITS_Y4 × J_AUDIT × TJM + ASTREINTE_Y4 + RETESTS_Y4",
      "transition_formula": "J_MISE_EN_CONFORMITE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_a × J_a × TJM + R"
    },
    {
      "action_id": "BN-40",
      "action_number": 40,
      "title": "Contrats PRIS pré-négociés",
      "cost_family": "procurement",
      "cost_family_label": "Prestataires / audits / réponse à incident",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de contrats PRIS et niveau d’astreinte",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-PROCUREMENT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_a=audits/interventions; J_a=jours moyens; TJM=tarif journalier documenté; R=réserve/astreinte contractuelle",
      "missing_inputs": "nombre de contrats PRIS et niveau d’astreinte ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / DAE",
      "vehicle": "Accords-cadres",
      "deadline": "6 mois",
      "refs": "[O15][O16]",
      "formula_id": "COST-BN-40-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_CADRAGE × TJM",
      "opex_y1_formula": "N_AUDITS_Y1 × J_AUDIT × TJM + ASTREINTE_Y1 + RETESTS_Y1",
      "opex_y2_formula": "N_AUDITS_Y2 × J_AUDIT × TJM + ASTREINTE_Y2 + RETESTS_Y2",
      "opex_y3_formula": "N_AUDITS_Y3 × J_AUDIT × TJM + ASTREINTE_Y3 + RETESTS_Y3",
      "opex_y4_formula": "N_AUDITS_Y4 × J_AUDIT × TJM + ASTREINTE_Y4 + RETESTS_Y4",
      "transition_formula": "J_MISE_EN_CONFORMITE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_a × J_a × TJM + R"
    },
    {
      "action_id": "BN-41",
      "action_number": 41,
      "title": "SOC 24/7 mutualisé pour les petites entités publiques",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre d’entités raccordées au SOC mutualisé + volume de logs",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "nombre d’entités raccordées au SOC mutualisé + volume de logs ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / régions / ministères",
      "vehicle": "Programme national",
      "deadline": "24 mois",
      "refs": "[I01][O03]",
      "formula_id": "COST-BN-41-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "INFRA_INITIALE + J_INTEGRATION × TJM",
      "opex_y1_formula": "V_LOG_JOUR_Y1 × 365 × P_INGESTION_Y1 + S_RETENTION_Y1 × P_STOCKAGE_Y1 + ETP_SOC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "V_LOG_JOUR_Y2 × 365 × P_INGESTION_Y2 + S_RETENTION_Y2 × P_STOCKAGE_Y2 + ETP_SOC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "V_LOG_JOUR_Y3 × 365 × P_INGESTION_Y3 + S_RETENTION_Y3 × P_STOCKAGE_Y3 + ETP_SOC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "V_LOG_JOUR_Y4 × 365 × P_INGESTION_Y4 + S_RETENTION_Y4 × P_STOCKAGE_Y4 + ETP_SOC_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN_LOGS + J_MIGRATION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-42",
      "action_number": 42,
      "title": "Centre national de renseignement de fuites",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / OFAC / services compétents",
      "vehicle": "Organisation interservices",
      "deadline": "J+100",
      "refs": "[O02][P05][P06]",
      "formula_id": "COST-BN-42-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "PLATEFORME_THREAT_INTEL_INITIALE + CONNECTEURS_SOURCES + J_INTEGRATION × TJM",
      "opex_y1_formula": "ABONNEMENTS_FEEDS_Y1 + ETP_ANALYSTES_Y1 × C_ETP_Y1 + STOCKAGE_Y1",
      "opex_y2_formula": "ABONNEMENTS_FEEDS_Y2 + ETP_ANALYSTES_Y2 × C_ETP_Y2 + STOCKAGE_Y2",
      "opex_y3_formula": "ABONNEMENTS_FEEDS_Y3 + ETP_ANALYSTES_Y3 × C_ETP_Y3 + STOCKAGE_Y3",
      "opex_y4_formula": "ABONNEMENTS_FEEDS_Y4 + ETP_ANALYSTES_Y4 × C_ETP_Y4 + STOCKAGE_Y4",
      "transition_formula": "MIGRATION_HISTORIQUE + FORMATION_ANALYSTES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-43",
      "action_number": 43,
      "title": "Conserver l’historique des pseudonymes et revendications",
      "cost_family": "logging",
      "cost_family_label": "Journaux / SOC / détection / DLP",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-LOGGING",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "V_j=volume quotidien de journaux; P_i=coût d’ingestion; S_r=volume conservé; P_s=coût de stockage; E=ETP; C_E=coût employeur; J_i=jours d’intégration; TJM=tarif journalier",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Services compétents",
      "vehicle": "Doctrine / outils",
      "deadline": "Continu",
      "refs": "[P05]",
      "formula_id": "COST-BN-43-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "BASE_HISTORIQUE_INITIALE + J_MODELE_DONNEES × TJM",
      "opex_y1_formula": "STOCKAGE_Y1 + ABONNEMENTS_SOURCES_Y1 + ETP_ANALYSTE_Y1 × C_ETP_Y1",
      "opex_y2_formula": "STOCKAGE_Y2 + ABONNEMENTS_SOURCES_Y2 + ETP_ANALYSTE_Y2 × C_ETP_Y2",
      "opex_y3_formula": "STOCKAGE_Y3 + ABONNEMENTS_SOURCES_Y3 + ETP_ANALYSTE_Y3 × C_ETP_Y3",
      "opex_y4_formula": "STOCKAGE_Y4 + ABONNEMENTS_SOURCES_Y4 + ETP_ANALYSTE_Y4 × C_ETP_Y4",
      "transition_formula": "IMPORT_ARCHIVES + DEDOUBLONNAGE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = V_j × 365 × P_i + S_r × P_s + E × C_E + J_i × TJM"
    },
    {
      "action_id": "BN-44",
      "action_number": 44,
      "title": "Canal national de divulgation responsable",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DINUM / Justice",
      "vehicle": "Loi + politique de divulgation",
      "deadline": "12 mois",
      "refs": "[M04]",
      "formula_id": "COST-BN-44-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-45",
      "action_number": 45,
      "title": "Bug bounty ciblé sur services publics exposés",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de programmes bug bounty et enveloppe de primes",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "nombre de programmes bug bounty et enveloppe de primes ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / ANSSI",
      "vehicle": "Marchés / plateforme",
      "deadline": "12 mois",
      "refs": "[M04]",
      "formula_id": "COST-BN-45-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "MISE_EN_PLACE_PROGRAMMES + J_CADRAGE × TJM",
      "opex_y1_formula": "N_PROGRAMMES_Y1 × FRAIS_PLATEFORME_Y1 + ENVELOPPE_PRIMES_Y1 + ETP_TRIAGE_Y1 × C_ETP_Y1 + RETESTS_Y1",
      "opex_y2_formula": "N_PROGRAMMES_Y2 × FRAIS_PLATEFORME_Y2 + ENVELOPPE_PRIMES_Y2 + ETP_TRIAGE_Y2 × C_ETP_Y2 + RETESTS_Y2",
      "opex_y3_formula": "N_PROGRAMMES_Y3 × FRAIS_PLATEFORME_Y3 + ENVELOPPE_PRIMES_Y3 + ETP_TRIAGE_Y3 × C_ETP_Y3 + RETESTS_Y3",
      "opex_y4_formula": "N_PROGRAMMES_Y4 × FRAIS_PLATEFORME_Y4 + ENVELOPPE_PRIMES_Y4 + ETP_TRIAGE_Y4 × C_ETP_Y4 + RETESTS_Y4",
      "transition_formula": "CHARTE_JURIDIQUE + INTEGRATION_CANAUX",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-46",
      "action_number": 46,
      "title": "INESIA : laboratoire cyber des modèles frontières",
      "cost_family": "ai",
      "cost_family_label": "IA cyber / modèles frontières",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "capacité de calcul + équipe INESIA dédiée",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-AI",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "G=capacité de calcul consommée; P_g=coût unitaire de calcul; E=ETP; C_E=coût employeur; D=données/évaluation; S=sécurisation de l’environnement",
      "missing_inputs": "capacité de calcul + équipe INESIA dédiée ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / INESIA / ANSSI",
      "vehicle": "Programmation budgétaire",
      "deadline": "12 mois",
      "refs": "[O17][M01]",
      "formula_id": "COST-BN-46-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "INFRA_LAB_SECURISEE + CAPACITE_CALCUL_INITIALE + J_INTEGRATION × TJM",
      "opex_y1_formula": "GPU_HEURES_Y1 × P_GPU_HEURE_Y1 + ETP_CHERCHEURS_Y1 × C_ETP_Y1 + LICENCES_Y1 + DONNEES_Y1",
      "opex_y2_formula": "GPU_HEURES_Y2 × P_GPU_HEURE_Y2 + ETP_CHERCHEURS_Y2 × C_ETP_Y2 + LICENCES_Y2 + DONNEES_Y2",
      "opex_y3_formula": "GPU_HEURES_Y3 × P_GPU_HEURE_Y3 + ETP_CHERCHEURS_Y3 × C_ETP_Y3 + LICENCES_Y3 + DONNEES_Y3",
      "opex_y4_formula": "GPU_HEURES_Y4 × P_GPU_HEURE_Y4 + ETP_CHERCHEURS_Y4 × C_ETP_Y4 + LICENCES_Y4 + DONNEES_Y4",
      "transition_formula": "HOMOLOGATION + MIGRATION_OUTILS",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = G × P_g + E × C_E + D + S"
    },
    {
      "action_id": "BN-47",
      "action_number": 47,
      "title": "Benchmark classifié français/européen",
      "cost_family": "ai",
      "cost_family_label": "IA cyber / modèles frontières",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de benchmarks et capacité de calcul sécurisée",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-AI",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "G=capacité de calcul consommée; P_g=coût unitaire de calcul; E=ETP; C_E=coût employeur; D=données/évaluation; S=sécurisation de l’environnement",
      "missing_inputs": "nombre de benchmarks et capacité de calcul sécurisée ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / INESIA / partenaires UE",
      "vehicle": "Accord intergouvernemental",
      "deadline": "18 mois",
      "refs": "[O20][O17]",
      "formula_id": "COST-BN-47-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "CYBER_RANGE_CLASSE + DATASETS_BENCHMARK_INITIAUX",
      "opex_y1_formula": "N_CAMPAGNES_Y1 × GPU_HEURES_CAMPAGNE × P_GPU_HEURE_Y1 + ETP_EVALUATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_CAMPAGNES_Y2 × GPU_HEURES_CAMPAGNE × P_GPU_HEURE_Y2 + ETP_EVALUATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_CAMPAGNES_Y3 × GPU_HEURES_CAMPAGNE × P_GPU_HEURE_Y3 + ETP_EVALUATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_CAMPAGNES_Y4 × GPU_HEURES_CAMPAGNE × P_GPU_HEURE_Y4 + ETP_EVALUATION_Y4 × C_ETP_Y4",
      "transition_formula": "HOMOLOGATION + SECURISATION_ENVIRONNEMENT",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = G × P_g + E × C_E + D + S"
    },
    {
      "action_id": "BN-48",
      "action_number": 48,
      "title": "Accès anticipé défensif aux modèles frontières",
      "cost_family": "ai",
      "cost_family_label": "IA cyber / modèles frontières",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de modèles évalués / conditions d’accès",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-AI",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "G=capacité de calcul consommée; P_g=coût unitaire de calcul; E=ETP; C_E=coût employeur; D=données/évaluation; S=sécurisation de l’environnement",
      "missing_inputs": "nombre de modèles évalués / conditions d’accès ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Gouvernement / UE",
      "vehicle": "Accords / réglementation applicable",
      "deadline": "18 mois",
      "refs": "[O20]",
      "formula_id": "COST-BN-48-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "INFRA_CALCUL_INITIALE + J_INTEGRATION × TJM",
      "opex_y1_formula": "GPU_HEURES_Y1 × P_GPU_HEURE_Y1 + ETP_R_D_Y1 × C_ETP_Y1 + ACCES_MODELES_Y1 + DONNEES_Y1",
      "opex_y2_formula": "GPU_HEURES_Y2 × P_GPU_HEURE_Y2 + ETP_R_D_Y2 × C_ETP_Y2 + ACCES_MODELES_Y2 + DONNEES_Y2",
      "opex_y3_formula": "GPU_HEURES_Y3 × P_GPU_HEURE_Y3 + ETP_R_D_Y3 × C_ETP_Y3 + ACCES_MODELES_Y3 + DONNEES_Y3",
      "opex_y4_formula": "GPU_HEURES_Y4 × P_GPU_HEURE_Y4 + ETP_R_D_Y4 × C_ETP_Y4 + ACCES_MODELES_Y4 + DONNEES_Y4",
      "transition_formula": "J_SECURISATION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = G × P_g + E × C_E + D + S"
    },
    {
      "action_id": "BN-49",
      "action_number": 49,
      "title": "Modèle cyber européen spécialisé",
      "cost_family": "ai",
      "cost_family_label": "IA cyber / modèles frontières",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "capacité calcul + équipe R&D",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-AI",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "G=capacité de calcul consommée; P_g=coût unitaire de calcul; E=ETP; C_E=coût employeur; D=données/évaluation; S=sécurisation de l’environnement",
      "missing_inputs": "capacité calcul + équipe R&D ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "France + UE + industriels",
      "vehicle": "Programme européen",
      "deadline": "3–5 ans",
      "refs": "[I02][O06]",
      "formula_id": "COST-BN-49-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "INFRA_CALCUL_SOUVERAINE + DATASET_INITIAL + J_PIPELINE × TJM",
      "opex_y1_formula": "GPU_HEURES_ENTRAINEMENT_Y1 × P_GPU_HEURE_Y1 + ETP_R_D_Y1 × C_ETP_Y1 + ENERGIE_Y1 + MAINTENANCE_Y1",
      "opex_y2_formula": "GPU_HEURES_ENTRAINEMENT_Y2 × P_GPU_HEURE_Y2 + ETP_R_D_Y2 × C_ETP_Y2 + ENERGIE_Y2 + MAINTENANCE_Y2",
      "opex_y3_formula": "GPU_HEURES_ENTRAINEMENT_Y3 × P_GPU_HEURE_Y3 + ETP_R_D_Y3 × C_ETP_Y3 + ENERGIE_Y3 + MAINTENANCE_Y3",
      "opex_y4_formula": "GPU_HEURES_ENTRAINEMENT_Y4 × P_GPU_HEURE_Y4 + ETP_R_D_Y4 × C_ETP_Y4 + ENERGIE_Y4 + MAINTENANCE_Y4",
      "transition_formula": "MIGRATION_MODELES + CERTIFICATION",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = G × P_g + E × C_E + D + S"
    },
    {
      "action_id": "BN-50",
      "action_number": 50,
      "title": "Interdire les secrets de l’État dans les IA grand public non autorisées",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / DINUM",
      "vehicle": "Instruction",
      "deadline": "Immédiat",
      "refs": "[O06][O17]",
      "formula_id": "COST-BN-50-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-51",
      "action_number": 51,
      "title": "Identité propre pour chaque agent IA",
      "cost_family": "identity",
      "cost_family_label": "Identités / PAM / MFA",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-IDENTITY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_u=utilisateurs/comptes; L_u=coût annuel par utilisateur; N_h=clefs ou matériels; P_h=prix unitaire; J_i=jours d’intégration; TJM=tarif journalier moyen",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DINUM",
      "vehicle": "Référentiel IA",
      "deadline": "12 mois",
      "refs": "[O17]",
      "formula_id": "COST-BN-51-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MATERIEL × P_MATERIEL + J_INTEGRATION × TJM",
      "opex_y1_formula": "N_COMPTES_Y1 × LICENCE_ANNUELLE_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_COMPTES_Y2 × LICENCE_ANNUELLE_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_COMPTES_Y3 × LICENCE_ANNUELLE_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_COMPTES_Y4 × LICENCE_ANNUELLE_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION × TJM + FORMATION_INITIALE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_u × L_u + N_h × P_h + J_i × TJM"
    },
    {
      "action_id": "BN-52",
      "action_number": 52,
      "title": "Validation humaine des actions irréversibles des IA",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / INESIA",
      "vehicle": "Référentiel",
      "deadline": "12 mois",
      "refs": "[O17]",
      "formula_id": "COST-BN-52-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-53",
      "action_number": 53,
      "title": "Plan de sortie des dépendances critiques américaines",
      "cost_family": "sovereignty",
      "cost_family_label": "Souveraineté / cloud / PQC / dépendances",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de dépendances critiques à migrer",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-SOVEREIGNTY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_m=migrations; C_m=coût moyen documenté par migration; T=double exploitation/transition; D=développements; B_l=budgets déjà affectés à la même migration",
      "missing_inputs": "nombre de dépendances critiques à migrer ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / SGDSN",
      "vehicle": "Plan interministériel",
      "deadline": "24 mois",
      "refs": "[O05][O06]",
      "formula_id": "COST-BN-53-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MIGRATIONS × C_MIGRATION + INFRA_SOUVERAINE_INITIALE",
      "opex_y1_formula": "HEBERGEMENT_Y1 + LICENCES_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "HEBERGEMENT_Y2 + LICENCES_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "HEBERGEMENT_Y3 + LICENCES_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "HEBERGEMENT_Y4 + LICENCES_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + SORTIE_FOURNISSEUR + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_m × C_m + T + D - B_l"
    },
    {
      "action_id": "BN-54",
      "action_number": 54,
      "title": "SecNumCloud / contrôle juridique selon criticité",
      "cost_family": "sovereignty",
      "cost_family_label": "Souveraineté / cloud / PQC / dépendances",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de services/migrations SecNumCloud",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-SOVEREIGNTY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_m=migrations; C_m=coût moyen documenté par migration; T=double exploitation/transition; D=développements; B_l=budgets déjà affectés à la même migration",
      "missing_inputs": "nombre de services/migrations SecNumCloud ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DINUM",
      "vehicle": "Doctrine cloud",
      "deadline": "12 mois",
      "refs": "[O04][O06]",
      "formula_id": "COST-BN-54-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MIGRATIONS × C_MIGRATION + INFRA_SOUVERAINE_INITIALE",
      "opex_y1_formula": "HEBERGEMENT_Y1 + LICENCES_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "HEBERGEMENT_Y2 + LICENCES_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "HEBERGEMENT_Y3 + LICENCES_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "HEBERGEMENT_Y4 + LICENCES_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + SORTIE_FOURNISSEUR + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_m × C_m + T + D - B_l"
    },
    {
      "action_id": "BN-55",
      "action_number": 55,
      "title": "Inventaire cryptographique post-quantique",
      "cost_family": "sovereignty",
      "cost_family_label": "Souveraineté / cloud / PQC / dépendances",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de systèmes et algorithmes cryptographiques",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-SOVEREIGNTY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_m=migrations; C_m=coût moyen documenté par migration; T=double exploitation/transition; D=développements; B_l=budgets déjà affectés à la même migration",
      "missing_inputs": "nombre de systèmes et algorithmes cryptographiques ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / DNUM",
      "vehicle": "Programme PQC",
      "deadline": "18 mois",
      "refs": "[O05][O06]",
      "formula_id": "COST-BN-55-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "N_SYSTEMES × J_INVENTAIRE_CRYPTO × TJM + LICENCE_SCANNER_CRYPTO_INITIALE",
      "opex_y1_formula": "N_SYSTEMES_Y1 × J_REVUE_ANNUELLE × TJM + LICENCE_SCANNER_Y1",
      "opex_y2_formula": "N_SYSTEMES_Y2 × J_REVUE_ANNUELLE × TJM + LICENCE_SCANNER_Y2",
      "opex_y3_formula": "N_SYSTEMES_Y3 × J_REVUE_ANNUELLE × TJM + LICENCE_SCANNER_Y3",
      "opex_y4_formula": "N_SYSTEMES_Y4 × J_REVUE_ANNUELLE × TJM + LICENCE_SCANNER_Y4",
      "transition_formula": "PILOTES_PQC + TESTS_INTEROPERABILITE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_m × C_m + T + D - B_l"
    },
    {
      "action_id": "BN-56",
      "action_number": 56,
      "title": "Réserve cyber renforcée",
      "cost_family": "workforce",
      "cost_family_label": "Compétences / réserve / carrière",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de réservistes contractualisés et jours mobilisables",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-WORKFORCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires; C_E=coût employeur; N_f=personnes formées; H=heures; C_h=coût complet horaire; P=plateforme/prestations",
      "missing_inputs": "nombre de réservistes contractualisés et jours mobilisables ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Armées / ANSSI / ministères",
      "vehicle": "Loi / conventions",
      "deadline": "24 mois",
      "refs": "[O06]",
      "formula_id": "COST-BN-56-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "N_RESERVISTES × C_FORMATION_INITIALE + PLATEFORME_MOBILISATION",
      "opex_y1_formula": "N_JOURS_MOBILISATION_Y1 × INDEMNITE_JOUR_Y1 + FORMATION_CONTINUE_Y1 + EXERCICES_Y1",
      "opex_y2_formula": "N_JOURS_MOBILISATION_Y2 × INDEMNITE_JOUR_Y2 + FORMATION_CONTINUE_Y2 + EXERCICES_Y2",
      "opex_y3_formula": "N_JOURS_MOBILISATION_Y3 × INDEMNITE_JOUR_Y3 + FORMATION_CONTINUE_Y3 + EXERCICES_Y3",
      "opex_y4_formula": "N_JOURS_MOBILISATION_Y4 × INDEMNITE_JOUR_Y4 + FORMATION_CONTINUE_Y4 + EXERCICES_Y4",
      "transition_formula": "RECRUTEMENT + HABILITATIONS",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + N_f × H × C_h + P"
    },
    {
      "action_id": "BN-57",
      "action_number": 57,
      "title": "Carrière expert cyber dans l’État",
      "cost_family": "workforce",
      "cost_family_label": "Compétences / réserve / carrière",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de postes experts à revaloriser",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-WORKFORCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires; C_E=coût employeur; N_f=personnes formées; H=heures; C_h=coût complet horaire; P=plateforme/prestations",
      "missing_inputs": "nombre de postes experts à revaloriser ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DGAFP / ministères",
      "vehicle": "Réforme RH",
      "deadline": "24 mois",
      "refs": "[I01]",
      "formula_id": "COST-BN-57-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "RECRUTEMENT_INITIAL + FORMATION_MANAGERS + OUTILLAGE_CARRIERE",
      "opex_y1_formula": "N_EXPERTS_Y1 × SURCOUT_REMUNERATION_Y1 + FORMATION_CONTINUE_Y1",
      "opex_y2_formula": "N_EXPERTS_Y2 × SURCOUT_REMUNERATION_Y2 + FORMATION_CONTINUE_Y2",
      "opex_y3_formula": "N_EXPERTS_Y3 × SURCOUT_REMUNERATION_Y3 + FORMATION_CONTINUE_Y3",
      "opex_y4_formula": "N_EXPERTS_Y4 × SURCOUT_REMUNERATION_Y4 + FORMATION_CONTINUE_Y4",
      "transition_formula": "RECLASSEMENT + HARMONISATION_STATUTAIRE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + N_f × H × C_h + P"
    },
    {
      "action_id": "BN-58",
      "action_number": 58,
      "title": "Transposer et appliquer NIS2 sans retard",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Gouvernement / Parlement / ANSSI",
      "vehicle": "Loi",
      "deadline": "100 jours",
      "refs": "[O19]",
      "formula_id": "COST-BN-58-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-59",
      "action_number": 59,
      "title": "Responsabilité annuelle des dirigeants publics",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Premier ministre / ministres",
      "vehicle": "Décret / lettres de mission",
      "deadline": "12 mois",
      "refs": "[O13]",
      "formula_id": "COST-BN-59-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "J_SETUP × TJM + OUTIL_INITIAL",
      "opex_y1_formula": "ETP_Y1 × C_ETP_Y1 + PRESTATIONS_Y1",
      "opex_y2_formula": "ETP_Y2 × C_ETP_Y2 + PRESTATIONS_Y2",
      "opex_y3_formula": "ETP_Y3 × C_ETP_Y3 + PRESTATIONS_Y3",
      "opex_y4_formula": "ETP_Y4 × C_ETP_Y4 + PRESTATIONS_Y4",
      "transition_formula": "J_TRANSITION × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    },
    {
      "action_id": "BN-60",
      "action_number": 60,
      "title": "Tableau de bord public trimestriel agrégé",
      "cost_family": "oversight",
      "cost_family_label": "Contrôle / transparence / revue",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-OVERSIGHT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires; C_E=coût employeur; D=développement de tableau de bord; P=prestations/audits additionnels",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "SGDSN / ANSSI",
      "vehicle": "Publication gouvernementale",
      "deadline": "Trimestriel",
      "refs": "[O06]",
      "formula_id": "COST-BN-60-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "OUTIL_REPORTING_INITIAL + J_INTEGRATION × TJM",
      "opex_y1_formula": "ETP_CONTROLE_Y1 × C_ETP_Y1 + PUBLICATION_Y1 + AUDIT_Y1",
      "opex_y2_formula": "ETP_CONTROLE_Y2 × C_ETP_Y2 + PUBLICATION_Y2 + AUDIT_Y2",
      "opex_y3_formula": "ETP_CONTROLE_Y3 × C_ETP_Y3 + PUBLICATION_Y3 + AUDIT_Y3",
      "opex_y4_formula": "ETP_CONTROLE_Y4 × C_ETP_Y4 + PUBLICATION_Y4 + AUDIT_Y4",
      "transition_formula": "J_CADRAGE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + D + P"
    },
    {
      "action_id": "BN-61",
      "action_number": 61,
      "title": "Programme de destruction de la dette applicative",
      "cost_family": "sovereignty",
      "cost_family_label": "Souveraineté / cloud / PQC / dépendances",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre d’applications obsolètes et coût de migration par application",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-SOVEREIGNTY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_m=migrations; C_m=coût moyen documenté par migration; T=double exploitation/transition; D=développements; B_l=budgets déjà affectés à la même migration",
      "missing_inputs": "nombre d’applications obsolètes et coût de migration par application ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "DINUM / ministères",
      "vehicle": "Programmation pluriannuelle",
      "deadline": "4 ans",
      "refs": "[O04][O05]",
      "formula_id": "COST-BN-61-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_MIGRATIONS × C_MIGRATION + INFRA_SOUVERAINE_INITIALE",
      "opex_y1_formula": "HEBERGEMENT_Y1 + LICENCES_Y1 + ETP_EXPLOITATION_Y1 × C_ETP_Y1",
      "opex_y2_formula": "HEBERGEMENT_Y2 + LICENCES_Y2 + ETP_EXPLOITATION_Y2 × C_ETP_Y2",
      "opex_y3_formula": "HEBERGEMENT_Y3 + LICENCES_Y3 + ETP_EXPLOITATION_Y3 × C_ETP_Y3",
      "opex_y4_formula": "HEBERGEMENT_Y4 + LICENCES_Y4 + ETP_EXPLOITATION_Y4 × C_ETP_Y4",
      "transition_formula": "DOUBLE_RUN + SORTIE_FOURNISSEUR + MIGRATION_DONNEES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_m × C_m + T + D - B_l"
    },
    {
      "action_id": "BN-62",
      "action_number": 62,
      "title": "Audit annuel PASSI des fonctions les plus critiques",
      "cost_family": "procurement",
      "cost_family_label": "Prestataires / audits / réponse à incident",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de fonctions critiques auditées",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-PROCUREMENT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_a=audits/interventions; J_a=jours moyens; TJM=tarif journalier documenté; R=réserve/astreinte contractuelle",
      "missing_inputs": "nombre de fonctions critiques auditées ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / ministères",
      "vehicle": "Référentiel",
      "deadline": "Annuel",
      "refs": "[O15][O16]",
      "formula_id": "COST-BN-62-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "J_CADRAGE_REFERENTIEL × TJM",
      "opex_y1_formula": "N_FONCTIONS_CRITIQUES_Y1 × J_PASSI_MOYEN × TJM_PASSI_Y1 + N_RETESTS_Y1 × J_RETEST × TJM_RETEST_Y1",
      "opex_y2_formula": "N_FONCTIONS_CRITIQUES_Y2 × J_PASSI_MOYEN × TJM_PASSI_Y2 + N_RETESTS_Y2 × J_RETEST × TJM_RETEST_Y2",
      "opex_y3_formula": "N_FONCTIONS_CRITIQUES_Y3 × J_PASSI_MOYEN × TJM_PASSI_Y3 + N_RETESTS_Y3 × J_RETEST × TJM_RETEST_Y3",
      "opex_y4_formula": "N_FONCTIONS_CRITIQUES_Y4 × J_PASSI_MOYEN × TJM_PASSI_Y4 + N_RETESTS_Y4 × J_RETEST × TJM_RETEST_Y4",
      "transition_formula": "MISE_EN_CONFORMITE_INITIALE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_a × J_a × TJM + R"
    },
    {
      "action_id": "BN-63",
      "action_number": 63,
      "title": "Red-team semestrielle Tier 0",
      "cost_family": "procurement",
      "cost_family_label": "Prestataires / audits / réponse à incident",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre de red-teams Tier 0",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-PROCUREMENT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_a=audits/interventions; J_a=jours moyens; TJM=tarif journalier documenté; R=réserve/astreinte contractuelle",
      "missing_inputs": "nombre de red-teams Tier 0 ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / PASSI",
      "vehicle": "Programme",
      "deadline": "Semestriel",
      "refs": "[O15]",
      "formula_id": "COST-BN-63-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "CYBER_RANGE_INITIAL + J_CADRAGE × TJM",
      "opex_y1_formula": "N_CAMPAGNES_Y1 × J_REDTEAM × TJM_REDTEAM_Y1 + RETESTS_Y1 + EXERCICES_RESTITUTION_Y1",
      "opex_y2_formula": "N_CAMPAGNES_Y2 × J_REDTEAM × TJM_REDTEAM_Y2 + RETESTS_Y2 + EXERCICES_RESTITUTION_Y2",
      "opex_y3_formula": "N_CAMPAGNES_Y3 × J_REDTEAM × TJM_REDTEAM_Y3 + RETESTS_Y3 + EXERCICES_RESTITUTION_Y3",
      "opex_y4_formula": "N_CAMPAGNES_Y4 × J_REDTEAM × TJM_REDTEAM_Y4 + RETESTS_Y4 + EXERCICES_RESTITUTION_Y4",
      "transition_formula": "REMEDIATIONS_INITIALES",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_a × J_a × TJM + R"
    },
    {
      "action_id": "BN-64",
      "action_number": 64,
      "title": "Protection du patrimoine informationnel stratégique des entreprises",
      "cost_family": "sovereignty",
      "cost_family_label": "Souveraineté / cloud / PQC / dépendances",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre d’entreprises critiques accompagnées",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-SOVEREIGNTY",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_m=migrations; C_m=coût moyen documenté par migration; T=double exploitation/transition; D=développements; B_l=budgets déjà affectés à la même migration",
      "missing_inputs": "nombre d’entreprises critiques accompagnées ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Économie / SGDSN / ANSSI",
      "vehicle": "Loi / dispositif d’aide",
      "deadline": "24 mois",
      "refs": "[O06]",
      "formula_id": "COST-BN-64-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "PLATEFORME_ACCOMPAGNEMENT + J_CADRAGE_SECTORIEL × TJM",
      "opex_y1_formula": "N_ENTREPRISES_Y1 × J_AUDIT_ENTREPRISE × TJM + ETP_EXPERTS_Y1 × C_ETP_Y1 + AIDES_ELIGIBLES_Y1",
      "opex_y2_formula": "N_ENTREPRISES_Y2 × J_AUDIT_ENTREPRISE × TJM + ETP_EXPERTS_Y2 × C_ETP_Y2 + AIDES_ELIGIBLES_Y2",
      "opex_y3_formula": "N_ENTREPRISES_Y3 × J_AUDIT_ENTREPRISE × TJM + ETP_EXPERTS_Y3 × C_ETP_Y3 + AIDES_ELIGIBLES_Y3",
      "opex_y4_formula": "N_ENTREPRISES_Y4 × J_AUDIT_ENTREPRISE × TJM + ETP_EXPERTS_Y4 × C_ETP_Y4 + AIDES_ELIGIBLES_Y4",
      "transition_formula": "PILOTES_SECTORIELS + MISE_EN_CONFORMITE_FOURNISSEURS",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_m × C_m + T + D - B_l"
    },
    {
      "action_id": "BN-65",
      "action_number": 65,
      "title": "Contrôle technique cyber des organismes critiques",
      "cost_family": "procurement",
      "cost_family_label": "Prestataires / audits / réponse à incident",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "nombre d’organismes critiques contrôlés",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-PROCUREMENT",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_a=audits/interventions; J_a=jours moyens; TJM=tarif journalier documenté; R=réserve/astreinte contractuelle",
      "missing_inputs": "nombre d’organismes critiques contrôlés ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI / régulateurs",
      "vehicle": "Réglementation sectorielle",
      "deadline": "24 mois",
      "refs": "[O19]",
      "formula_id": "COST-BN-65-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "J_REFERENTIEL_TECHNIQUE × TJM",
      "opex_y1_formula": "N_ORGANISMES_Y1 × J_CONTROLE × TJM_CONTROLE_Y1 + N_RETESTS_Y1 × J_RETEST × TJM_RETEST_Y1",
      "opex_y2_formula": "N_ORGANISMES_Y2 × J_CONTROLE × TJM_CONTROLE_Y2 + N_RETESTS_Y2 × J_RETEST × TJM_RETEST_Y2",
      "opex_y3_formula": "N_ORGANISMES_Y3 × J_CONTROLE × TJM_CONTROLE_Y3 + N_RETESTS_Y3 × J_RETEST × TJM_RETEST_Y3",
      "opex_y4_formula": "N_ORGANISMES_Y4 × J_CONTROLE × TJM_CONTROLE_Y4 + N_RETESTS_Y4 × J_RETEST × TJM_RETEST_Y4",
      "transition_formula": "OUTILLAGE_PREUVE + FORMATION_REGULATEURS",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_a × J_a × TJM + R"
    },
    {
      "action_id": "BN-66",
      "action_number": 66,
      "title": "Boucle nationale « trouver-corriger-vérifier »",
      "cost_family": "devsecops",
      "cost_family_label": "DevSecOps / vulnérabilités / chaîne logicielle",
      "cost_status": "fiche_de_calcul_creee_donnees_a_inventorier",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-DEVSECOPS",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "N_r=dépôts/projets; L_r=coût outil par dépôt/projet; N_p=projets à intégrer; J_p=jours d’intégration; TJM=tarif journalier; I=infrastructure",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "ANSSI",
      "vehicle": "Organisation nationale",
      "deadline": "12 mois",
      "refs": "[O20][M04]",
      "formula_id": "COST-BN-66-4Y",
      "formula_status": "FAMILY_TEMPLATE_PENDING_ACTION_SPECIFIC_REVIEW",
      "capex_formula": "N_PROJETS × J_INTEGRATION × TJM + OUTILLAGE_INITIAL",
      "opex_y1_formula": "N_DEPOTS_Y1 × LICENCE_OUTIL_Y1 + ETP_APPSEC_Y1 × C_ETP_Y1",
      "opex_y2_formula": "N_DEPOTS_Y2 × LICENCE_OUTIL_Y2 + ETP_APPSEC_Y2 × C_ETP_Y2",
      "opex_y3_formula": "N_DEPOTS_Y3 × LICENCE_OUTIL_Y3 + ETP_APPSEC_Y3 × C_ETP_Y3",
      "opex_y4_formula": "N_DEPOTS_Y4 × LICENCE_OUTIL_Y4 + ETP_APPSEC_Y4 × C_ETP_Y4",
      "transition_formula": "J_MIGRATION_PIPELINE × TJM",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = N_r × L_r + N_p × J_p × TJM + I"
    },
    {
      "action_id": "BN-67",
      "action_number": 67,
      "title": "Revue parlementaire annuelle de souveraineté numérique",
      "cost_family": "governance",
      "cost_family_label": "Gouvernance / doctrine / droit",
      "cost_status": "cout_incremental_non_consolidable_sans_ETP_ou_prestation_additionnelle",
      "quantity_to_measure": "périmètre réel issu de l’inventaire 100 jours",
      "unit": "à définir selon inventaire/marché",
      "unit_cost_low_eur": "",
      "unit_cost_central_eur": "",
      "unit_cost_high_eur": "",
      "unit_cost_source": "non publié tant qu’aucun prix comparable opposable n’est identifié",
      "unit_cost_source_date": "",
      "years": 4,
      "capex_eur": "",
      "opex_y1_eur": "",
      "opex_y2_eur": "",
      "opex_y3_eur": "",
      "opex_y4_eur": "",
      "transition_eur": "",
      "existing_budget_offset_eur": "",
      "transferred_funding_eur": "",
      "net_incremental_4y_eur": "",
      "uncertainty": "élevée avant inventaire",
      "confidence": "faible avant inventaire",
      "anti_double_count_group": "BN-GOVERNANCE",
      "formula": "Voir capex_formula, opex_y1_formula…opex_y4_formula, transition_formula et net_4y_formula.",
      "symbols": "E=ETP supplémentaires réellement nécessaires; C_E=coût employeur annuel d’un ETP; P=prestations externes documentées",
      "missing_inputs": "périmètre réel issu de l’inventaire 100 jours ; prix unitaires documentés ; part des budgets existants réellement recouvrante",
      "pilot": "Gouvernement / Parlement",
      "vehicle": "Loi de programmation",
      "deadline": "Annuel",
      "refs": "[O06]",
      "formula_id": "COST-BN-67-4Y",
      "formula_status": "ACTION_SPECIFIC",
      "capex_formula": "OUTIL_REPORTING_PARLEMENTAIRE_INITIAL",
      "opex_y1_formula": "ETP_RAPPORT_Y1 × C_ETP_Y1 + AUDITIONS_Y1 + ANNEXE_CLASSIFIEE_Y1",
      "opex_y2_formula": "ETP_RAPPORT_Y2 × C_ETP_Y2 + AUDITIONS_Y2 + ANNEXE_CLASSIFIEE_Y2",
      "opex_y3_formula": "ETP_RAPPORT_Y3 × C_ETP_Y3 + AUDITIONS_Y3 + ANNEXE_CLASSIFIEE_Y3",
      "opex_y4_formula": "ETP_RAPPORT_Y4 × C_ETP_Y4 + AUDITIONS_Y4 + ANNEXE_CLASSIFIEE_Y4",
      "transition_formula": "CADRAGE_INDICATEURS + PREMIERE_COLLECTE",
      "mutualisation_savings_4y_eur": "",
      "existing_budget_eligible_offset_4y_eur": "",
      "external_cofinancing_4y_eur": "",
      "transferred_funding_treatment": "INFORMATIONAL_OWNER_SHIFT_NOT_AUTOMATIC_PUBLIC_COST_OFFSET",
      "offset_formula": "MUTUALISATION_SAVINGS_4Y + EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y + EXTERNAL_COFINANCING_4Y",
      "net_4y_formula": "CAPEX + OPEX_Y1 + OPEX_Y2 + OPEX_Y3 + OPEX_Y4 + TRANSITION - MUTUALISATION_SAVINGS_4Y - EXISTING_BUDGET_ELIGIBLE_OFFSET_4Y - EXTERNAL_COFINANCING_4Y",
      "costing_completeness": "ARCHITECTURE_ONLY",
      "legacy_family_formula": "C = E × C_E + P"
    }
  ]
}