Exigence par exigence : objet PBI, statut Couvert / Partiel / Non fait. Sources : canvas CDC + brief Power App. Le livré est un seed lecteur.
Exigences reprises du canvas CDC (classeur 22 feuilles, maquettes, briefing 16.02.2026) et, pour le contrat d'écriture, du brief Power App déjà livré. Rien n'est inventé. Le canvas CDC disait encore « Absent du PBIX » : ce tableau met à jour le constat pour le module 1 seulement.
Statuts : Couvert = le seed PBI implémente l'exigence en lecture ou en DAX. Partiel = écran ou formule présents mais incomplets vs CDC. Non fait = pas dans le PBIP actuel (souvent app / Dataverse / fichier de sortie).
Le livré est un seed lecteur, pas le RDE d'écriture. Power BI calcule une proposition ; l'humain ne peut pas encore la verrouiller.
Proposition DAX vs actuel persisté ; grain décision EAN × circuit × année ; grain objectif EAN × enseigne × PeriodKey ; pas d'écriture dans cr568_negotiation_current.cr568_prio_ref.
| # | Exigence CDC | Objet PBI | Statut | Commentaire |
|---|---|---|---|---|
| P1 | Écran Hero + règle 50 % NR | Page Prio Réfs - Hero ; Poids NR Cumulé ; Hero proposé ; % NR / Nb réfs HERO | Couvert | Walk DAX conforme au commentaire TMDL / CDC. Cartes NoFilter. |
| P2 | Contour FOOD / BEV / OTG | Slicer Dim_Produit_EAN[Contour] | Couvert | Présent sur les 4 pages. |
| P3 | Statut Prio par circuit (HM / SM / Proxi) | Slicer circuit ; PRIO actuel → prio_ref_HM/SM/Proxi | Couvert | Un EAN peut être HERO en HM et OTHER en Proxi (spec). |
| P4 | Lecture spec / typologie produits | Spec_Produit_Wide, Dim_Spec_Produit, Dim_Prio → Bridge[PRIO] | Couvert | Fichier live : Specifications_produits.xlsx (CDC nommait aussi typologie_produits.xlsx). |
| P5 | Filtre Prio Réfs sur Négo (3 colonnes circuit) | Z_PrioRef + Filtre PrioRef / Tranche Prio + Bridge[PRIO] | Couvert | Préexistant, hors pages Prio. Libellé AUTRE vs OTHER. |
| P6 | Valorisation Prio = sell-out / NR, pas négo | NR_Finance, Poids NR/Circuit (Fact Finance) | Couvert | Le walk n'utilise pas le ledger Dataverse. |
| P7 | Navigation Home → module Prio | Tuile Home → b2be14e97edc42e38e63 ; onglets internes | Couvert | Strat / PL / Objectifs HiddenInViewMode. |
| P8 | DV Objectif lue hors slicer Versus Saisie | DV Objectif Prio = SUM(Objectifs[DV Objectif]) | Couvert | Mesure dédiée. La pondération circuit Négo (Dim_Poids) n'est pas refaite ici. |
| P9 | Écran Strat + scoring Perfect Store | Page Strat ; Strat proposé ; cartes STRAT | Partiel | Bande 50–80 % NR seulement. Formule score CDC absente du TMDL (commentaire mesure). |
| P10 | Liste de priorité (ranking PL) | Page Liste prio ; PL actuel ; PL proposé | Partiel | Actuel = ranking_PL_* spec. Proposé = rang dense NR Hero+Strat, pas un score métier. |
| P11 | Écran Objectifs DV, grain EAN × enseigne × Q | Page Objectifs ; DV Objectif Prio ; Nb EAN Objectif | Partiel | Table au grain EAN. Pas de label_enseigne_nvx2 ni PeriodKey à l'écran (brief : à ajouter pour l'app). |
| P12 | Unitaires, pas de refs HD | Slicer conditionnement ; Spec_Produit_Wide priorise UNITAIRE | Partiel | Recommandé, pas imposé. Les jumeaux HD existent encore dans la spec (SELECTEDVALUE peut rester blank). |
| P13 | Périmètre obj HMSM + CRF City/Contact + Franprix | Objectifs.xlsx déjà au grain enseigne | Partiel | Lecture globale. Pas de filtre page ni refus Drive/HD (refus prévu dans l'app). |
| P14 | DV/DN Objectif Négo « depuis Prio », pondération circuit | Objectifs ↔ Bridge ; mesures Objectif existantes | Partiel | Les obj Excel alimentent déjà Négo. Prio ne les écrit pas. Pondération = Dim_Poids historique, pas un nouveau moteur Prio. |
| P15 | Proposition vs actuel (humain confirme / force) | Colonnes proposé + actuel ; console placeholder | Partiel | Affichage oui. Pas de Patch, pas de source PROPOSE/FORCE. |
| P16 | App restreinte PS + DXI + persist Dataverse | — | Non fait | Pas de tables cr568_prio_decision / cr568_prio_objectif dans le modèle. Pas de RLS Prio. |
| P17 | Écrivain prio_refs.xlsx (sortie automatique CDC) | — | Non fait | CDC Sources : colonnes « à compléter ». Non produit. |
| P18 | Viz + cross-circuit (maquette module 3) | — | Non fait | Hors sprint brief. Pas de page dédiée. |
| P19 | Scoring Strat chiffré (croissance, marge, DN) | Strat proposé (bande NR) | Non fait | En attente formule Perfect Store. Remplacera ou complétera le DAX. |
| P20 | Écriture INNO (statut société / réno) | PRIO actuel peut afficher INNO si spec | Non fait | Pas un walk NR. Hors scope brief. |
| P21 | Embed Power Apps + flux refresh dataset | Card texte acedc191357f4eac992b | Non fait | Même pattern que Saisie, autre appId. Dataset 612ef347-… non branché sur un writeback Prio. |
| P22 | Sécurité : ne pas écrire le ledger négo | Aucune écriture PBI | Couvert | Respecté par absence d'écrivain. cr568_prio_ref sur negotiation_current reste une étiquette Négo. |
| Livrable restant | Owner indiqué au brief | Bloque le seed lecteur ? |
|---|---|---|
| Tables + choices + security roles PowerRange | Dataverse / DXI | Non — la lecture Excel continue |
| App 4 écrans + Notify + bouton publier | Power App | Non |
| Visuel Power Apps × 4, drillFilter, host_screen | Power BI (plus tard) | Non |
| Mesures fallback Dataverse / spec | Power BI (plus tard) | Non tant que l'app n'écrit pas |
| Formule Strat PS | Perfect Store puis app + PBI | Oui pour un Strat CDC-complet |
On peut ouvrir Hero, filtrer HM + FOOD + UNITAIRE + année, voir le walk 50 % et comparer à la spec. On ne peut pas figer une décision, publier prio_refs.xlsx, ni restreindre l'accès aux seuls PS/DXI depuis ce PBIX. Les pages Strat / Liste / Objectifs sont utilisables comme brouillon visuel.
P22 est « couvert » uniquement parce que le seed n'écrit pas le ledger. Ce n'est pas une sécurité positive.
| CDC / maquette | Dans le PBIX actuel | Statut |
|---|---|---|
| Hero | Prio Réfs - Hero | Seed lecteur |
| Strat | Prio Réfs - Strat | Seed, scoring partiel |
| PL / liste prio | Prio Réfs - Liste prio | Seed lecteur |
| Objectifs | Prio Réfs - Objectifs | Seed grain EAN |
| Viz / cross-circuit | Absent | Non fait |
| Console de saisie Prio | Card « à brancher » | Non fait |