Analyse — Décomposition opérationnelle des sous-activités et implications¶
Source : Documents/SousActivites_Donnees_Indicateurs_kanmaber.docx (version 7 juillet 2026)
Date d'analyse : 2026-07-07
Ce que le document introduit comme approche¶
Le document est une décomposition opérationnelle fine : pour chaque activité, il liste les sous-activités concrètes que l'agent de terrain réalise, les champs exacts à saisir, et l'indicateur alimenté automatiquement par chaque saisie.
La phrase clé, en note méthodologique finale :
"Les indicateurs sont calculés automatiquement par agrégation des saisies. Aucune saisie manuelle des valeurs d'indicateurs n'est nécessaire."
Implication #1 — Paradigme : calcul automatique vs saisie manuelle (CRITIQUE)¶
Ce qui existe : Le module Pilotage implémente SaisirMesureUseCase, ModifierMesureUseCase, MesureIndicateur — les agents saisissent manuellement les valeurs des indicateurs.
Ce que le document exige : Les indicateurs doivent être dérivés automatiquement des données opérationnelles brutes par agrégation (cumuls, COUNT DISTINCT, ratios). L'agent ne saisit pas "150 ESM identifiés" — il crée 150 dossiers Enfant et le système compte.
Conséquence : Il faut un moteur de calcul par indicateur. Chaque IndicateurSuivi devrait avoir une formule de calcul ancrée dans les données existantes. C'est le changement architectural le plus profond.
Implication #2 — 4 modèles manquants pour la prise en charge holistique (Act 3.1.3)¶
Le modèle actuel Accompagnement + TypeAccompagnement est trop générique. Le document exige des formulaires spécialisés distincts, chacun avec ses propres champs :
| Sous-activité | Modèle nécessaire | Champs spécifiques absents |
|---|---|---|
| Appui alimentaire | AppuiAlimentaire |
type de ration, quantité |
| Soutien psychologique | SoutienPsychologique |
type (individuel/collectif), nom psychologue, anonymat |
| Prise en charge sanitaire | PriseEnChargeSanitaire |
type d'acte (consultation/vaccination/référencement), structure de santé |
| Alphabétisation | SeanceAlphabetisation |
durée (heures), niveau initial, niveau évalué, présence (présent/absent/justifié) |
Ces 4 entités ont des logiques de calcul d'indicateur différentes (COUNT DISTINCT d'ESM par volet).
Implication #3 — ParcoursInsertion trop monolithique (Act 3.1.4)¶
Actuel : ParcoursInsertion = une ligne par ESM avec tous les champs (dateInscriptionFormation, microSubventionMontant, dateInstallation...) — le parcours entier dans une seule rangée.
Document : 4 sous-activités distinctes, chacune pouvant être saisie séparément et plusieurs fois :
- Inscription formation : centre + filière + type (courte/longue) + dates → peut avoir N inscriptions par ESM
- Accompagnement plan d'affaires : date + accompagnateur + activité AGR + statut (en cours/finalisé/validé) → suivi multi-séances
- Micro-subvention : montant + nature + type AGR + modalité → événement horodaté
- Installation CQM : référence CQM + date + type activité + commune → événement horodaté
Implication #4 — Présences nominatives manquantes dans les réunions¶
ReunionComite : champs actuels nbPresents / nbAttendus (entiers). Le document exige une liste nominative des membres présents liés à leurs profils pour calculer le taux de participation par membre (ind. 1.2.1.2 : moyenne sur toutes les réunions).
SessionConcertation : même problème. Le document précise pour Act 2.2.3 : "liste des acteurs invités (nom, institution, département, sexe) ; liste des acteurs présents". Le modèle actuel ne stocke que des comptages numériques.
→ Il faut des tables de présences nominatives : PresenceReunionComite, PresenceSessionConcertation.
Implication #5 — ParticipationFormation sans scores pre/post ni genre¶
Le document exige des scores individuels pre/post formation pour 3 activités : - Act 2.1.1.1 : acteurs communaux — score pre/post test - Act 2.1.2.1 : maîtres coraniques — score pre/post + charte d'engagement (oui/non) - Act 2.1.3.1 : pairs — score de compréhension (pour ind. 2.1.3.2 : % ayant score ≥ seuil)
Actuel : ParticipationFormation n'a pas de champs scorePreFormation, scorePostFormation, genre, ni resultatEvaluation. Sans eux, les indicateurs 2.1.1.2, 2.1.2.2 et 2.1.3.2 ne peuvent pas être calculés.
Implication #6 — 2 modèles entièrement absents¶
| Entité | Activité | Indicateur | Statut |
|---|---|---|---|
PoseAffiche |
1.1.3.1 | Nombre d'affiches posées par commune/lieu | Absent |
SensibilisationCommunautaire |
1.1.3.3 | Nombre de séances (avec nb hommes/femmes) | Partiellement dans FormationSensibilisation mais sans désagrégation genre structurée |
Implication #7 — SessionParoleJeunes : champ animePar manquant¶
Le document distingue ind. 3.1.1.2 (toutes sessions) vs ind. 3.1.1.3 (sessions animées uniquement par le Parlement des Jeunes). Le modèle actuel a un animateur (String libre), pas un enum animePar (équipe projet / Parlement des Jeunes) permettant ce filtre.
Implication #8 — Traduction des supports = sous-activité distincte (Act 1.1.2)¶
Actuel : SupportCommunication a langues[] et dateProduction. La traduction est mélangée à la production.
Document : La traduction (sous-activité 2) est un événement distinct : langue de traduction + quantité traduite + date — car elle peut intervenir après la production et dans plusieurs langues successivement.
Implication #9 — Désagrégation par sexe non systématique¶
Le document impose : "La désagrégation par sexe doit être systématiquement capturée pour tous les bénéficiaires et participants."
Modèles manquants de ce champ : ParticipationFormation, ParticipationSession, PresenceReunionComite (à créer), SessionConcertation (liste nominative invités/présents).
Résumé des travaux impliqués¶
| Priorité | Travail | Impact |
|---|---|---|
| 🔴 Critique | Moteur de calcul automatique des indicateurs depuis données brutes | Refactoring Pilotage complet |
| 🔴 Critique | 4 modèles prise en charge holistique (AppuiAlimentaire, SoutienPsychologique, PriseEnChargeSanitaire, SeanceAlphabetisation) |
Nouvelles tables + formulaires |
| 🔴 Critique | Éclater ParcoursInsertion en 4 entités-événements |
Migration schema |
| 🟠 Important | Présences nominatives réunions (PresenceReunionComite, PresenceSessionConcertation) |
Nouvelles tables |
| 🟠 Important | Scores pre/post + genre dans ParticipationFormation |
Migration + champs |
| 🟠 Important | Modèle PoseAffiche + enrichir SensibilisationCommunautaire |
Nouvelle table |
| 🟡 Moyen | Champ animePar dans SessionParoleJeunes |
Migration champ |
| 🟡 Moyen | Sous-activité traduction séparée dans SupportCommunication |
Migration schema |
| 🟡 Moyen | Désagrégation genre systématisée | Champs manquants à ajouter |