roadmap-data.json. Make sure it's in the same folder as this page and the page is served over http(s), not opened directly as a file://.Download JSON saves
roadmap-data.json to replace by hand in the repo. Publish via PR opens a prefilled issue on rexel-hq/overlay-pm; submit it and a GitHub App opens the pull request for you (no token needed). Either way roadmap.html itself shouldn't need to change.
How the scores work
Every sprintable overlay (Figma status = Ready + DS ready + not Done/Rejected) gets three scores that combine into one Global Score. Scores are information for deciding priorities: they no longer place overlays in waves (see "Waves" below). Figma tracks three states — Not started, In progress, Ready — but only "Ready" counts toward being sprintable; "In progress" is informational only, same as "Not started" for scoring purposes.
Priority Score /100 — 50% of Global
P = ROUND((BI×20 + JC×20 + CI×20 + UF×15 + CV×15 + FIR×10) / 4, 0)
BI = Business Impact · JC = Journey Criticality · CI = Conversion Impact · UF = Usage Frequency · CV = Cross-site Visibility · FIR = Front Integration Risk (inverted — 4 = simple). All criteria are scored 1 (low) to 4 (high).
Readiness Score /100 — 30% of Global
R = ROUND((LCV×70 + (5−IR)×20 + (5−TC)×10) / 4, 0)
LCV = Lead Country Validation (4 = no validation needed, 1 = not validated). IR = Implementation Risk and TC = Test Coverage required are both inverted — a higher raw score means more risk/coverage needed, which pulls Readiness down.
Page Priority /100 — 20% of Global
Fixed by where the overlay lives: PDP / PLP / Header = 100 · All pages / Transversal = 80 · Cart / Checkout = 60 · Quick Order / Account / Joblists / Orders = 30. Overlays spanning multiple pages take the highest-tier score.
Global Score /100
G = ROUND(0.5×P + 0.3×R + 0.2×PP, 0)
Only computed when Figma = Yes, DS = Yes, and status is not Rejected — everything else shows as "NS" (non-scored). A shipped state (Shipped / Activated) still shows its score.
Waves
Statut (Front) vs Status (Back)
Each overlay tracks two independent statuses. Statut (Front) is the Angular/Elektra DS front-end migration — it's the one that drives the Global Score and wave logic above. Status (Back) tracks backend migration progress separately, since the back doesn't move at the same pace as the front. Status (Back) is purely informational: changing it never affects scores or wave assignment.