Quel point de commande équilibre coût et ruptures de stock ?
Dans ce modèle de stock à 12 mois de demande incertaine, relever le point de commande de 180 à 250 unités coûte en moyenne 345 de plus par an et ramène la probabilité d’une année avec au moins une rupture de stock de 28,0 % à 5,1 %. Une simulation de Monte-Carlo mesure les deux, politique par politique, sur la même demande : le meilleur point de commande est celui dont le surcoût de possession vaut les ruptures de stock qu’il évite.
À 180 unités, la politique coûte en moyenne 2 133 par an (dans la monnaie du fichier, qui n’en précise aucune). Le ramener à 120 ne fait économiser que 28 par an et rend une rupture de stock probable (70,0 %). Commander 600 unités à la fois au lieu de 400 coûte à peu près autant que le point de commande plus élevé, mais laisse encore une probabilité de 21,6 %.
Le modèle
Le fichier Excel est un plan de stock mensuel ordinaire, sur une seule feuille, Plan, avec des formules simples comme MIN et IF, sans fonction de complément. La politique et les coûts sont en haut :
Point de commande B1 | 180 unités |
|---|---|
Quantité à commander B2 | 400 unités |
Coût de possession B3 | 0,5 par unité restante en fin de mois |
Coût de vente perdue B4 | 8 par unité de demande non satisfaite |
Coût de commande B5 | 150 par commande |
Stock initial B6 | 400 unités |
Demande mensuelle B10:M10 | loi binomiale négative, n = 8, p = 0,05 : moyenne 152 unités, écart type 55,1 (définie dans xellstorm, pas dans le fichier) |
En dessous, chacun des 12 mois a sa colonne (B à M) qui suit le stock : demande, stock initial, unités reçues et disponibles, unités vendues et perdues, stock restant après les ventes et à la clôture, commande passée et coût du mois. À la fin de chaque mois, si le stock restant est inférieur au point de commande, on passe une commande de la quantité à commander, qui arrive au début du mois suivant. La demande que le stock ne peut satisfaire est perdue, et non reportée. Chaque mois coûte : le coût de possession du stock restant, le coût de vente perdue pour chaque unité non vendue et, quand une commande est passée, le coût de commande.
Trois cellules résument l’année : Total cost (B21), le coût total ; Fill rate (B22), le taux de service, c’est-à-dire la part de la demande de l’année satisfaite sur stock ; et Months with lost sales (B23), le nombre de mois avec ventes perdues. Une rupture de stock est ici un mois où la demande dépasse le stock disponible, si bien que des ventes sont perdues ; une année avec rupture de stock compte au moins un mois de ce type.
Le fichier à télécharger contient le plan avec une demande fixe provisoire dans la ligne de demande. La distribution de la demande, les trois sorties, l’objectif de rupture de stock et les trois politiques alternatives sont réglés dans xellstorm et se chargent avec l’exemple, à côté du fichier, qui reste tel que vous l’auriez construit.
Demande : une loi binomiale négative chaque mois
La demande de chaque mois (Plan!B10:M10) est tirée indépendamment dans une loi binomiale négative de paramètres n = 8 et p = 0,05, selon le paramétrage de scipy (le nombre d’échecs avant le n-ième succès). Sa moyenne est n(1 − p)/p = 152 unités par mois et son écart type √(n(1 − p))/p = 55,1. La demande d’un article en stock est un comptage dont la variation dépasse souvent celle d’une loi de Poisson ; ici, une loi de Poisson de même moyenne n’aurait qu’un écart type de 12,3. La loi binomiale négative admet cette dispersion supplémentaire ; contrairement à une distribution normale, elle ne tire jamais de demande négative et a la queue la plus longue du côté des valeurs hautes.
Les 60 000 mois simulés (5 000 années de 12 mois) ont une moyenne de 152,0 unités et un écart type de 55,1, conformes aux formules. Les mois sont indépendants : il n’y a ni tendance ni saison. Pour une demande qui dérive, xellstorm propose aussi, pour une plage de cellules, des entrées en séries temporelles, comme une marche aléatoire ou une série à retour à la moyenne.
Quatre politiques sur la même demande
L’exemple compare la politique de base (point de commande 180, quantité à commander 400) à trois scénarios, qui changent chacun une cellule : point de commande 120, point de commande 250, et commandes de 600 unités. Chaque scénario utilise les mêmes 5 000 années de demande que la base (c’est la technique des nombres aléatoires communs) : les différences entre politiques viennent des politiques, pas de la chance des tirages.
| Politique | Coût moyen | Coût au P90 | Taux de service | Années avec rupture |
|---|---|---|---|---|
| Politique de base | 2 133 | 2 377 | 99,4 % | 28,0 % |
| Point de commande 120 | 2 105 | 2 688 | 97,4 % | 70,0 % |
| Point de commande 250 | 2 478 | 2 668 | 99,9 % | 5,1 % |
| Quantité à commander 600 | 2 465 | 2 727 | 99,5 % | 21,6 % |
Le P90 est le coût annuel que 90 % des années simulées ne dépassent pas, et le taux de service est la moyenne sur les années. Les taux de service paraissent tous élevés, de 97,4 % à 99,9 %, et pourtant la probabilité d’une année avec rupture de stock va de 5,1 % à 70,0 %. Le taux de service compte des unités, et un mois de rupture ne perd généralement qu’une petite part de la demande de l’année ; la probabilité de rupture compte les années où un client a été refusé au moins une fois. Laquelle compte le plus dépend de l’activité : regardez les deux.
Où va le coût
Le coût de chaque année se compose de trois parts : la possession du stock restant à la fin de chaque mois, les commandes passées, et les ventes perdues quand le stock s’épuise.
Un point de commande plus élevé garde plus de stock disponible. À 250, le coût de possession augmente de 397 par an tandis que les ventes perdues ne baissent que de 84 : le coût de vente perdue de 8 par unité ne suffit donc pas, à lui seul, à le justifier : l’intérêt d’un point de commande plus élevé tient à ce que vous coûte une rupture de stock en plus de cela.
Les commandes plus grandes fonctionnent autrement. Avec 600 unités par commande, l’année demande en moyenne 3,1 commandes au lieu de 4,5, ce qui économise 203 de coûts de commande mais ajoute 562 de coût de possession. Moins de commandes, c’est moins de mois où le stock se trouve juste au-dessus du point de commande sans livraison en route ; mais chacun de ces mois est à peu près aussi exposé qu’avant : c’est le point de commande, et non la taille de commande, qui fixe la quantité de stock devant tenir seule pendant un mois.
Ce que rapporte le surcoût
Le modèle facture déjà 8 pour chaque unité de demande perdue. Si la rupture coûte davantage, par exemple en livraisons urgentes, pénalités ou clients partis ailleurs, divisez le surcoût de chaque politique par les mois de rupture qu’elle évite pour voir ce que coûte un mois de rupture évité :
- Le point de commande 250 coûte 345 de plus par an et évite 0,27 mois de rupture par an en moyenne (0,32 ramené à 0,05). Il est rentable si un mois de rupture vous coûte plus de 1 291 en plus des ventes perdues.
- Le point de commande 120 économise 28 par an (1,3 %) et ajoute 0,75 mois de rupture par an. Il n’est rentable que si un mois de rupture vous coûte moins de 37 en plus des ventes perdues.
- Les commandes de 600 coûtent 333 de plus par an et évitent 0,09 mois de rupture par an : 3 816 par mois de rupture évité. Pour un surcoût à peu près identique, le point de commande plus élevé en évite 0,27.
Tout dépend donc d’un nombre que le fichier ne contient pas : ce que vous coûte un mois de rupture au-delà des ventes perdues. Si un mois de rupture vous coûte entre 37 et 1 291 en plus des ventes perdues, le point de commande de base de 180 a le coût total le plus bas des quatre politiques ; au-dessus de 1 291, c’est le point de commande 250, et seulement en dessous de 37 le point de commande 120. Les commandes plus grandes ne sont jamais les meilleures.
Stock de sécurité : le point de commande au-dessus d’un mois moyen
À la fin d’un mois sans commande, le stock restant doit couvrir tout le mois suivant à lui seul : la première livraison arrive au début du mois d’après. Le point de commande doit donc couvrir un mois de demande, et la part au-dessus d’un mois moyen de 152 unités est le stock de sécurité : 28 unités au point de commande de base de 180, soit 0,51 écart type de la demande mensuelle, et 98 unités (1,78 écart type) à 250. Un point de commande de 120 est inférieur de 32 unités à un mois moyen, ce qui explique que les ruptures deviennent probables.
La formule classique, stock de sécurité = z × σ (σ étant l’écart type de la demande sur la durée qu’une commande doit couvrir, ici un mois), prend z dans une table de la loi normale, d’après la probabilité de rupture que vous acceptez sur un cycle de réapprovisionnement. La simulation mesure directement les conséquences : la fréquence des années avec rupture, le taux de service et le coût, sur une demande asymétrique et jamais négative.
La même demande, année par année
Comme toutes les politiques subissent la même demande, les années peuvent être comparées une à une. Le point de commande 120 est moins cher que la base dans 59,5 % des années, et la différence médiane est une économie de 150. Mais il coûte plus cher dans 30 % des années, jusqu’à 2 989 de plus : chacune de ces années, il perd plus de ventes que la base, à 8 l’unité.
Cette longue queue à droite explique pourquoi le coût moyen le plus bas s’accompagne du P90 le plus élevé des trois points de commande : 2 688, contre 2 377 pour la base et 2 668 pour le point de commande 250. Mesurée au P90, la politique la moins chère en moyenne est la plus chère des trois.
Le même appariement rend les taux de service faciles à comparer. Le point de commande 250 a un taux de service au moins égal à celui de la base chacune des 5 000 années, et supérieur dans 23,7 % ; le point de commande 120 n’a jamais un taux de service supérieur à celui de la base. Les commandes plus grandes sont moins tranchées : elles font baisser le taux de service dans 7,2 % des années, car le stock est alors bas d’autres mois, parfois juste avant un mois de forte demande.
Essayez vous-même
- Ouvrez le modèle dans xellstorm. La plage de demande, les trois sorties, l’objectif (mois avec ventes perdues supérieurs à zéro) et les trois scénarios, nommés « Reorder at 120 », « Reorder at 250 » et « Bigger orders », sont déjà définis ; rien à installer, pas d’inscription, et le calcul se fait dans votre navigateur.
- Lancez la simulation. La base s’exécute d’abord, puis chaque scénario sur les mêmes tirages aléatoires et le même nombre d’itérations. Avec la graine de l’exemple (1) et 5 000 itérations, vous retrouvez les nombres de cette page.
- À l’étape Results, choisissez « Total cost » (coût total), « Fill rate » (taux de service) ou « Months with lost sales » (mois avec ventes perdues). Le panneau Scenarios trace la courbe en S de chaque politique sur les mêmes axes, et son tableau donne la moyenne, le P10, le P90, la probabilité de l’objectif (sur les mois avec ventes perdues), l’écart par rapport à la base, et la part des itérations où chaque scénario est supérieur ou inférieur à la base. Le panneau Trial by trial met en regard le coût d’un scénario et celui de la base, itération par itération.
- Changez le point de commande d’un scénario à l’étape Distributions et relancez. Pour voir d’un coup toute une plage de points de commande, utilisez l’étape Optimize : choisissez Sweep (balayage), faites de la cellule du point de commande (
Plan!B1) la décision, et ajoutez comme statistiques la moyenne de Total cost et la probabilité que les mois avec ventes perdues soient supérieurs à zéro.
Puis-je le faire avec Excel seul ?
En partie. Excel a NEGBINOM.DIST pour les probabilités binomiales négatives, mais pas de fonction inverse pour y tirer des valeurs ; il faut donc contourner le problème pour la demande de chaque mois, avec une table de recherche des probabilités cumulées et RAND(), ou, pour un n entier, avec la somme de n tirages géométriques. Comparer des politiques sur la même demande suppose aussi de figer ces nombres aléatoires, par exemple en les collant en valeurs, avant de changer le point de commande. La simulation de Monte-Carlo dans Excel présente l’approche générale, et ce qui change quand un outil fait tourner le modèle à votre place.
Questions
Qu’est-ce qu’un point de commande ?
Un point de commande est le niveau de stock qui déclenche une nouvelle commande : quand le stock tombe en dessous, vous commandez davantage. Il doit couvrir la demande attendue jusqu’à l’arrivée de la commande plus une marge, le stock de sécurité, pour une demande supérieure à la moyenne. Dans ce modèle, le stock n’est contrôlé qu’à la fin de chaque mois et une commande arrive au début du suivant : le stock restant sans commande doit donc tenir tout un mois, et le point de commande couvre un mois de demande.
Quelle différence entre taux de service et probabilité de rupture de stock ?
Le taux de service est la part de la demande satisfaite sur stock sur une période ; la probabilité de rupture de stock est la part des périodes où le stock s’épuise au moins une fois. Ils racontent parfois des histoires différentes : dans ce modèle, la politique de base a un taux de service de 99,4 % et pourtant une probabilité de 28,0 % d’avoir une année avec un mois de rupture.
Pourquoi ne pas simplement choisir la politique au coût moyen le plus bas ?
Le coût moyen ne compte que les coûts du modèle et masque la gravité des mauvaises années. Ici, le coût moyen le plus bas, celui du point de commande 120, s’accompagne d’une probabilité de 70,0 % d’avoir une année avec rupture et du coût au P90 le plus élevé des trois points de commande. Vérifiez le P90 (voir P50, P80 et P90) et la probabilité de rupture à côté de la moyenne.
Que sont les nombres aléatoires communs ?
Les nombres aléatoires communs consistent à exécuter chaque scénario sur les mêmes tirages aléatoires, ici les mêmes 5 000 années de demande mensuelle. Les différences entre scénarios viennent alors des scénarios eux-mêmes et peuvent être comparées itération par itération, au lieu d’être brouillées par une chance différente d’une exécution à l’autre. xellstorm exécute ainsi chaque scénario.
Comment choisir la quantité à commander elle-même ?
La quantité à commander est une décision prise sous demande incertaine, comme le point de commande. Pour une politique récurrente comme celle-ci, comparez les quantités comme des scénarios ou balayez-les à l’étape Optimize, où l’on peut balayer ensemble deux cellules de décision, comme le point de commande et la quantité à commander. Pour une commande unique avant une saison de vente, voir combien d’unités commander quand la demande est incertaine.
À lire aussi
- Quantité à commander
Combien d’unités commander quand la demande est incertaine ?
La demande moyenne est de 1 000 unités (écart type 200) ; prix 10, coût 4, valeur de récupération 1 par unité : le ratio critique commande 1 086,1 unités, une recherche par simulation de Monte-Carlo 1 090 unités. - Guide
P50, P80 et P90 : ce qu’ils signifient et à quel niveau budgétiser
Le P80 est le coût que 80 % des résultats simulés ne dépassent pas. Six postes de coût d’un bâtiment : leurs P80 totalisent 2 843, mais le P80 de leur somme est de 2 756 (milliers de dollars US). - Guide
Simulation de Monte-Carlo sur Excel, avec ou sans complément
Trois façons de lancer une simulation de Monte-Carlo sur un modèle Excel : RAND() et une table de données, un complément, ou un outil dans le navigateur sans complément. Formule PERT incluse.
xellstorm est un outil de simulation de Monte-Carlo qui fonctionne dans le navigateur, pour les modèles Excel : aucun complément, et votre fichier ne quitte jamais votre ordinateur.