Mon verdict d'entrée de jeu : les entrepôts alimentaires qui fonctionnent en FIFO plutôt qu'en FEFO — first-expired, first-out (premier périmé, premier sorti) — mettent généralement au rebut deux à trois fois plus de produits périmés. J'ai vu ce scénario se répéter dans plus d'une douzaine d'opérations de distribution alimentaire. Et ce n'est presque jamais un problème logiciel. La plupart des WMS savent très bien allouer par date de péremption. Le problème, c'est que les données de péremption qui entrent sont pourries, et que personne ne regarde les alertes qui sortent.

Les gens supposent que FIFO et FEFO, c'est à peu près pareil. Pas du tout. Premier entré n'est pas premier à périmer. Le même SKU reçu en mars peut être bon jusqu'en juin de l'année suivante, tandis que le lot reçu en mai périme ce novembre — ça arrive tous les jours dans l'entreposage alimentaire. Expédiez en FIFO et le lot de novembre reste au fond pendant que le lot de juin sort par la porte. Le temps que quelqu'un s'en rende compte, vous mettez au rebut des palettes entières. Un 3PL de surgelés près de Los Angeles, d'environ 60 000 square feet (pieds carrés), l'a appris à ses dépens il y a quelques années : une palette entière de crevettes surgelées est restée deux mois après sa date avant d'être détectée. Des dizaines de milliers de dollars, directement à la poubelle. Pourquoi ? Leur système n'avait même pas de champ de péremption. La préparation était entièrement pilotée par la date de réception.

Si les données de péremption sont pourries, FEFO n'est que du théâtre

FEFO repose sur deux données : le numéro de lot et la date de péremption. Dans le WMS, les deux doivent être obligatoires à la réception — pas de date, pas de réception. C'est la règle de fer. La combine la plus bête que j'aie vue : quand la réception est débordée, le système permet de sauter la saisie de péremption et remplit automatiquement 2099-12-31. Six mois plus tard, des milliers d'enregistrements de stock « périment » en 2099, et l'algorithme FEFO trie sur de la fiction. Autant ne pas avoir d'algorithme.

Les formats de date doivent aussi être standardisés. Les étiquettes des fournisseurs, c'est le chaos : 06/08/26 sur un carton, 08-JUN-2026 sur le suivant, et certaines qui n'impriment que la date de production, sans péremption. Le SOP de réception doit choisir une convention — année-mois-jour, date de péremption uniquement, jamais date de production — et la verrouiller. Ne laissez pas un champ « date de production » et un champ « date de péremption » ouverts en même temps pour que le réceptionnaire choisisse. Je l'ai appris à mes dépens : la moitié de l'équipe remplit un champ, l'autre moitié remplit l'autre, et le tri par péremption du système est faux pour la moitié de votre stock.

La réception a aussi besoin d'une règle de validation de durée de vie restante : le produit qui arrive avec trop peu de vie restante est refusé ou placé en blocage qualité (QA hold). Ce qui compte comme « trop peu » dépend de la catégorie. Pour un produit ambiant de 12 mois, tout ce qui a moins d'un tiers de sa vie restante, c'est non ; pour un produit réfrigéré de 45 jours, je commencerais à m'inquiéter sous la moitié. Il n'y a pas de chiffre universel — fixez-le par catégorie et par vitesse de rotation, écrivez-le dans le SOP de réception, et fiez-vous à votre système et à votre opération réels. L'essentiel, c'est que ce soit une validation dure du système, pas un panneau plastifié au mur. Les panneaux n'arrêtent pas les réceptionnaires. Les pop-ups, si.

Un autre piège : les lots mixtes du fournisseur. Deux dates de péremption sur la même palette doivent être réceptionnées comme deux lots séparés. Fusionnez-les en un seul parce que c'est plus rapide, et le système ne verra jamais qu'une date de péremption — l'autre moitié de la palette devient invisible pour FEFO. J'ai vu un entrepôt faire exactement ça pour gagner du temps, et la moitié à péremption proche de chaque palette était systématiquement dépriorisée jusqu'à périmer sans que personne s'en aperçoive.

