Le mardi après Thanksgiving, 2019. J'étais debout sur la mezzanine d'un entrepôt 3PL à Ontario, en Californie, à regarder un superviseur tenir une vague de préparation imprimée comme si elle allait le mordre. Il restait 1 400 unités d'un SKU phare dans le casier. Les commandes ouvertes en demandaient 2 300. Le calcul ne passait pas, et tout le monde sur le terrain le savait.

« Alors, on coupe qui ? » m'a-t-il demandé.

Cette question — posée exactement sur ce ton de panique feutrée — est revenue dans chaque entrepôt où j'ai travaillé. Et la réponse honnête, c'est que la plupart des opérations n'ont pas de vraie réponse. Elles retombent sur le FIFO, premier entré, premier sorti. Les commandes arrivées le plus tôt sont honorées ; les dernières arrivées sont coupées. Ça paraît juste. C'est aussi la façon la plus chère de gérer une rupture, et je l'ai vue coûter à des entreprises des six chiffres en un trimestre.

Le FIFO paraît juste parce qu'il est juste pour les commandes. Mais vous ne dirigez pas une entreprise d'équité. Vous dirigez un P&L.

Les cinq facteurs qui décident vraiment qui reçoit le stock

Quand j'aide un entrepôt à concevoir des règles d'allocation dans son OMS, je lui fais classer chaque commande ouverte selon cinq choses. Pas trois, pas dix. Cinq. En pratique, l'ordre des pondérations ressemble à ceci, et l'ordre compte :

1. La pénalité contractuelle en cas de manquement. C'est celui qui a des dents. Certains comptes grossistes facturent 5–10 % de la facture pour expédition tardive, et quelques grands programmes EDI de la grande distribution vont plus haut. Les commandes marketplace sont plus douces ici — une expédition tardive plombe vos métriques de vendeur mais ne vous est pas facturée directement. L'OMS doit savoir, par canal, ce qu'un manquement coûte réellement en dollars.

2. La promesse de livraison au consommateur. Une commande vendue en livraison deux jours est plus dangereuse qu'une vendue en standard cinq à sept jours. Quand vous coupez une commande deux jours, vous ne perdez pas seulement la vente — vous brisez une promesse que le client a payée. Brisez-en assez et vos métriques au niveau du compte glissent, ce qui peut étrangler votre buy box ou votre placement en recherche pendant des semaines. C'est un dégât invisible qui écrase une commande perdue.

3. Le niveau du client. Vos VIP et vos acheteurs récurrents sont un portefeuille, pas une liste. Perdre un acheteur ponctuel sur une commande de 40 $ fait mal une fois. Mettre en rupture un acheteur qui a passé 30 commandes cette année fait mal trente fois de plus dans le futur. L'OMS doit signaler les clients du décile supérieur et les protéger — la plupart des systèmes peuvent le faire avec une simple règle de segmentation.

4. La marge sur la commande. Quand vous devez tuer des commandes, tuez les pas chères. Je sais que ça sonne froid, mais une commande à 200 $ de marge et une commande à 20 $ de marge ne sont pas moralement égales pour votre business. Si vous protégez celle à 20 $ et coupez celle à 200 $, vous avez fait plaisir au mauvais client.

5. L'âge de la commande. Le FIFO n'est pas le facteur un. C'est le facteur cinq — un départage. Ne l'utilisez que lorsque les quatre premiers sont à peu près égaux. J'explique plus bas pourquoi le mettre en premier est un piège.

Note pratique : définissez ces facteurs comme des pondérations explicites dans votre moteur d'allocation OMS, pas comme une vague consigne. Par exemple : coût de pénalité 35 %, promesse de livraison 25 %, niveau du client 20 %, marge 15 %, âge de la commande 5 %. Les chiffres exacts dépendent de votre mix de canaux — réglez-les une fois, puis ne les touchez plus en pleine crise.

Le calcul que personne ne fait avant de couper

Laissez-moi vous donner un vrai arbitrage de cette saison 2019, anonymisé, mais les chiffres sont honnêtes.

Commande A : une commande de réassort d'une chaîne de distribution, 800 unités, facture de 64 000 $. Le contrat prévoyait un chargeback de 8 % pour livraison tardive — 5 120 $ — et cet acheteur nous avait déjà raccourci les conditions de paiement avant, donc ce n'était pas vraiment un ami. Marge sur la commande : fine, environ 3 200 $.

Commande B : 900 unités pour des commandes individuelles Amazon et du site direct, environ 58 000 $ de chiffre d'affaires. Pas de chargeback direct, mais une livraison en deux jours promise. Marge : environ 11 000 $. Et c'étaient des clients récurrents — nos données disaient qu'environ 40 % d'entre eux rachèteraient dans les 90 jours.

Le FIFO disait : honorez A d'abord (elle est arrivée plus tôt), donnez les 600 unités restantes à B, et dites au reste des clients « désolé, réassort bientôt ».

Nous n'avons pas fait ça. Nous avons coupé A entièrement — payé le chargeback de 5 120 $ — et honoré B à 100 %. Voici le raisonnement que j'ai soumis au DG : le chargeback était un coût connu et plafonné. Le coût de briser des promesses deux jours sur 900 consommateurs directs était inconnu et sans plafond. Si ne serait-ce que 5 % de ces acheteurs ne revenaient jamais, à notre panier moyen et notre taux de réachat, nous perdrions plus de 20 000 $ de valeur vie. Et la marge était plus que triple sur B.

