📖 Glossaire — Statistiques & outils
Termes de méthode statistique et outils de développement, non expliqués ailleurs dans le dashboard
| IQR (écart interquartile) | Q3−Q1. Sert à détecter les valeurs atypiques (outliers) : une valeur est exclue si elle sort de [Q1−k×IQR, Q3+k×IQR], k étant réglable dans l'onglet History (2.5 par défaut). |
| Log-Normale / Gamma / Weibull / Poisson | Lois de probabilité candidates testées pour modéliser la durée d'escale de chaque catégorie (Fort/Moyen/Faible trafic). La meilleure est retenue par MSE (voir ci-dessous). |
| MSE | Mean Squared Error — écart quadratique moyen entre la loi théorique et les données réelles. Plus c'est bas, meilleur est l'ajustement. |
| Monte Carlo | Simulation qui tire aléatoirement des milliers de scénarios (ici 1000) à partir d'une loi de probabilité, pour visualiser la dispersion des résultats possibles. |
| Box-Muller | Méthode mathématique pour générer des nombres aléatoires suivant une loi normale, utilisée par la simulation Monte Carlo. |
| Seed (graine) | Nombre de départ du générateur aléatoire — avec la même seed, la simulation Monte Carlo donne toujours le même résultat (reproductible, pas vraiment aléatoire). |
| Chart.js | Bibliothèque JavaScript qui dessine les graphiques du dashboard — hébergée localement dans assets/js/ (voir Sécurité). |
| Node.js | Environnement requis pour installer Claude Code et pour exécuter test_medfret_dashboard.js. |
| Claude / Claude Code | Claude = l'IA sur claude.ai. Claude Code = la version qui travaille directement sur vos fichiers depuis un terminal. |
| medfret_OUT.xlsx | Classeur Excel d'audit (formules vivantes) généré par build_medfret_excel.py — totalement indépendant de ce dashboard HTML (voir "Architecture" et le lien "📊 Télécharger le classeur Excel" en haut de page). |
| CDF (fonction de répartition) | Probabilité que la durée d'escale soit ≤ x jours. Le classeur Excel compare la CDF empirique (données réelles) à la CDF de chacune des 6 lois candidates. |
🚀 Installer et lancer
Un seul fichier, pas de serveur obligatoire
① Consulter le dashboard (aucune installation)
☐ Double-cliquez sur
Lancer-Application.bat (ou directement sur MEDFRET_Pluto_Report_1.html) — il s'ouvre dans votre navigateur habituel, aucun serveur ni compte requis.☐ Gardez le dossier
assets/ à côté du fichier HTML (contient Chart.js) — sans lui, les graphiques ne s'afficheront pas.② Pouvoir le modifier avec Claude Code
Nécessite Node.js (pour Claude Code et pour les tests).
1
Installer Node.js
https://nodejs.org — téléchargez la version LTS, installez (Suivant × 3).
2
Installer Claude Code
npm install -g @anthropic/claude-code
3
Ouvrir PowerShell dans le dossier du projet
Dans l'explorateur, ouvrez ce dossier, cliquez dans la barre d'adresse, tapez
powershell, Entrée.4
Lancer Claude Code
claude
Décrivez ensuite votre modification (voir "Exemples de prompts").
Erreurs fréquentes
| Message | Solution |
|---|---|
| 'node' n'est pas reconnu | Node.js pas installé, ou terminal pas rouvert après l'installation. |
| Les graphiques ne s'affichent pas | Le dossier assets/js/ n'est pas à côté du HTML — vérifiez qu'il n'a pas été déplacé séparément. |
| Le dashboard s'ouvre mais reste vide | Rechargement forcé (Ctrl+F5) — le navigateur affiche parfois une ancienne version en cache. |
🗺️ Comment c'est construit
Le minimum à savoir avant de demander une modification
💡 Un seul fichier, données embarquées
MEDFRET_Pluto_Report_1.html contient sa mise en page, son style et toute sa logique dans un seul fichier. Les données (durées d'escale par catégorie de trafic) sont codées en dur dans le <script> en fin de fichier (RAW_DATA) — pas de base de données, pas de fichier séparé à charger au moment de l'ouverture.⚠️ Le dashboard et le classeur Excel sont deux fichiers indépendants
Depuis l'étape 3 (phase 2),
build_medfret_excel.py génère medfret_OUT.xlsx — un classeur d'audit en formules Excel vivantes, séparé de ce dashboard. Aucune connexion entre les deux, dans aucun sens : ce HTML ne lit jamais le xlsx, et le xlsx n'est jamais régénéré automatiquement depuis ce HTML. Modifier RAW_DATA ici ne change rien dans medfret_OUT.xlsx tant que vous ne relancez pas python3 build_medfret_excel.py vous-même (voir "Excel IN/OUT" plus bas).📁 Les fichiers du dossier
| MEDFRET_Pluto_Report_1.html | Le dashboard complet — le seul fichier nécessaire pour l'utiliser. |
| assets/js/chart.umd.min.js | Bibliothèque de graphiques (Chart.js), hébergée en local. |
| Data_Analystics_Logistics_2.xlsx | Classeur source externe (case d'étude d'origine) — données brutes et détail de la modélisation statistique (onglet Port_Duration). Non lié à medfret_OUT.xlsx ci-dessous. |
| Data_Analystics_Logistics_OUT.xlsx | Classeur de sortie du case d'étude d'origine (externe, non généré par ce projet). |
| build_medfret_excel.py | Script de build (Python) — génère medfret_OUT.xlsx à partir de escales_IN.csv (optionnel) ou des données embarquées. Manuel (terminal), jamais déclenché depuis le HTML. |
| medfret_OUT.xlsx | Classeur d'audit généré (6 onglets, formules vivantes) — indépendant de ce dashboard. |
| escales_IN.csv | Entrée optionnelle du classeur Excel (categorie,duree_jours) — absent = repli automatique sur les données embarquées dans build_medfret_excel.py (copie de RAW_DATA). |
| test_excel_medfret.py | Suite de tests du classeur Excel (distincte de test_medfret_dashboard.js, qui teste le HTML). |
| Ouvrir-Excel.bat | Ouvre directement medfret_OUT.xlsx d'un double-clic (génère un message clair si le fichier n'existe pas encore). |
| CONTEXTE.md | Provenance des données, méthodologie détaillée, limites connues. |
🤖 Comment l'IA est utilisée
Comme pour tous les projets de
TWIN agents IA : le dashboard n'appelle jamais Claude depuis le code. Tous les calculs (nettoyage IQR, statistiques, simulation Monte Carlo) sont exécutés en JavaScript pur dans le navigateur. C'est vous qui utilisez Claude Code en dehors du fichier, pour le faire évoluer.📊 Excel IN/OUT — classeur d'audit
Un fichier séparé, indépendant du dashboard — aucune connexion dans aucun sens
⚠️ Indépendance totale — ce dashboard ne lit jamais
medfret_OUT.xlsx, et ce classeur n'est jamais régénéré automatiquement depuis le dashboard. Les deux sont deux vues séparées des mêmes données de départ (copiées telles quelles dans build_medfret_excel.py). Modifier l'un ne change pas l'autre.🚀 Générer / mettre à jour le classeur
python3 build_medfret_excel.py
Lit
escales_IN.csv (optionnel, colonnes categorie,duree_jours) s'il est présent dans ce dossier ; sinon utilise automatiquement les mêmes données que RAW_DATA du dashboard (copie figée). Un backup horodaté de l'ancien classeur est créé à chaque run, jamais supprimé.📑 Les 6 onglets
| Historique | Durées d'escale brutes par catégorie (valeurs). |
| Nettoyage IQR | Q1/Q3/bornes/statistiques nettoyées — formules vivantes, seuil k modifiable (défaut 2.5, comme le curseur du dashboard). |
| Modèle | Paramètres des 6 lois de probabilité (valeurs de référence, copiées du dashboard — non recalculées, voir carte ci-dessous) + courbes CDF empirique vs modèle (formules vivantes). |
| KPI | Probabilité de respecter la cible par catégorie, recalculée réellement (formule) — à comparer aux cartes figées du dashboard. |
| Monte Carlo | 1000 tirages/catégorie via RAND() + Box-Muller (formules vivantes, non reproductibles à l'identique d'un recalcul à l'autre). |
| Tableau de bord | Synthèse consolidée, référence les 5 autres onglets. |
💡 Ce qui est recalculé en direct, et ce qui ne l'est pas
Formules vivantes : nettoyage IQR, courbes CDF empirique/modèle, probabilités KPI, tirages Monte Carlo, tout le tableau de bord.
Valeurs de référence (non recalculées) : les paramètres des 6 lois et leur MSE — la méthodologie exacte d'ajustement du dashboard (nombre d'intervalles, algorithme) n'est pas extractible de son code JavaScript. Ce n'est pas une omission mais une limite technique honnête, documentée dans
Valeurs de référence (non recalculées) : les paramètres des 6 lois et leur MSE — la méthodologie exacte d'ajustement du dashboard (nombre d'intervalles, algorithme) n'est pas extractible de son code JavaScript. Ce n'est pas une omission mais une limite technique honnête, documentée dans
build_medfret_excel.py et CONTEXTE.md.
🧭 Ouvrir le classeur
Double-cliquez sur
Ouvrir-Excel.bat, ou utilisez le lien "📊 Télécharger le classeur Excel (audit)" en haut du dashboard.✏️ Demander une modification à Claude Code
Vous n'avez pas besoin de savoir coder — juste de décrire précisément ce que vous voulez
1️⃣ Précisez l'onglet concerné (History, Model, KPI, Monte Carlo, Findings, EULA) — évite que Claude Code cherche au mauvais endroit.
2️⃣ Décrivez le comportement actuel puis voulu : "Actuellement X affiche Y, je voudrais Z."
3️⃣ Une demande à la fois — plus facile à vérifier et à annuler si besoin.
4️⃣ Si la donnée vient de l'Excel (
Port_Duration), précisez la catégorie (Fort/Moyen/Faible) et donnez les nouvelles valeurs.5️⃣ Demandez toujours une vérification après coup (voir "Tests de non-régression").
💡 Exemples de prompts
À copier-coller dans Claude Code, pas dans claude.ai
📊 Ajouter une valeur à l'historique
Dans MEDFRET_Pluto_Report_1.html, ajoute une valeur au
tableau RAW_DATA.Moyen (section DATA du script) : 1.85.
Vérifie ensuite que le compteur "n (clean)" de l'onglet
History pour la catégorie Moyen augmente bien en
conséquence.
🎚️ Changer un paramètre par défaut
Dans MEDFRET_Pluto_Report_1.html, le seuil IQR par défaut
(curK) est 2.5. Je voudrais qu'il démarre à 2.0 à
l'ouverture de la page, tout en restant ajustable par
l'utilisateur dans l'onglet History.
🎨 Changer une couleur
Dans MEDFRET_Pluto_Report_1.html, la couleur d'accent bleue
(--accent:#4f8ef7) est utilisée partout. Remplace-la par un
violet (#8b5cf6) dans toute l'application.
✅ Tests de non-régression
Deux niveaux complémentaires : vérification automatisée du code, et vérification visuelle par vous
⚠️ Ne considérez jamais une modification terminée juste parce que Claude Code dit "c'est fait" — vérifiez vous-même.
🤖 Niveau 1 — Suite automatisée (exécute le vrai moteur JS)
Demandez à Claude Code de lancer, ou lancez vous-même :
node test_medfret_dashboard.js
Vérifie 38 points : structure des 6 onglets, autonomie (aucune ressource externe), exactitude de RAW_DATA/cleanData/stats pour les 3 catégories, déterminisme de la simulation Monte Carlo, cohérence des modèles de distribution, absence de secret codé en dur. Une modification qui casse un de ces points fait échouer le test avant même d'ouvrir le navigateur.
📊 Niveau 1bis — Classeur Excel (si vous avez modifié build_medfret_excel.py)
python3 build_medfret_excel.py && python3 test_excel_medfret.py
Suite séparée (21 tests) : 0 erreur de formule (recalcul Excel réel), fidélité de
RAW_DATA au HTML source, formules vivantes sur les colonnes calculées, 1000 tirages Monte Carlo bien générés, cohérence KPI, absence de secret. N'affecte jamais test_medfret_dashboard.js ni l'inverse.🖱️ Niveau 2 — Vérification visuelle dans le navigateur
☐ Rechargement forcé (Ctrl+F5), pas un simple F5
☐ Console ouverte (F12) — aucun message rouge
☐ Cliquer sur les 6 onglets, vérifier que les graphiques Chart.js s'affichent bien (pas de zone vide)
☐ Si la modification touche RAW_DATA, vérifier History et Model et Monte Carlo (ils l'utilisent tous)
🏁 Validation de la version finale
Une fois toutes vos modifications terminées
☐
node test_medfret_dashboard.js → 38/38 tests passés☐ Si le classeur Excel a été modifié :
python3 test_excel_medfret.py → tests passés☐ Rechargement forcé, console vide sur les 6 onglets (History, Model, KPI, Monte Carlo, Findings, EULA)
☐ Double-clic direct sur le fichier (pas juste via Claude Code) pour confirmer qu'il s'ouvre normalement en usage réel
🛠️ Dépannage
| Situation | Solution |
|---|---|
| Ma modification n'apparaît pas | Ctrl+F5 plutôt que F5 (cache navigateur) |
| Un graphique reste vide/gelé | F12 → Console → copiez le message rouge et donnez-le à Claude Code |
| Les nombres du Monte Carlo changent à chaque rechargement | Ne devrait pas arriver (seed fixe = déterministe) — signe d'une régression, vérifiez que la seed n'a pas été supprimée par erreur |
| Je veux une copie de secours avant un gros changement | Copiez le fichier .html (clic droit → Copier/Coller) avant de demander la modification |
🔒 Sécurité
Vérifications automatisées le 2026-07-21
🎯 Pourquoi la surface de risque est limitée ici
Fichier HTML statique, sans serveur, sans stockage de données utilisateur (pas de
localStorage), sans export (pas de CSV, pas de mailto:), sans champ de saisie libre. Aucune donnée personnelle : les données portent sur des durées d'escale agrégées par catégorie de trafic, pas sur des personnes identifiables.🌐 Correctif d'autonomie (2026-07-21)
Le fichier chargeait à l'origine Chart.js depuis un CDN externe (cdnjs.cloudflare.com) — désormais vendorisé en local dans
assets/js/, comme les 5 autres projets TWIN. Le dashboard fonctionne maintenant hors ligne et ne dépend d'aucun tiers.✅ Vérifié par
test_medfret_dashboard.js (38 tests, à chaque modification)OK Aucune ressource (script/style/image) chargée depuis un domaine externe
OK Aucun secret codé en dur (clé API, mot de passe, clé privée)
OK Simulation Monte Carlo déterministe (pas de comportement aléatoire non maîtrisé)
🔐 Charte d'utilisation de l'IA
L'usage des outils d'IA sur ce projet est encadré par une charte commune aux 6 projets de
TWIN agents IA — usages/outils autorisés, données interdites, validation humaine avant action, contact référent : Charte_IA.md.