Cartons soigneusement empilés sur des rayonnages d'entrepôt alimentaire, étiquettes de dates à peine visibles

Une alerte que personne ne traite, c'est juste du spam

Une fois les données propres, il faut des avertissements. J'utilise trois niveaux : 90 jours, 60 jours, 30 jours avant péremption, avec le WMS qui génère un rapport quotidien de péremption envoyé aux bons responsables. Les niveaux et les nombres de jours doivent varier selon la catégorie — le réfrigéré et l'ambiant ne peuvent pas partager le même manuel. Mais voici la partie que tout le monde saute : chaque alerte a besoin d'un responsable et d'une action. À 90 jours, l'action c'est « prévenir les ventes pour l'écouler ». À 60, c'est « plan de démarque (markdown) ou de transfert ». À 30, c'est « lancer l'approbation de destruction ». Une alerte sans action attachée, c'est du spam, et au bout de trois mois personne ne la lit.

Le plus difficile à configurer, c'est la logique d'allocation en sortie. L'allocation pure par péremption croissante est théoriquement optimale et pratiquement misérable — elle déchiquette les parcours de préparation, et vos préparateurs finissent par traverser la moitié du bâtiment pour une commande. C'est le vrai dilemme : priorité de péremption contre efficacité de préparation. Mon compromis : allouez par péremption d'abord, mais au sein d'une même vague, autorisez la fusion des préparations pour les lots dont les dates de péremption tombent à quelques jours les unes des autres. Quelques jours, ça ne compte pas ; quelques mois, si. Dimensionnez cette fenêtre par catégorie — étroite pour le réfrigéré, large pour l'ambiant. Ne courez pas après l'optimum théorique. Un plan à 90 points que vos préparateurs suivent vraiment bat un plan à 100 points que personne n'exécute.

Une autre configuration qui sépare le FEFO qui fonctionne du FEFO décoratif : ne laissez pas le stock à péremption proche mourir au fond du stockage. Quand l'alerte 60 jours se déclenche, le système devrait recommander de déplacer ce stock vers la zone de préparation avancée — le plus près du conditionnement, le plus facile à saisir. Positionnement physique plus allocation FEFO, c'est un double verrou. Beaucoup d'entrepôts configurent la logique d'allocation mais jamais la stratégie d'emplacement, et les palettes à péremption proche dorment au fond de la zone de réserve pendant que les préparateurs prennent ce qui est à portée de main. Le système avait raison ; la nature humaine a gagné.

Que faire du stock à péremption proche ? Trois sorties : démarque, don, destruction. Démarquez-le vers les outlets ou l'achat employé — récupérez ce que vous pouvez. Le don est protégé aux États-Unis par le Bill Emerson Good Samaritan Food Donation Act of 1996, qui protège généralement les donateurs de nourriture pas encore périmée contre la responsabilité et peut ouvrir droit à des avantages fiscaux — vérifiez avec votre conseiller fiscal. Et quand c'est vraiment irrécupérable : destruction avec double signature, documentation photo et destruction conforme. Le workflow de destruction appartient aussi au système — qui demande, qui approuve, comment on détruit, où vivent les photos. Si le processus n'est pas dans le système, le processus n'existe pas.

Un mot : FEFO n'est pas réservé à l'alimentaire. La pharma et les cosmétiques utilisent la même logique. Les seules différences sont des fenêtres d'alerte plus serrées et une conformité de destruction plus stricte.

Et une boucle que la plupart des entrepôts oublient de fermer : les inventaires tournants. Ne comptez pas seulement les quantités — vérifiez les dates de péremption contre les étiquettes physiques. Un écart entre l'étiquette et le système signifie que quelqu'un a contourné le processus à la réception ou pendant un mouvement. Suivez les écarts de péremption comme leur propre catégorie d'écart de comptage et revoyez-les chaque mois. Le comptage est le miroir le plus honnête que vos données auront jamais.

Demain matin, lancez une requête dans votre WMS : combien d'enregistrements de stock ont une date de péremption vide, ou un marqueur comme 2099-12-31. Bouchez ce trou d'abord — rien d'autre dans FEFO ne fonctionne sans ça.

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