NégoceFlow
Supply Planning Lab
Prévisions, politiques de stock, causes de rupture et paramétrage sécurisé pour un réseau français synthétique de négoce de matériaux.
Une chaîne reproductible relie 1 078 272 lignes hebdomadaires aux décisions article–agence : sélection de modèles, segmentation ABC/XYZ, simulation de service, corrections massifiées, lissage de charge, gouvernance des données et déploiement en trois vagues.
Données synthétiques et non confidentielles · Résultats issus de simulations contrôlées · France · Juillet 2026.
Snapshot exécutif
Modèle v1.1 · Juillet 2026
Service unité
97,5 %
+5,8 pts vs baseline
Stock réseau agences
€6,08 M
-3,8 % vs baseline
Ruptures lignes
5,3 %
-4,9 pts vs baseline
QA
23/23
contrôles pipeline passés
Vue d'ensemble
Un réseau, une maille de décision, une boucle fermée
Le laboratoire couvre l'intégralité du cycle : depuis l'ingestion des données synthétiques jusqu'au déploiement contrôlé sur 72 agences, en gardant le même vocabulaire de KPI à chaque couche.
Agences
72
Régions
6
Entrepôts nationaux
4
Fournisseurs
24
Articles
320
Couples article–agence
10 368
Historique
104 semaines
Lignes de faits
1 078 272
Pipeline
Sept étapes, une lignée traçable
Étape 1
Ingest
ventes, stock, référentiels, promotions, calendrier
Étape 2
Prévoir
seasonal naïve, MA8, Croston-SBA, Ridge-Fourier
Étape 3
Segmenter
valeur ABC et profil de demande XYZ
Étape 4
Paramétrer
SS, ROP, MAX, présentation, MOQ, colisage
Étape 5
Simuler
service, ruptures, stock, CA perdu
Étape 6
Contrôler
qualité, four-eyes, hash, totaux, rollback
Étape 7
Déployer
pilote, vague 1, vague 2, hypercare
Indicateurs exécutifs
Ce que la simulation contrôlée produit
Les valeurs affichées comparent une baseline paramétrée avec une politique optimisée, mesurées sur les 13 semaines de test indépendantes du perimètre synthétique.
Service unité
97,5 %
91,7 % → 97,5 % · +5,8 pts
Service lignes
94,7 %
89,9 % → 94,7 % · +4,9 pts
Ruptures lignes
5,3 %
10,1 % → 5,3 % · -4,9 pts
Stock moyen réseau agences
€6,08 M
€6,32 M → €6,08 M · -€238 k
Opportunité brute de ventes servies
€4,98 M/an
6,2 % du CA périmètre · annualisation 13 semaines
Surstock brut / scénario conservateur
€2,54 M / €1,65 M
photographie d'ouverture · 65 % réalisable
WMAPE article–agence
57,0 %
70,7 % → 57,0 % · -19,4 % relatif
Pic de réception
-20,6 %
812 → 645 palettes / entrepôt-semaine
Corrections acceptées
28 410
95,8 % des 29 671 propositions
Contrôles
23/23 PASS
0 échec bloquant
Prévisions
Sélection locale, consolidation contrôlée
Quatre familles de modèles sont comparées sur 13 semaines de validation, puis mesurées sur 13 semaines de test indépendantes. Le modèle gagnant est retenu par couple article–agence. Une réconciliation par 40 groupes entrepôt–famille choisit également son poids de mélange sur la seule validation avant d'être verrouillée pour le test et le futur.
WMAPE baseline vs sélectionné
Consolidation à quatre niveaux, test 13 semaines
Unité : %
La sélection améliore de 19,4 % le WMAPE au grain article–agence. La réconciliation hiérarchique, choisie sans regarder le test, améliore également les trois niveaux consolidés face au saisonnier naïf.
Mix de modèles retenus
10 368 séries article–agence
Bias sélectionné
-4,6 %
Sous-prévision légère au grain série
Horizon test
13 semaines
Fenêtre indépendante de la validation
Modèles
4
Sélection par couple article–agence
Séries
10 368
Couples actifs article–agence
Stocks
Des cibles différenciées, pas un stock uniforme
Chaque classe de valeur reçoit une cible de service explicite. Les paramètres (SS, ROP, MAX) sont alors dimensionnés pour atteindre la cible avec le stock le plus faible compatible avec la variabilité observée.
Service par classe ABC
Cibles différenciées, baseline vs optimisé
Unité : service unité %
| Classe | Cible | Service baseline | Service optimisé | Stock baseline | Stock optimisé |
|---|---|---|---|---|---|
| A | 98,0 % | 92,46 % | 98,13 % | €2,21 M | €4,03 M |
| B | 96,0 % | 89,80 % | 96,17 % | €1,14 M | €1,10 M |
| C | 93,0 % | 91,86 % | 97,40 % | €2,97 M | €949 k |
Le stock est réalloué depuis la classe C vers la classe A : la valeur mobilise là où elle sert le plus le service, sans gonfler le stock total.
Frontière service – stock
Balayage du multiplicateur de safety stock
Point emerald : politique retenue (SS × 1,0) — 97,5 % à €6,08 M.
Logique de paramétrage
SS = variabilité demande × délai × quantile de service.
ROP = demande sur délai + SS + présentation + dotation promo.
MAX = demande sur (délai + revue) + SS + contraintes commerciales.
Arrondi final au colisage et au MOQ, avec plafond de capacité.
Ruptures
De l'événement à l'action corrective
Chaque événement de rupture reçoit une cause primaire unique via un arbre de règles déterministe. Le Pareto révèle que 87,6 % de la valeur perdue se concentre sur les trois premières causes.
Événements
8 323
Agences touchées
72
Articles concernés
148
Pertes simulées
€1,51 M
Top 3 des causes
87,6 %
de la valeur perdue
Pareto valeur perdue
Barres = € perdus · ligne = part cumulée
Paramètres
Réassort inadapté
Corriger SS / ROP / MAX en masse via le batch contrôlé, mesurer à J+14 et J+28 sur le service et la couverture projetée.
Aléas amont
OTIF fournisseur / entrepôt
Déclencher une alerte OTIF, activer une source de secours, allouer inter-agences et mettre à jour le délai effectif dans la politique.
Fin de vie
Pilotage EOL
Poser une date d'arrêt, redistribuer le stock, planifier l'écoulement et geler les paramètres pour éviter les propositions incohérentes.
Hiérarchie des règles RCA
Une seule cause primaire est assignée à chaque événement. L'ordre garantit qu'une cause structurelle (ex : donnée maître) ne soit jamais masquée par une conséquence aval.
Paramétrage
Proposer en masse, charger seulement ce qui est contrôlé
Le batch est une remédiation initiale — pas une charge hebdomadaire récurrente. Chaque ligne franchit quatre portes de contrôle avant d'entrer dans le lot accepté, et un rollback complet reste disponible.
Batch
NF-2026-07-MRP-001
Taux d'acceptation
95,8 %
9 962 couples modifiés
Champs
4
SS · ROP · MAX · lot size
Four-eyes
15,0 %
4 267 lignes à double revue
Rollback
28 410
Lignes réversibles
Timeline du lot
Chaque volume est réconcilié en aval par un contrôle total
29 671
Proposées
28 410
Acceptées
1 261
Rejetées & isolées
4 267
Four-eyes (15,0 %)
28 410
Lignes de rollback
Empreinte SHA-256
f45c90ec498b1e0cb44509023dbf8e67f76c1ee7eaaff28ef6bf563f95794310
Règle four-eyes
Écart relatif ≥ 200 %, ou exposition matérielle de classe A avec écart ≥ 75 % et impact ≥ €500, ou variation de délai ≥ 2 semaines.
Panneau de contrôles
| Contrôle | Règle | Réponse | Trace |
|---|---|---|---|
| Référentiel | Couple article–site connu | Rejet sinon | Reason code |
| Cohérence | MAX ≥ ROP ≥ SS ≥ 0 | Blocage ligne | Valeur avant / après |
| Amplitude | Seuil par champ & classe | Four-eyes | Approbateur requis |
| Réconciliation | Hash, nombre, sommes | Arrêt du lot | Contrôle total |
Opérations
Lisser les pics sans modifier le volume
Le lissage anticipe ou décale les réceptions à ± 1 semaine tant que la couverture projetée reste compatible avec le délai et la période de revue. Aucun lissage n'est autorisé s'il crée une rupture avant l'arrivée suivante.
Pic entrepôt-semaine
812 → 645
Palettes · -20,6 %
Coefficient de variation
-17,5 %
Volatilité réduite
Sem.-entrepôt en dépassement
12 → 0
Budget de slots respecté
Utilisation maximale
125,2 % → 99,2 %
Retour sous 100 %
Volume total
18 993,66
Palettes · écart 0,02
Charge réseau par semaine
Réceptions palettes agrégées sur les quatre entrepôts
Semaines 105 – 117
La capacité affichée est le budget de slots hebdomadaires de réception affecté au sous-ensemble analytique, pas la capacité physique totale d'une plateforme.
Déploiement
Trois vagues, des gates explicites, un rollback disponible
Le déploiement suit une progression pilote → vague 1 → vague 2. Chaque étape franchit six critères de sortie mesurables, et la Vague 2 identifie explicitement 16 gates conditionnels à traiter en préparation.
Pilote
12 agencesRégions
6
Readiness
87,6 %
Gates cond.
0
Vague 1
24 agencesRégions
6
Readiness
83,3 %
Gates cond.
0
Vague 2
36 agencesRégions
6
Readiness
78,1 %
Gates cond.
16
Séquence d'exécution
Critères de sortie
- Défauts sous seuil
- Owner nommé
- 100 % des lignes réconciliées
- Go / no-go signé
- Hash et totaux identiques
- Service / stock / overrides stables
Limite du modèle
Le tracker et les vagues constituent un design de déploiement simulé. Ils ne prouvent pas une adoption opérationnelle réelle et n'exécutent aucun changement dans un système en production.
Systèmes & BI
Une même définition des KPI dans chaque couche
Les formules ont une seule source. Python les publie, Excel les recalcule, Power BI les mesure, la spécification MicroStrategy les documente. Aucun KPI n'est redéfini localement dans une couche visible.
Couche 1
Sources synthétiques
exports SAP-like · ventes · stocks · offre · promotions · calendrier
Couche 2
Power Query
typage, filtrage précoce, clés, contrôles, requêtes massifiées
Couche 3
Python + SQL
génération, backtest, politiques, RCA, batch, vues analytiques
Couche 4
Excel
hypothèses, formules, simulateur, dashboard, QA
Couche 5
BI
star schema, mesures DAX, spécification MicroStrategy-ready
Couche 6
Publication
JSON statique, rapport, site, package versionné
Artefact
Excel
17 feuilles, ~45 000 formules, simulateur paramétrique, 9 gates workbook.
Artefact
Power Query
4 requêtes M documentées, typage explicite, filtrage tôt, folding lorsque disponible.
Artefact
Power BI
Schéma en étoile, mesures service/stock/forecast/RCA, table calendrier dédiée.
Artefact
SAP-like
Mapping de 4 champs, fichier accepté/rejeté, totaux de contrôle, hash, rollback.
Conventions du classeur
- Bleu — entrée Python
- Noir/blanc — formule Excel
- Vert — lien interne
- Amber — hypothèse éditable
- Rouge — blocage
Méthodologie
Des règles explicites, testables et versionnées
Chaque décision méthodologique est écrite, testée et rejouable. Le laboratoire n'affiche aucun chiffre qui ne dérive pas d'une formule documentée dans cette section.
Domaine 01
Données
Seed 20260713, séparation raw / interim / processed, clés stables, grain explicite.
Domaine 02
Prévision
Holdout 13 semaines, WMAPE et bias. Seasonal naïve, MA8, Croston-SBA, Ridge-Fourier.
Domaine 03
Saisonnalité
Fourier, jours fériés français, promotions, présentation, météo synthétique.
Domaine 04
Segmentation
ABC sur valeur annualisée, XYZ sur ADI et CV² pour caractériser l'intermittence.
Domaine 05
Stock
Service par classe, safety stock stochastique, ROP / MAX, MOQ, colisage, capacité.
Domaine 06
Ruptures
Arbre de règles déterministe, une cause primaire, Pareto valeur et événement.
Domaine 07
Batch
Validation ligne, four-eyes, accepté / rejeté, hash SHA-256, totaux et rollback.
Domaine 08
Rollout
Readiness, gates go / no-go, pilote, vagues, formation, hypercare J+14 / J+28.
- WMAPE
- Σ|réel − prévision| / Σréel
- Bias
- Σ(prévision − réel) / Σréel
- Service unité
- Σquantité servie / Σdemande latente
- Service lignes
- lignes intégralement servies / lignes avec demande
- Rupture lignes
- 1 − service lignes
- ADI
- périodes / périodes avec demande non nulle
- CV²
- (écart-type / moyenne)² sur demandes non nulles
- Safety stock
- SS = z × √(μL × σD² + μD² × σL²)
- ROP
- μD × μL + SS + présentation + 0,25 × promo
- MAX
- μD × (μL + revue) + SS + présentation + promo
Limites
- Données synthétiques, non confidentielles
- Pas de granularité journalière modélisée
- Ventes perdues sans backorder
- Météo illustrative
- Coûts simplifiés
- Configuration ERP réelle non couverte
- Assets BI livrés en spécifications
- Rollout simulé, aucun chargement
QA & gouvernance
Aucun résultat publié sans réconciliation
Le pipeline exécute 23 contrôles structurels, référentiels, de flux, de prévision, de service, de batch, de charge et de déploiement. La publication est refusée si un seul échoue.
Statut global
23 / 23
PASS0 échec bloquant · 8/8 guardrails de réalisme
Contrôles
23
Passés
23
Échoués
0
Contrôles détaillés
| ID | Famille | Description | Statut |
|---|---|---|---|
| STRUCT_001 | Structure | 1 078 272 lignes de faits | PASS |
| STRUCT_002 | Structure | 10 368 couples actifs | PASS |
| STRUCT_003 | Structure | 0 clé couple–semaine dupliquée | PASS |
| REF_001 | Référentiel | 0 couple de fait absent des dimensions | PASS |
| FLOW_001 | Flux | demande = ventes servies + ventes perdues | PASS |
| FLOW_002 | Flux | 0 stock négatif | PASS |
| FCST_001 | Prévision | WMAPE sélectionné inférieur au baseline | PASS |
| FCST_002 | Prévision | WMAPE réseau hebdomadaire < 10 % | PASS |
| FCST_003 | Prévision | WMAPE entrepôt–famille réconcilié ≤ baseline | PASS |
| SERVICE_A | Service | classe A ≥ 98 % | PASS |
| SERVICE_B | Service | classe B ≥ 96 % | PASS |
| SERVICE_C | Service | classe C ≥ 93 % | PASS |
| STOCK_001 | Stock | stock optimisé sous budget baseline | PASS |
| RUP_001 | Ruptures | taux de rupture lignes en baisse | PASS |
| BATCH_001 | Batch | 0 statut rejeté dans le lot accepté | PASS |
| BATCH_002 | Batch | 1 261 rejets isolés | PASS |
| BATCH_003 | Batch | 1 hash SHA-256 sur le lot accepté | PASS |
| BATCH_004 | Batch | four-eyes = 15,0 % ≤ 20 % | PASS |
| LOAD_001 | Charge | écart de volume 0,02 ≤ 0,10 palette | PASS |
| LOAD_002 | Charge | 12 semaines–capacité critiques identifiées au baseline | PASS |
| LOAD_003 | Charge | 0 dépassement après lissage | PASS |
| ROLLOUT_001 | Déploiement | 72 agences couvertes | PASS |
| ROLLOUT_002 | Déploiement | 6 régions couvertes | PASS |
Séparation des responsabilités
- Owner métier approvisionnement
- Owner données
- Opérations entrepôt
- Offre & merchandising
- SI
- Agence pilote
Dossier complet
Examiner le modèle, pas seulement les résultats
Le package réunit le rapport technique, le classeur à formules, les données synthétiques, les scripts Python / SQL / Power Query, les spécifications BI, les contrôles, les fichiers de batch et le prompt de publication.