Projet personnelPersonal project JavaScript · SVG
Une machine mesure-t-elle toujours juste ? Does a machine always measure true?
Un laboratoire vérifie régulièrement son appareil d'analyse chimique en mesurant des échantillons dont la composition exacte est connue. Cet outil suit ces mesures dans le temps : si l'appareil commence à « dériver », l'écart est détecté tôt, et on peut le relier à une opération de maintenance. A laboratory regularly checks its chemical analyser by measuring samples whose exact composition is known. This tool tracks those measurements over time: if the instrument starts to drift, the deviation is caught early, and it can be tied back to a maintenance operation.
- Éléments chimiques suivisChemical elements tracked
- 13
- Du carbone à l'étain. Valeurs certifiées du fichier data/crm_data.json du dépôt. From carbon to tin. Certified values in the repository's data/crm_data.json.
- Mesures de contrôleControl measurements
- 40
- De janvier 2023 à novembre 2024, sur deux standards. Chacune est la moyenne de trois répétitions. From January 2023 to November 2024, across two standards. Each one is the mean of three replicates.
- Valeurs recalculées à l'ouvertureValues recomputed on load
- 475
- Aucune limite n'est figée dans les données : tout se recalcule dans le navigateur. No control limit is frozen in the data: everything is recomputed in the browser.
- Tests automatisésAutomated tests
- 66
- 39 sur le moteur de calcul, 27 sur l'interprétation. Dossier test/ du dépôt. 39 on the calculation engine, 27 on the interpretation layer. The repository's test/ folder.
Une machine qui dérive ne le dit jamais A drifting machine never says so
Un spectromètre rend un résultat. Il ne dit pas s'il est juste. Pour le savoir, un laboratoire accrédité ISO/IEC 17025 mesure régulièrement des échantillons de référence dont la composition exacte est certifiée, et compare. Le piège est que la dérive est lente : chaque résultat pris isolément paraît acceptable, et c'est la série qui trahit l'appareil. A spectrometer returns a result. It does not say whether that result is right. To find out, an ISO/IEC 17025 accredited laboratory regularly measures reference samples whose exact composition is certified, and compares. The trap is that drift is slow: taken on its own each result looks acceptable, and only the series gives the instrument away.
L'outil d'origine existe : c'est un classeur Excel piloté en VBA, interne et confidentiel. Il a été reconstruit ici en application web — l'algorithme extrait du VBA, recoupé contre les cellules calculées du classeur d'origine, les identifiants de standards remplacés par des alias, et les fichiers sources laissés hors du dépôt. The original tool exists: an Excel workbook driven by VBA, internal and confidential. It was rebuilt here as a web application — the algorithm extracted from the VBA, cross-checked against the original workbook's computed cells, standard IDs replaced by aliases, and the source files kept out of the repository.
« La réussite de ce projet tient en deux mots : confiance élevée. Standardiser un contrôle que seul un métrologue savait mener, l'automatiser de bout en bout, et le rendre à une réponse que n'importe qui peut lire. » "This project succeeds in two words: high confidence. Take a control only a metrologist could run, standardise it, automate it end to end, and hand it back as an answer anyone can read." Sébastien OgerSébastien Oger
Essayez-le, il tourne ici Try it, it runs right here
Données anonymisées. Changez d'onglet, remontez le temps, ouvrez un élément — et imprimez le rapport si le cœur vous en dit. Seul le plan de maintenance est reconstitué, le fichier d'origine étant confidentiel. Anonymised data. Switch tabs, rewind time, open an element — and print the report if you feel like it. Only the maintenance plan is reconstructed, the original file being confidential.
Passer l'applicationSkip the applicationL'ouvrir en plein écranOpen it full screen (nouvel onglet) (new tab)
Le piège que seul le métier voit venir The trap only the trade sees coming
Vous venez peut-être de le croiser dans l'outil. Puisque les limites se calculent sur l'historique, un élément très régulier obtient un écart-type minuscule — donc des limites extraordinairement étroites. Un écart sans la moindre portée pratique franchit alors ±3σ, et l'outil crie à l'anomalie. Le calcul est exact. La conclusion serait fausse. You may have just run into it in the tool. Because the limits are computed from history, a very consistent element ends up with a minuscule standard deviation — and therefore extraordinarily narrow limits. A deviation of no practical consequence then crosses ±3σ, and the tool cries anomaly. The maths is right. The conclusion would be wrong.
L'outil détecte le cas — écart-type inférieur à 2 % de la moyenne — et affiche une note explicative dans le détail comme dans le rapport. Il ne touche pas au calcul : il prévient celui qui lit. C'est un arbitrage de qualiticien, pas une ligne de code. Trois sorties étaient possibles, deux ont été écartées. The tool detects the case — standard deviation below 2 % of the mean — and displays an explanatory note in both the detail view and the report. It does not touch the calculation: it warns whoever is reading. That is a quality manager's judgement call, not a line of code. Three ways out were available, two were ruled out.
- Élargir la limite pour faire taire l'alerte : refusé Widening the limit to silence the alert: refused
- Masquer le dépassement sous un seuil plancher : refusé Hiding the exceedance under a floor threshold: refused
- Nommer le phénomène à l'endroit où on le rencontre : retenu Naming the phenomenon where you meet it: kept
On ne maquille pas un signal parce qu'il dérange, on apprend à le lire. You do not dress up a signal because it is inconvenient, you learn to read it.
Du classeur confidentiel à la page publique From confidential workbook to public page
Le sujet de ce projet n'est pas le graphique, c'est le chemin : comment un outil d'entreprise devient publiable sans rien perdre de sa rigueur — ni rien livrer de ce qui ne doit pas sortir. The subject of this project is not the chart, it is the route: how an in-house tool becomes publishable without losing any of its rigour — and without releasing anything that must not leave.
ExtractionExtraction
Un script Python sort les mesures du classeur et remplace les identifiants réels par des alias. Le classeur reste hors du dépôt. A Python script pulls the measurements out of the workbook and replaces the real IDs with aliases. The workbook itself stays out of the repository.
VérificationVerification
L'algorithme reconstitué est recoupé contre les cellules calculées du classeur d'origine. Deux variantes plausibles ont été écartées ainsi. The reconstructed algorithm is cross-checked against the computed cells of the original workbook. Two plausible variants were ruled out this way.
CalculComputation
Moyenne, écart-type, z-score et limites, dans un module qui ne connaît pas l'écran — et se teste donc hors navigateur. Mean, standard deviation, z-score and limits, in a module that knows nothing of the screen — and can therefore be tested outside a browser.
InterprétationInterpretation
Un second module traduit : verdict, libellés en clair, rapprochement avec l'entretien, note de limites serrées. A second module translates: verdict, plain-language labels, maintenance correlation, tight-limits note.
RestitutionReporting
Quatre vues, des graphiques en SVG écrit à la main, et un rapport que le navigateur imprime en PDF. Four views, hand-written SVG charts, and a report the browser prints to PDF.
Séparer le calcul de l'affichage n'est pas une coquetterie d'architecture : c'est ce qui permet aux 66 tests de tourner en une seconde, sans navigateur, et de rejouer les valeurs réelles du classeur d'origine à chaque modification. Sur un outil de contrôle, une formule non testée est une formule fausse qui s'ignore. Separating computation from display is not architectural vanity: it is what lets the 66 tests run in a second, without a browser, replaying the original workbook's real values on every change. On a control tool, an untested formula is a wrong formula that has not been caught yet.
Ce que ce projet démontre What this project demonstrates
C'est le projet charnière du parcours. Le geste est celui d'un système de management de la qualité — définir une limite, mesurer un écart, tracer la preuve — et les outils sont ceux d'un analyste : extraction, moteur de calcul testé, visualisation, rapport. This is the hinge project of the whole path. The move is that of a quality management system — set a limit, measure a gap, record the proof — and the tools are an analyst's: extraction, a tested calculation engine, visualisation, reporting.
Ce qui ne se voit pas à l'écran compte autant : le refus d'élargir une limite pour faire taire une alerte, l'anonymisation faite avant la publication et non après, et le moteur de calcul rendu testable pour qu'une erreur de formule se découvre en une seconde plutôt qu'en audit. What you cannot see on screen matters just as much: the refusal to widen a limit in order to silence an alert, anonymisation done before publication rather than after, and a calculation engine made testable so that a formula error surfaces in a second rather than in an audit.
D'où viennent les chiffres de cette page Where the figures on this page come from
-
13 éléments, 40 mesures, 475 valeurs — fichier
data/crm_data.jsondu dépôt publicWealthFinPilot/Quality-Control-by-Data: 13 éléments sur 25 mesures pour le premier standard, 10 sur 15 pour le second. 13 elements, 40 measurements, 475 values —data/crm_data.jsonin the public repositoryWealthFinPilot/Quality-Control-by-Data: 13 elements across 25 measurements for the first standard, 10 across 15 for the second. - 23 mois de suivi — première mesure le 9 janvier 2023, dernière le 27 novembre 2024, dans le même fichier. 23 months of tracking — first measurement on 9 January 2023, last on 27 November 2024, in the same file.
-
66 tests automatisés — dossier
test/du dépôt, exécuté sous Node : 39 sur le moteur de calcul, 27 sur l'interprétation. 66 automated tests — the repository'stest/folder, run under Node: 39 on the calculation engine, 27 on the interpretation layer. -
Limites ±2σ / ±3σ, z-score, seuil de 2 % —
docs/source-analysis.md, où chaque formule est recoupée avec une cellule du classeur d'origine. ±2σ / ±3σ limits, z-score, 2 % threshold —docs/source-analysis.md, where each formula is cross-checked against a cell of the original workbook. - Données anonymisées, plan de maintenance reconstitué — README du dépôt, section « Données ». L'outil de cette page est servi depuis ce site, pas depuis un service extérieur. Anonymised data, reconstructed maintenance plan — repository README, "Data" section. The tool on this page is served from this site, not from an outside service.