Aller au contenu principal

MÉTHODOLOGIE

Ce document explique comment Mouchard calcule chaque métrique affichée. Aucune valeur n'est éditoriale : chaque chiffre est traçable jusqu'à une source officielle ou une règle publiée ici.

1. TAUX DE PARTICIPATION

Le taux de participation est calculé à partir des données brutes fournies par l'Assemblée nationale et le Sénat dans leurs flux de scrutins publics.

participation_pct = nombre_votants / eligible_total × 100
nombre_votants
Nombre de parlementaires ayant exprimé un vote (Pour + Contre + Abstention), tel que publié par la chambre.
eligible_total
Effectif théorique de la chambre (577 pour l'AN, 348 pour le Sénat). Correspond au champ eligible_total fourni par la source ou déduit du total des membres.

Limites

Pour certains scrutins délégués ou suspendus, eligible_total peut différer de l'effectif constitutionnel. Mouchard utilise la valeur fournie par la source officielle.

Source : Assemblée nationale — flux JSON scrutins

Source : Sénat — CLAIR API scrutins

2. COUVERTURE PRESSE (PRESS_COUNT)

Le press_count mesure le nombre d'articles de presse en ligne traitant du scrutin dans une fenêtre temporelle définie autour de la date du vote.

Moteur de recherche
Google News via SerpAPI — paramètres gl=fr, hl=fr (résultats France, interface française).
Fenêtre temporelle
J−3 à J+7 par rapport à la date du scrutin.
Requête
Titre du scrutin (tronqué à 120 caractères) + chambre (ex. "Assemblée nationale" ou "Sénat"), encodé en recherche Google News.
Périmètre
Législature en cours + 12 derniers mois maximum.
Mise à jour
Hebdomadaire. Incrémentale : un scrutin dont le press_computed_at date de moins de 7 jours n'est pas recalculé.
Audit
Un CSV trimestriel de vérification est archivé dans data/audit/press_audit_YYYY_QN.csv.

Limites

Le press_count reflète le volume d'articles indexés par Google News, pas la qualité ni le positionnement éditorial. Un article très court et un long reportage comptent pareillement. Les doublons (syndicats de presse) ne sont pas dédupliqués. La valeur 0 peut signifier absence de couverture ou titre trop spécifique pour être reconnu.

3. TAGS PROCÉDURAUX

Les tags procéduraux identifient le contexte législatif particulier d'un scrutin à partir de règles déterministes appliquées sur les métadonnées disponibles. Aucune intelligence artificielle n'est utilisée.

Source des règles
config/tags/v1.yaml — versionné en Git. Chaque règle précise ses conditions et son identifiant.
Tier
Tier 1 (procédural). Basé sur : titre, date, étape législative, champs booléens (ex. 49.3).
TagCritères
ÉtéScrutin dont la date tombe entre le 15 juillet et le 15 août.
49.3Titre ou champ booléen indique un engagement de responsabilité (art. 49 al. 3).
Texte fourre-toutTitre contient des mots-clés caractéristiques des textes budgétaires ou omnibus (PLF, PLFSS, PLFI, rectificatif).
Lecture uniqueÉtape renseignée comme lecture_unique dans les métadonnées de la chambre.

Limites

Les règles sont nécessairement heuristiques : un faux positif ou un faux négatif est possible. La version de règles appliquée (tags_rules_version) est stockée avec chaque scrutin pour permettre la reproductibilité.

4. TAGS THÉMATIQUES

Les tags thématiques classent un scrutin dans un ou plusieurs domaines politiques par correspondance de mots-clés sur le titre du scrutin.

Source des règles
config/tags/v1.yaml (même fichier, section tier: 2).
Tier
Tier 2 (thématique). Correspondance insensible à la casse sur des mots-clés français.
TagCritères
Santésanté, maladie, hôpital, médecin, soins, PLFSS…
Budgetbudget, PLF, fiscalité, impôt, taxe, recettes, dépenses…
Justicejustice, peine, tribunal, prison, juge, code pénal…
Immigrationimmigration, étranger, asile, visa, nationalité…
Éducationéducation, école, enseignement, lycée, université…
Agricultureagriculture, agriculteur, paysan, rural, élevage…
Logementlogement, loyer, HLM, immobilier, construction…
Énergie & Climaténergie, nucléaire, renouvelable, climat, CO2, transition…
Numériquenumérique, données, internet, cybersécurité, IA, algorithme…

Limites

Un scrutin portant sur un amendement peut être taggué « santé » si le titre mentionne le mot même si c'est tangentiel. La liste de mots-clés est visible et modifiable dans config/tags/v1.yaml.

5. DÉCLARATIONS — SOURCES WHITELISTÉES

Les déclarations affichées dans l'onglet « Déclarations » d'une Fiche scrutin sont exclusivement issues de domaines officiels whitelistés. Elles sont strictement séparées des faits dans l'interface et dans les exports JSON (FR-8).

Domaines acceptés
assemblee-nationale.fr, senat.fr, gouvernement.fr, elysee.fr
Archivage
Un snapshot HTML est archivé à la date de récupération (snapshot_at). Si l'URL source devient indisponible, le contenu archivé peut être consulté (FR-7).
Rejet
Toute URL dont le domaine n'appartient pas à la whitelist est rejetée à l'ingestion.

6. SOURCES DE DONNÉES

  • Assemblée nationale — Flux open data JSON : data.assemblee-nationale.fr
  • Sénat — API CLAIR (Regards Citoyens) : clair-production.up.railway.app
  • Regards Citoyens — Personnes et groupes parlementaires via CLAIR.
  • Légifrance — Liens vers les textes promulgués (NOR).
  • SerpAPI / Google News — Couverture presse (press_count).

Toutes les données brutes sont conservées en snapshot immuable horodaté (retrieved_at sur chaque ligne de faits).

Code source : Mouchard · Les règles de tags sont dans config/tags/v1.yaml.