Atelier · Intermédiaire
La page qu'ils ouvrent deux fois
Construisez un tableau de bord et le rapport qui l'entoure pour un programme de vaccination, en partant d'une demande à vingt tuiles. Le livrable n'est pas la page — c'est la page, le panneau de définitions derrière elle, et le paragraphe qui refuse dix-sept des tuiles.
Le responsable du PEV a demandé un tableau de bord. La demande, textuellement :
« Les doses par antigène, par formation sanitaire, par mois. La couverture contre la cible. L’abandon. Les ruptures de stock. Qui rapporte. La chaîne du froid. Les effectifs. Tout le cadre logique. Et une carte. »
Vous avez l’export de couverture de routine et rien d’autre. Construisez ce dont ils ont besoin.
Le fichier
vaccination-coverage-2024.v1.csv — 2 736 lignes formation-mois-antigène avec les
doses administrées, la population cible et le fait qu’un rapport ait été soumis.
Partie un : leur soutirer la décision
Vous ne pouvez pas interroger le responsable, alors déduisez-la de ce à quoi les données peuvent répondre et écrivez-la comme si vous l’aviez fait.
Écrivez l’unique phrase pour laquelle la page existe, dans la forme qu’exige la leçon 1 : un verbe et un objet. Écrivez ensuite le paragraphe « demandé et non inclus », en nommant où va chaque élément écarté.
Trois des éléments demandés ne peuvent pas du tout être tirés de ce fichier. Nommez-les et dites ce qu’il faudrait.
Partie deux : les trois nombres
Choisissez au plus quatre tuiles. Pour chacune, écrivez le seuil — la valeur à laquelle quelqu’un ferait quelque chose de différent. Une tuile dont vous ne pouvez pas énoncer le seuil ne va pas sur la page.
Les candidats à peser :
- la couverture par antigène contre la cible, pour un antigène ou pour les six ;
- l’abandon penta1 vers penta3 ;
- la complétude des rapports ;
- le nombre de formations ayant manqué un mois.
L’abandon est celui à défendre. Il compare une formation à elle-même, si bien que la population cible — qui décide de chaque chiffre de couverture et est la colonne la moins fiable du fichier — s’annule entièrement.
Partie trois : la page
Construisez-la comme un unique fichier HTML autonome : CSS en ligne, aucun JavaScript, aucune requête externe. L’ordre de lecture de la leçon 2 — titre et objet, tuiles, tableau, figure si elle est nécessaire, contexte, méthode, et ce que cela ne montre pas.
Imprimez-la ensuite. Si les tuiles ne survivent pas au niveau de gris, la couleur porte une information qu’elle ne devrait pas porter.
Partie quatre : le panneau de définitions
Écrivez indicator-definitions.md avec une entrée par indicateur : numérateur,
dénominateur, niveau auquel il est valide, standard, et décision éclairée.
Ajoutez ensuite l’assertion de la leçon 4. Votre chaîne calcule la couverture ; le document de définitions l’énonce. Faites qu’un désaccord fasse échouer la compilation.
assert abs(computed["penta3_coverage"] - DEFINITIONS["penta3_coverage"]) < 0.001
Partie cinq : le rapport et l’annexe
Quatre pages au plus, dans l’ordre qu’emploie la leçon 5 : recommandation d’abord, « ce que cela n’établit pas » en section numérotée, méthodologie absente et liée.
L’annexe contient les comparaisons lancées, les exclusions avec les effectifs après chaque étape, et une note de reproduction.
Vérifiez vos nombres
| Attendu | |
|---|---|
| Lignes | 2 736 |
| Rapports soumis | 2 094 sur 2 736 |
| Complétude des rapports | 76,5 % |
| Antigènes | 6 |
| Abandon penta1 vers penta3 | 13,8 % |
| Formations sanitaires | 38 |
Si vos chiffres de couverture paraissent invraisemblablement hauts ou bas, vérifiez le dénominateur avant le numérateur — la population cible est déclarée par formation-mois et c’est là que vit presque tout problème de couverture en données de routine.
Les questions à traiter en prose
Trois phrases chacune.
1. Vous avez écarté dix-sept éléments demandés. Choisissez celui sur lequel le responsable insistera le plus, et écrivez la phrase que vous diriez — en incluant où il va à la place.
2. La complétude des rapports vaut 76,5 %. Expliquez ce que cela fait à chaque chiffre de couverture de votre page, et dites si vous l’avez mise sur la page comme une tuile ou dans la note méthodologique, et pourquoi.
3. L’abandon emploie la même formation comme son propre dénominateur et la couverture non. Dites ce que cela achète, et nommez la question à laquelle l’abandon ne peut pas répondre et la couverture si.
Ce qu’il faut rendre
dashboard/index.html, autonome, sans script, sous 20 koindicator-definitions.md, une entrée par indicateur- la chaîne, avec l’assertion qui lie les deux
report.md, quatre pages, et son annexe- le paragraphe « demandé et non inclus »
- les trois réponses en prose
Comment savoir que c’est fini
Donnez la page à quelqu’un qui n’était pas dans l’analyse et demandez quelle décision elle étaye. S’il décrit les données, la page est un déversement de données avec un meilleur espacement.
Changez ensuite un nombre du document de définitions vers une valeur fausse et relancez. La compilation doit échouer. Si elle ne le fait pas, le panneau est de la documentation plutôt qu’une vérification, ce qui est la distinction pour laquelle la leçon 4 existe.
Ce que ce laboratoire n’est pas
Ce n’est pas une analyse de vaccination. L’histoire de la couverture ici — qu’un dénominateur en décide bien plus qu’un numérateur — est celle qu’a déjà établie le cours sur les données de routine, et la reproduire est le matériau plutôt que le constat.
Ce n’est pas non plus un exercice d’outillage. Tout ce qui émet du HTML fera l’affaire. Ce qui est évalué, c’est ce que vous avez laissé hors de la page et si vous avez écrit pourquoi.