api+front : le drapeau « reconstitué » des courbes suit la part imputée du seau (#267) #268

Merged
gabriel merged 3 commits from marvin/267-seuil-seau-impute into develop 2026-09-10 17:39:29 +00:00
Member

Ferme #267.

Le constat

Les courbes de consommation marquaient tout un seau « reconstitué (EF-04) » dès une seule minute imputée : bool_or sur 60 minutes (barre horaire) ou 1 440 (barre journalière). SITE003 (data center) et SITE005 (hôpital), seuls sites éligibles au régime « report » de l'ADR 0006, ressortaient hachurés sur toutes leurs barres à 100 % de disponibilité.

Deux commits

api — le seuil (#267)
Les trois requêtes de série remontent le nombre de minutes reconstituées du seau ; _seau_impute tranche : le seau est « reconstitué » à partir de la moitié de ses minutes retenues (SEUIL_SEAU_IMPUTE = 0.5, constante unique). Contrat imputee: bool inchangé.

front — décision produit dans le fil du #267
La courbe de la fiche site ne distingue plus du tout le mesuré du reconstitué : une seule teinte, seule la prévision se détache. La méthode d'une valeur reste lisible au clic (panneau de traçabilité, fenêtre 24 h). Le reste du tableau de bord (écran Qualité, courbe du parc, profil horaire) garde la distinction.

Connu et assumé

Sur les fenêtres 7 j / 30 j de la fiche site, qui n'ont pas de traçabilité au clic, la méthode d'une valeur n'apparaît plus nulle part.

Vérification

  • pytest tests/unit/api (244) + cas test_une_minute_imputee_isolee_ne_signale_pas_le_seau
  • pytest tests/integration/test_lectures_tableau_de_bord.py — cas paramétré test_le_seau_est_impute_a_partir_de_la_moitie_de_ses_minutes (à jouer avant merge, base Timescale requise)
  • npm run test:unit (514) + npm run build

À suivre (hors PR)

Réviser le seuil de 10 min du régime « report » de l'ADR 0006 : sur un data center à ~40 % de minutes nulles, il impute quasiment tous les trous.

Ferme #267. ## Le constat Les courbes de consommation marquaient tout un seau « reconstitué (EF-04) » dès **une seule** minute imputée : `bool_or` sur 60 minutes (barre horaire) ou 1 440 (barre journalière). SITE003 (data center) et SITE005 (hôpital), seuls sites éligibles au régime « report » de l'ADR 0006, ressortaient hachurés sur **toutes** leurs barres à 100 % de disponibilité. ## Deux commits **`api` — le seuil (#267)** Les trois requêtes de série remontent le *nombre* de minutes reconstituées du seau ; `_seau_impute` tranche : le seau est « reconstitué » à partir de la moitié de ses minutes retenues (`SEUIL_SEAU_IMPUTE = 0.5`, constante unique). Contrat `imputee: bool` inchangé. **`front` — décision produit dans le fil du #267** La courbe de la **fiche site** ne distingue plus du tout le mesuré du reconstitué : une seule teinte, seule la prévision se détache. La méthode d'une valeur reste lisible au clic (panneau de traçabilité, fenêtre 24 h). Le reste du tableau de bord (écran Qualité, courbe du parc, profil horaire) garde la distinction. ## Connu et assumé Sur les fenêtres 7 j / 30 j de la fiche site, qui n'ont pas de traçabilité au clic, la méthode d'une valeur n'apparaît plus nulle part. ## Vérification - `pytest tests/unit/api` (244) + cas `test_une_minute_imputee_isolee_ne_signale_pas_le_seau` - `pytest tests/integration/test_lectures_tableau_de_bord.py` — cas paramétré `test_le_seau_est_impute_a_partir_de_la_moitie_de_ses_minutes` (à jouer avant merge, base Timescale requise) - `npm run test:unit` (514) + `npm run build` ## À suivre (hors PR) Réviser le seuil de 10 min du régime « report » de l'ADR 0006 : sur un data center à ~40 % de minutes nulles, il impute quasiment tous les trous.
Les trois requêtes de série posaient `imputee` avec un `bool_or` sur tout
le seau : une seule minute interpolée sur 60 (barre horaire) ou sur 1 440
(barre journalière) hachurait la barre entière. SITE005, à 100 % de
disponibilité avec quelques minutes lissées, ressortait « reconstitué »
sur toutes ses barres, à toutes les fenêtres.

Les requêtes remontent désormais le nombre de minutes reconstituées du
seau, et `_seau_impute` tranche sur la part (SEUIL_SEAU_IMPUTE = 0.5).
En deçà, la barre reste « mesuré » ; le détail minute par minute reste
lisible dans l'infobulle et le panneau de traçabilité (EF-04). Le
contrat `imputee: bool` et le front sont inchangés.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UTZArbi4HKZnxmZrrkc9Pz
front : la courbe de la fiche site ne distingue plus le mesuré du reconstitué
Some checks failed
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 48s
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 8s
Intégration / Terraform — format, validité et lint (pull_request) Successful in 15s
Intégration / Checkov — audit de la configuration (pull_request) Successful in 17s
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 18s
Intégration / Python — qualité, tests et dépendances (pull_request) Failing after 4m2s
787c710ac5
Décision produit dans le fil du #267. Sur un data center ou un hôpital, le
régime « report » de l'ADR 0006 reconstitue en continu une large part des
minutes : hachurer ces barres faisait lire une avarie permanente là où il
n'y en a pas. Toute la consommation est tracée dans une seule teinte ;
seule la prévision se détache.

- barres : plus de motif ni de contour, `imputee` n'influe plus sur le rendu
- légende : « mesuré / reconstitué (EF-04) » devient « consommation »
- infobulle et résumé clavier : ne qualifient plus la valeur de reconstituée

La méthode d'une valeur reste lisible au clic dans le panneau de
traçabilité (fenêtre 24 h). Connu et assumé : sur les fenêtres 7 j / 30 j,
qui n'ont pas de traçabilité, la méthode n'apparaît plus nulle part.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UTZArbi4HKZnxmZrrkc9Pz
marvin self-assigned this 2026-09-10 14:04:12 +00:00
marvin requested reviews from florian and removed review requests for justine 2026-09-10 14:04:24 +00:00
Merge branch 'develop' into marvin/267-seuil-seau-impute
All checks were successful
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 48s
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 8s
Intégration / Terraform — format, validité et lint (pull_request) Successful in 16s
Intégration / Checkov — audit de la configuration (pull_request) Successful in 20s
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 20s
Intégration / Python — qualité, tests et dépendances (pull_request) Successful in 6m1s
7c94bcb410
gabriel approved these changes 2026-09-10 17:39:15 +00:00
gabriel merged commit bd8f91af00 into develop 2026-09-10 17:39:29 +00:00
gabriel deleted branch marvin/267-seuil-seau-impute 2026-09-10 17:39:29 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
g2/enervision!268
No description provided.