12 chambres froides : de la moyenne mensuelle à la preuve d'excursion
Une plateforme logistique surveille 12 chambres froides de produits frais (consigne 0 à +4 °C) avec des sondes DS18B20 relevées toutes les 15 minutes depuis 36 mois, soit environ 1,26 million de points. Le tableau de bord calcule la moyenne mensuelle par chambre. L'audit relève 8,2 % de valeurs manquantes dues aux redémarrages de passerelles, 0,3 % de valeurs à −127 °C, quelques doublons après changement de passerelle, et des horodatages en heure locale dont certains passent en heure d'été. Un client a relevé une excursion à +8,4 °C pendant 40 minutes, invisible sur la moyenne de mai (3,1 °C). L'exploitant veut ajouter un indicateur et produire un rapport mensuel défendable en cas de contrôle sanitaire.
1. Définissez les règles de préparation des données avant tout calcul d'indicateur, en justifiant chaque règle et en refusant explicitement les traitements dangereux.
Read the worked answer
1. Horodatage. Tout convertir en UTC à l'ingestion, avec conservation de l'heure locale d'origine dans une colonne séparée. Sinon, le passage à l'heure d'été crée un doublon d'une heure et un trou d'une heure, ce qui fausse les durées d'excursion. C'est la correction la plus importante, car elle touche la preuve.
2. Valeurs à −127 °C. C'est le code d'erreur classique du DS18B20 (capteur absent ou bus en défaut). Elles doivent être marquées manquantes, jamais conservées comme mesures : une seule valeur de ce type ferait chuter la moyenne de plusieurs dixièmes et masquerait une dérive.
3. Doublons. Dédupliquer sur la clé (chambre, horodatage UTC), en gardant la valeur de la passerelle active ou la dernière reçue selon une règle documentée. Compter les doublons supprimés dans le journal de traitement.
4. Manquants (8,2 %). Ne pas interpoler au-delà d'une lacune courte (par exemple 2 points consécutifs, soit 30 minutes). Au-delà, marquer la période comme non couverte et l'exclure du calcul de disponibilité.
5. Refus explicite. Interdire le remplacement des valeurs par la moyenne, la suppression des pics et l'arrondi des horodatages. Ce sont ces pratiques qui rendent un rapport indéfendable : elles effacent précisément les excursions que le contrôle sanitaire recherche.
6. Traçabilité. Versionner le script, journaliser le nombre de lignes avant/après à chaque étape, et conserver les données brutes en lecture seule.
2. La moyenne mensuelle de mai (3,1 °C) masque une excursion à +8,4 °C pendant 40 minutes. Proposez trois indicateurs adaptés et expliquez ce que chacun apporte par rapport à la moyenne.
Read the worked answer
Indicateur 1 - maximum et durée d'excursion au-dessus du seuil. Compter le nombre de périodes consécutives où T > 4 °C et la durée cumulée. Avec un pas de 15 minutes, une excursion de 40 minutes représente au moins 3 points consécutifs. C'est l'indicateur qui aurait révélé l'incident de mai : il qualifie le dépassement en durée, ce que la moyenne ne sait pas faire, puisqu'un pic court est dilué sur 2 976 points mensuels.
Indicateur 2 - médiane et quantile 95. La médiane est insensible aux pics et aux valeurs aberrantes résiduelles ; le quantile 95 montre la queue de distribution. Ensemble, ils distinguent une chambre « froide mais avec un pic » d'une chambre « globalement trop chaude ». La moyenne, elle, mélange les deux situations et ne permet pas de décider.
Indicateur 3 - carte de contrôle (moyenne glissante pondérée, EWMA). Elle détecte une dérive lente, par exemple une porte qui ferme mal ou un joint usé, avant que la température ne dépasse la consigne. Un glissement de +0,3 °C par semaine est invisible sur une moyenne mensuelle mais sort rapidement des limites de contrôle EWMA.
À ajouter systématiquement : la disponibilité. Pourcentage de la période réellement couverte, avec un seuil d'acceptation (par exemple 95 %). Un mois avec 8,2 % de manquants ne se compare pas à un mois complet ; afficher la disponibilité à côté de chaque indicateur évite de comparer l'incomparable.
3. Rédigez les spécifications du rapport mensuel et du mécanisme d'alerte : contenu, fréquence, seuils, et gestion du cas où une chambre n'a pas de données.
Read the worked answer
Contenu du rapport (une page par chambre). Identification de la chambre et de la sonde, période couverte, taux de disponibilité, température médiane, maximum et minimum, nombre et durée cumulée des excursions au-dessus de +4 °C et au-dessous de 0 °C, durée de la plus longue excursion, et graphique journalier avec les points manquants affichés en gris. En annexe : version du script, nombre de valeurs écartées et motif.
Fréquence. Rapport mensuel automatique le 1er du mois à 6 h, plus un rapport d'incident généré à la demande pour une période précise. Conserver les rapports 5 ans en lecture seule, avec empreinte de hachage pour prouver la non-modification.
Seuils d'alerte.
- Alerte immédiate : T > 5 °C pendant plus de 30 minutes (2 points consécutifs), ou T < −1 °C.
- Alerte de dérive : EWMA sortant des limites calculées sur les 30 derniers jours.
- Alerte technique : plus de 4 points manquants consécutifs (1 heure) pour une chambre, ou plus de 5 % de la période.
Cas sans données. Ne jamais produire une moyenne sur un échantillon vide ou trop faible. Si la disponibilité est inférieure à 80 %, le rapport affiche « non exploitable » avec le motif, une alerte technique est envoyée au mainteneur, et la chambre est signalée dans la synthèse. Une case vide est plus défendable qu'une valeur inventée : le contrôle sanitaire acceptera une panne documentée, pas une moyenne fabriquée à partir de trois points.