{
  "method": "# Méthode de la comparaison des marges\n\nLe protocole précède la collecte. Le panel principal est celui des cinq candidats de l’accueil PSA : Boond, Stafiz, Karanext, Fitnet et Akuiteo. Il n’est pas représentatif de l’ensemble du marché ou des vingt-trois fiches du site.\n\nLa collecte publique du 7 novembre 2026 couvre les pages précises du registre commun le registre de sources téléchargeable. Les captures HTML privées ont une URL d’origine, une URL résolue, une date et une empreinte SHA-256. L’étude ne réévalue pas les autres affirmations du corpus. La date d’indexation d’un moteur et le copyright ne sont pas utilisés comme dates de mise à jour.\n\nLe CSV `field-matrix.csv` contient quarante lignes : une ligne par candidat et par dimension. `value` vide signifie que le champ n’est pas établi dans les pages lues. Le statut `NOT_ESTABLISHED_IN_READ_SCOPE` n’est ni un zéro ni une absence de fonction. `DECLARED` désigne un élément annoncé dans la documentation ; `EXPLICIT_FORMULA` exige une équation ou une règle opératoire lisible. La dimension `preuve_et_limite` décrit la pièce lue, pas une note de qualité du produit.\n\nChaque ligne donne ses identifiants et URL de sources. Une réserve sur la portée est conservée au niveau du champ. Les passages qui nomment seulement une marge ne sont pas codés comme une formule complète. Une formule de préfacturation n’est pas une formule de marge.\n\nLes deux scénarios sont fictifs. Pour A, le revenu contractuel est maintenu à 16 000 € et le coût interne à 10 × 300 €. Trois quantités externes sont comparées :12 jours commandés,8 consommés ou 0 facture reçue, au prix de 450 € par jour. Le zéro est ici une hypothèse explicite du scénario. Le solde n’est pas présenté comme une marge réalisée. Pour B, le coût à terminaison retenu est 12 000 €+10 000 € ; nous calculons le solde sur 30 000 € de prix initial avec ou sans les 5 000 € d’avenant signé. Aucune règle de reconnaissance comptable n’est déduite.\n\n`scenario-calculations.csv` publie les entrées, les résultats et la formule textuelle. Les nombres ont été calculés dans Artifact Tool, puis rapprochés séparément avec Decimal. Le CSV contient les résultats, sans prétendre être un classeur interactif. Les inconnues non nécessaires à un scénario restent vides ; aucune somme de valeurs manquantes n’est utilisée pour une facture fournisseur.",
  "reader_decision": "Savoir quelle définition de marge demander dans une démo avant de comparer des pourcentages.",
  "panel": [
    "Boond",
    "Stafiz",
    "Karanext",
    "Fitnet",
    "Akuiteo"
  ],
  "panel_boundary": "Sous-panel des cinq candidats de l’accueil, pas échantillon représentatif du marché ni des23fiches.",
  "fixed_scenarios": [
    {
      "id": "A-regie",
      "fictional": true,
      "revenue_sold_eur_ht": 16000,
      "internal_worked_days": 10,
      "internal_standard_cost_eur_day": 300,
      "external_ordered_days": 12,
      "external_daily_cost_eur_ht": 450,
      "external_worked_days": 8,
      "external_invoiced_days": 0,
      "purpose": "Comparer coût commandé5400, coût consommé3600 et facture reçue0 sans supposer le déclencheur d’un fournisseur."
    },
    {
      "id": "B-forfait",
      "fictional": true,
      "initial_fee_eur_ht": 30000,
      "signed_amendment_eur_ht": 5000,
      "cost_incurred_eur_ht": 12000,
      "remaining_cost_eur_ht": 10000,
      "purpose": "Comparer marge réalisée partielle et marge à terminaison avec/sans avenant signé ; aucune reconnaissance comptable automatique déduite."
    }
  ],
  "dictionary": {
    "encoding": "UTF-8",
    "separator": ",",
    "empty_cell": "Inconnu/non établi ; jamais zéro. Les zéros des scénarios sont des hypothèses fictives explicites.",
    "matrix_grain": "Une ligne par candidat et dimension ; cinq candidats × huit dimensions.",
    "columns": {
      "vendor": "Candidat étudié, sans représentativité de marché",
      "field": "Dimension définie dans le protocole",
      "value": "Observation paraphrasée ; vide si inconnue",
      "status": "Nature documentaire, pas score de qualité",
      "source_ids": "Identifiants du registre, séparés par point-virgule si plusieurs",
      "source_urls": "URL publiques correspondant aux identifiants",
      "read_on": "Date de consultation, pas date d’entrée en vigueur",
      "scope": "Périmètre précis de lecture",
      "limit": "Limite conservée au niveau du champ"
    },
    "statuses": {
      "DECLARED": "Élément déclaré dans la documentation publique, sans essai produit",
      "EXPLICIT_FORMULA": "Équation ou méthode opératoire explicitée",
      "NOT_ESTABLISHED_IN_READ_SCOPE": "Champ non établi dans les seules pages lues",
      "EDITORIAL_NEXT_ACTION": "Question proposée par la rédaction, pas déclaration du fournisseur"
    },
    "scenario_columns": "Les entrées et résultats sont explicitement fictifs ; le CSV ne remplace pas un devis ni un compte de résultat."
  }
}
