Retour aux use cases
PrévisionSupply ChainFood-service

Foodles : fiabiliser le réappro J+6

Modèle de prévision J+6 (cantine × catégorie × service) recalculé quotidiennement. Résultat : ~20% de réduction d'erreur relative vs l'outil éditeur, biais neutre, et mise en production.

La situation

Chez Foodles, le réappro est un équilibre instable. Trop livrer crée du gaspillage, pas assez livrer crée des ruptures et dégrade l'expérience client.

Le problème prend une autre dimension à l'échelle : plus de 600 cantines en France, 15 catégories nationales, des typologies très différentes (usine, hôtel, coworking, entreprise) et des comportements de demande hétérogènes.

La prévision n'est pas une fin en soi. Elle sert une décision opérationnelle : alimenter un moteur d'optimisation qui calcule ensuite les quantités à dispatcher par cantine, au sein d'une zone de livraison et d'un plan de transport.

L'objectif

  • Prévoir : la demande à J+6
  • À la maille : cantine × catégorie × service (lunch / dinner) × jour
  • Fréquence : reforecast quotidien
  • Priorité métier : réduire les ruptures (le waste vient ensuite)

Point important : la répartition catégorie → SKU/plats est gérée par le dispatch. Le périmètre est la prévision à la bonne maille pour alimenter la décision.

Ce qui rendait le problème difficile

  • Demande très intermittente : plus de 80% de zéros
  • Saisonnalité forte : effets jour de semaine et différences structurantes lunch vs dinner
  • Signaux événementiels : ponts, jours fériés, fermetures, ouvertures, incidents terrain
  • Exécution opérationnelle qui "casse" la série : ouverture/fermeture de frigos, pannes, ruptures de variété
  • Données de fermeture imparfaites : récurrentes bien connues, exceptionnelles partiellement manuelles

Les signaux utilisés

Signaux actionnables et industrialisables :

  • Variables calendaires : jours fériés, ponts, vacances, effets jour de semaine
  • Flags opérationnels : cantine fermée, service ouvert/fermé
  • Attributs cantine : type de site, localisation
  • Structure d'offre : nombre de produits dans le frigo, mix repas vs sandwich
  • Variables auto-régressives : lags et agrégats glissants
  • Prix (hors promos, exclues à la demande du client)

Ce qui a été fait

  1. Partir de la granularité opérationnelle (heure × frigo × produit × cantine)
  2. Re-agréger à la maille décisionnelle utile : cantine × catégorie × jour × service
  3. Construire un modèle global capable de gérer l'intermittence massive, la saisonnalité jour de semaine, la dualité lunch/dinner, l'hétérogénéité entre cantines
  4. Cadrer l'intégration : reforecast quotidien, sortie stable, compatible avec le moteur d'optimisation

Résultats

  • ~20% de réduction d'erreur relative (MAE% type WAPE de 30% à 24%) vs l'outil éditeur
  • Biais neutre : un modèle globalement équilibré, sans tendance systématique
  • Mise en production avec les équipes
  • Livraison en 3 mois, jusqu'à la mise en production

Un projet similaire ?

Vous avez un besoin forecasting ? Parlons-en, je vous réponds rapidement.