L'entrepôt a payé 5 120 $ pour sauver entre 20 000 $ et 31 000 $. C'est ce genre d'arithmétique que vous voulez que votre OMS fasse automatiquement à 6 h du matin, pas celle que vous voulez débattre à 18 h avec un superviseur et une vague imprimée.

Deux choses à surveiller ici. D'abord, les conditions de chargeback et les pénalités de retard des plateformes changent — vérifiez toujours la dernière politique publiée de votre client ou de votre plateforme plutôt que de faire confiance au chiffre de l'an dernier. Ensuite, ce calcul suppose que vos données de marge et de taux de réachat sont réellement dans l'OMS. Si elles sont dans la feuille de calcul de quelqu'un, vous n'avez pas un système d'allocation, vous avez une dispute en attente.

Trois façons dont les entrepôts se plantent

Le FIFO comme règle par défaut. J'ai expliqué pourquoi c'est faux, mais voici la version qui reste en tête : le FIFO optimise l'âge de la commande, et l'âge de la commande est le seul facteur qui ne corrèle avec rien de ce qui compte — ni la marge, ni la valeur client, ni le risque de pénalité. Une énorme commande grossiste passée à 23 h perdra toujours contre une commande d'une unité passée à 8 h. Ce n'est pas de l'équité, c'est de l'automutilation avec un visage poli. Gardez le FIFO uniquement comme départage.

Le stock de sécurité tranquillement emprunté. C'est le piège qui m'a brûlé personnellement. Sur un site en 2021, nous avions mis en place une belle règle d'allocation — et puis les superviseurs ont commencé à « emprunter temporairement » du stock de sécurité pour couvrir des commandes VIP pendant des ruptures mineures. Quand une vraie rupture est arrivée, le stock de sécurité était une fiction. La règle disait « réservez 5 % pour les VIP » mais l'étagère disait autre chose. Leçon : verrouillez le stock de sécurité au niveau de l'OMS avec une permission de dérogation explicite — une personne, enregistrée, horodatée. Si l'emprunt est invisible, il arrivera tous les jours.

Employé d'entrepôt triant des cartons sortants à un poste d'emballage

Les dérogations manuelles pendant la crise. Chaque rupture finit par produire un VP paniqué qui appelle le terrain pour dire « honorez celle-là en premier, c'est important ». Une dérogation ne casse pas le système. Mais d'après mon expérience, une fois que l'équipe voit les règles être contournées, elle cesse de faire confiance aux règles — et au trimestre suivant, chaque rupture est gérée par celui qui crie le plus fort. Ma règle : les dérogations sont autorisées, mais elles doivent être saisies dans l'OMS avec un code motif, et le rapport d'allocation est revu le lendemain matin. Si le taux de dérogation dépasse 10 % du volume en rupture, la règle est cassée et doit être refaite — ne blâmez pas les opérateurs.

Avant la mise en production : la checklist

Quand nous mettons une règle d'allocation en production, je passe cette liste. Si une réponse est non, nous ne l'activons pas :

  • Chaque canal de l'OMS a une pénalité de retard ou un taux de chargeback documenté, avec la date de la dernière vérification
  • La promesse de livraison (deux jours vs standard vs économique) est un champ sur chaque commande, renseigné avant le passage de l'allocation
  • Les segments de niveau client existent dans l'OMS et sont actualisés au moins chaque semaine
  • La marge par commande est calculée automatiquement — pas de feuille de calcul dans la boucle
  • L'allocation tourne selon un calendrier fixe (p. ex. chaque vague, ou toutes les deux heures) et enregistre chaque décision avec la version de la règle
  • Les réservations de stock de sécurité sont imposées par le système, avec des dérogations limitées à une personne nommée et enregistrées
  • Il y a un seuil d'alerte de rupture — l'OMS vous prévient avant d'être à 1 400 contre 2 300, pas après
  • Un essai à blanc sur des données historiques : rejouez les jours de rupture du trimestre dernier et comparez ce que la règle aurait fait à ce qui s'est réellement passé

Ce dernier point est l'heure la plus précieuse que vous passerez. Quand nous l'avons fait pour un client en 2022, la relecture a montré que la règle aurait économisé environ 90 000 $ en une seule semaine de pic. Le DG a arrêté de poser des questions après ça.

Demain matin

Si votre OMS n'a pas de règles d'allocation aujourd'hui, n'essayez pas de construire les cinq facteurs cette semaine. Faites une chose : sortez les commandes du mois dernier, signalez celles qui sont parties en rupture, et triez-les par marge par commande. Regardez combien de commandes à faible marge ont été honorées pendant que des commandes à forte marge étaient coupées. Ce chiffre — quel qu'il soit — c'est ce que le FIFO vous a coûté. Puis décidez si ça valait le coup.

L'étagère va se vider à nouveau. C'est toujours le cas. La seule question est de savoir si c'est votre système qui décide qui est coupé à 6 h du matin — ou si c'est vous qui décidez dans la panique à 18 h.

Traduit de l'anglais. En cas de divergence, la version anglaise fait foi.