MIRROR
MIRROR
Un double numérique d'une petite boutique en ligne, pour tester des politiques de réapprovisionnement avant de les appliquer.
Ne jamais confondre ce qu'on sait et ce qu'on suppose.
Observé
Trois CSV : produits, ventes (avec stock de fin de journée), commandes fournisseur. Stockés tels quels.
table datasetsHypothèses
Demande, délais, coûts estimés ; politique actuelle supposée ; scénarios. Modifiables, sérialisés en JSON avec chaque expérience.
ExperimentConfigSimulé
Une ligne par scénario × politique × monde. Toujours étiqueté comme simulé dans l'interface.
table resultsRésultats simulés à partir d'hypothèses et de données fictives. Pas des gains réels garantis.
Combien de stock de sécurité ?
Modèle jouet écrit pour cette présentation (1 produit, 90 jours, mêmes nombres aléatoires pour les deux politiques). Le vrai MIRROR utilise SimPy, 3 produits et 11 politiques.
d'écart apparié pour sQ z=2.0 face à la politique actuelle supposée, sur 90 jours. Meilleure dans 100 % des mondes.
« z = 1,5 ; 2,0 ; 2,5 et sS z=2,0 sont indiscernables : la conclusion robuste est “stock de sécurité z ≥ 1,5 et lots EOQ”, pas le choix précis de z. »
Et si tout tournait mal ?
Effondrement de la demande
Pic de demande
Délais fournisseur ×2
Rupture fournisseur
Coûts d'achat +25 %
Combiné
Taux de service quand les délais doublent
Regret maximal de sQ z=2.0 sur les 6 scénarios : 38 €. Mesures : IC95, P5/P95, CVaR 5 %, sensibilité un-facteur-à-la-fois.
Un simulateur se vérifie avant de se croire.
tests pytest réussis, dont l'interface Streamlit en headless
contrôles sur cas à résultat connu, dont une implémentation de référence indépendante
simulations dans l'expérience nº 1, rejouées à l'identique
par simulation (3 produits × 90 jours)
Demande de SAC-TOILE (24 jours de rupture) : corriger la censure change l'estimation
Reproduction : l'expérience nº 1, rejouée depuis sa seule configuration, redonne la même empreinte a86ff7be310693a7.
Simulé, pas promis.
MIRROR tourne en local, n'exécute aucune commande, aucune transaction, et ne se connecte à aucun compte réel.