Modèle de Wilson (EOQ) — guide complet + calcul pas à pas (Excel)
Le modèle de Wilson (EOQ : Economic Order Quantity) répond à une question simple : quelle quantité commander pour minimiser le coût annuel de gestion des stocks ?
Il équilibre coût de commande et coût de possession, puis l’étend à la fiabilité d’approvisionnement (stock de sécurité, point de commande), au taux de service/fill rate, et aux contraintes d’achat (MOQ, multiple de lot).
Qu’est-ce que la formule de Wilson ?
La formule de Wilson, aussi appelée EOQ pour Economic Order Quantity, permet de calculer la quantité optimale à commander. Son objectif est simple : trouver l’équilibre entre le coût de passation des commandes et le coût de possession du stock.
EOQ = √((2 × D × S) ÷ H)
D = demande annuelle | S = coût de commande | H = coût annuel de possession par unité
Comment calculer l’EOQ (Economic Order Quantity) ?
Pour calculer l’EOQ, il faut connaître trois données : la demande annuelle, le coût de passation d’une commande et le coût de stockage d’une unité pendant un an.
Exemple complet de calcul du stock économique
Une entreprise consomme 12 000 unités par an. Chaque commande coûte 50 € et le coût annuel de stockage est de 2 € par unité.
EOQ = √((2 × 12 000 × 50) ÷ 2) = √600 000 = 775 unités environ.
Exercice corrigé modèle de Wilson
Énoncé : une PME vend 8 000 pièces par an. Le coût d’une commande est de 40 € et le coût de stockage annuel est de 1,60 € par pièce.
Calcul : EOQ = √((2 × 8 000 × 40) ÷ 1,60)
Résultat : EOQ = √400 000 = 632 pièces.
Calcul du coût total de stockage
Le coût total combine le coût de commande et le coût de possession du stock. Il permet de vérifier si la quantité commandée est réellement économique.
Coût total = (D ÷ Q × S) + (Q ÷ 2 × H)
Comment réduire les coûts d’approvisionnement ?
Le modèle de Wilson aide à réduire les coûts en évitant deux erreurs fréquentes : commander trop souvent ou commander en quantité excessive.
- Regrouper les commandes lorsque c’est pertinent.
- Négocier les frais fixes de passation.
- Réduire les délais fournisseurs.
- Limiter les stocks dormants.
- Suivre le taux de rotation des stocks.
Différence entre EOQ et stock de sécurité
EOQ Excel : calcul automatique du stock optimal
Dans Excel, le calcul de l’EOQ peut être automatisé à partir de trois cellules : demande annuelle, coût de commande et coût de possession.
Formule Excel : =RACINE((2*Demande*Coût_Commande)/Coût_Possession)
Gestion des stocks : les indicateurs à suivre
- Stock moyen : quantité moyenne conservée en stock.
- Taux de rotation : fréquence de renouvellement du stock.
- Coût de possession : coût annuel lié au stockage.
- Point de commande : seuil qui déclenche une nouvelle commande.
- Taux de rupture : fréquence des ruptures de stock.
Limites du modèle de Wilson
Le modèle de Wilson reste très utile, mais il repose sur des hypothèses simplifiées : demande stable, coûts connus, délais maîtrisés et absence de rupture.
En cas de saisonnalité, d’inflation des coûts, de fournisseurs instables ou de délais variables, il faut compléter l’EOQ par un stock de sécurité et un point de commande.
Wilson et Supply Chain : applications pratiques
Dans la supply chain, la formule de Wilson sert à structurer les politiques d’approvisionnement, réduire les stocks inutiles et améliorer la disponibilité produit.
Définir les quantités économiques par fournisseur.
Limiter le surstock et optimiser l’espace.
Réduire le capital immobilisé en stock.
Comment calculer la fréquence des commandes ?
Une fois l’EOQ calculée, il devient possible de déterminer le nombre de commandes à passer dans l’année et l’intervalle moyen entre deux commandes.
Nombre de commandes = Demande annuelle ÷ EOQ
Intervalle entre commandes = 365 ÷ Nombre de commandes
⬇️
1) Variables & hypothèses
- D : demande annuelle (u/an)
- S : coût de passation d’une commande (€/ord)
- C : coût unitaire (€/u)
- h : taux de possession annuel (coût de stockage en % du prix, p.ex. 22 %)
- WDAYS : jours ouvrés/an
- L : délai d’approvisionnement (jours)
- σd : écart-type de la demande quotidienne (u/j)
- σL : écart-type du délai (j)
- CSL : cycle service level (probabilité de ne pas être en rupture pendant un cycle)
- MOQ, MULT : minimum de commande et multiple de lot (facultatif)
Hypothèses classiques : demande et délai stationnaires et indépendants ; coût unitaire constant (hors remises par paliers) ; réception instantanée (sans production interne continue).
2) Formules essentielles
2.1 Quantité économique de commande (EOQ)
EOQ = √( 2 × D × S / ( h × C ) )
Commandes/an = D / EOQ
Coût commandes/an = S × (D / EOQ)
Stock moyen (sans SS) = EOQ / 2
Coût possession/an = h × C × Stock_moyen
Coût logistique/an = Coût commandes + Coût possession
Coût total/an = D × C + Coût logistique
2.2 Variabilité, service, stock de sécurité et point de commande
Demande moyenne par jour : d = D / WDAYS
Variabilité sur le délai :
σLD = √( L × σd² + d² × σL² )
z = NORM.S.INV(CSL) (ou NORMSINV en Excel « legacy »)
SS = z × σLD
ROP = d × L + SS
Couverture (jours) = ROP / d
2.3 Pénurie & fill rate (option)
Avec k = (ROP − d×L) / σLD (≈ z si SS calé sur le CSL) :
Φ(k) = NORM.S.DIST(k;VRAI) (ou NORMSDIST)
φ(k) = NORM.DIST(k;0;1;FAUX) (ou NORMDIST(k;0;1;FAUX))
ES (manquants/cycle) = σLD × [ φ(k) − k × (1 − Φ(k)) ]
Fill rate ≈ 1 − ES / EOQ
Coût de rupture/an = Pénalité€/u × ES × (D/EOQ)
2.4 Contraintes d’achat (MOQ/multiple)
Dans Excel :
Q_effectif = MAX(MOQ ; ARRONDI.AU.MULTIPLE(EOQ ; MULT))
Utiliser ARRONDI.SUP(EOQ/MULT;0)×MULT si ARRONDI.AU.MULTIPLE n’est pas disponible.
3) Exemple chiffré (réaliste)
Hypothèses
- D = 240 000 u/an ; S = 45 € ; C = 2,40 € ; h = 22 %
- WDAYS = 250 j ; L = 7 j → d = 960 u/j
- CSL = 95 % → z ≈ 1,645
- σd = 150 u/j ; σL = 1,5 j
- Pas de MOQ/multiple (pour commencer)
Résultats (calcul exacts)
- EOQ ≈ 6 396 u
- Commandes/an ≈ 37,5 (≈ 1 toutes 6,66 j)
- σLD ≈ 1 493,69 u ; SS ≈ 2 456,90 u
- ROP = d×L + SS ≈ 9 176,90 u (9,56 j de couverture)
- Coût commandes/an ≈ 1 688,55 €
- Stock moyen = EOQ/2 + SS ≈ 5 654,91 u
- Coût possession/an ≈ 2 985,79 €
- Coût logistique/an ≈ 4 674,34 €
- Coût total/an (incl. achats) = 240 000×2,40 + logistique ≈ 580 674,34 €
- ES/cycle ≈ 31,21 u → Fill rate ≈ 99,51 %
Lecture : la logistique (commandes + possession) pèse 0,8 % du coût d’achat dans cet exemple ; EOQ ≈ 6 400 u donne un fill rate ≈ 99,5 % avec CSL = 95 %.
4) Mise en œuvre dans Excel (formules FR)
- EOQ :
=RACINE(2*D*S/(h*C)) - z (95 %) :
=NORM.S.INV(0,95)ou=NORMSINV(0,95) - σLD :
=RACINE(L*SIGMAD^2 + (D/WDAYS)^2*SIGMAL^2) - SS :
=z*σLD - ROP :
=(D/WDAYS)*L + SS - ES/cycle :
=σLD*(NORM.DIST(k;0;1;FAUX) - k*(1-NORM.S.DIST(k;VRAI)))
(compat :NORMDIST,NORMSDIST) - Fill rate :
=1 - ES/EOQ - Q_effectif (MOQ/multiple) :
=MAX(MOQ;ARRONDI.SUP(EOQ/MULT;0)*MULT)
Astuce compatibilité : sur d’anciennes versions/localisations, remplacez NORM.S.INV/NORM.S.DIST par NORMSINV/NORMSDIST et utilisez le séparateur ; au lieu de , si Excel le demande.
5) Quand adapter ou éviter EOQ
- Remises par paliers : passez à l’EOQ avec prix dégressifs (calculez le coût total à chaque palier et choisissez le minimum faisable).
- Saisonnalité forte / promotions : basculez en périodes (mensuel/trimestriel) et recalibrez D, h, σd, σL.
- Capacité/stock max : imposez une borne supérieure à Q.
- Périssables : considérez la durée de vie et un taux d’obsolescence dans h.
- Production interne : utilisez le modèle POQ (production lot-for-lot) au lieu d’EOQ.
6) À éviter absolument
- Confondre h : le taux de possession est annuel et appliqué au prix (
h×C). - Oublier le SS : EOQ minimise le coût, mais le service client dépend de
ROP = d×L + SS. - Mélanger unités : D en u/an, d en u/j, L en jours, σd en u/j → gardez la cohérence.
- Ignorer MOQ/multiple : arrondissez vers le haut (ARRONDI.SUP) puis MULT.
- Fonctions Excel non reconnues : utilisez les fonctions “legacy” (
NORMSINV,NORMSDIST,NORMDIST).
7) Checklist de déploiement
- Validez D, S, C, h avec Finance & Supply.
- Mesurez L, σd, σL (historique 6–12 mois).
- Fixez un CSL cible (95–98 % typique).
- Calculez EOQ, SS, ROP puis testez fill rate et coût.
- Appliquez MOQ/MULT et comparez Q_effectif vs EOQ.
- Mettez en place un rituel mensuel : revue de D, L, service, coûts.
Modèle de Wilson (EOQ) –Calculateur Excel prêt à l’emploi
Le calculateur EOQ (Wilson) vous aide à déterminer, en quelques minutes, la quantité économique de commande, le stock de sécurité et le point de commande qui minimisent vos coûts de stock. Entrez simplement vos données (demande, coût de commande, coût unitaire, taux de possession, délai…) dans les cellules bleues : le fichier calcule automatiquement les KPI, le taux de service/fill rate et affiche la courbe du coût optimal. Compatible toutes versions d’Excel, il intègre aussi les contraintes MOQ/multiples et un coût de rupture optionnel pour des décisions opérationnelles fiables.

1) But du classeur
Un calculateur EOQ (Wilson) complet et compatible toutes versions Excel, qui détermine :
- la quantité économique de commande (EOQ),
- le stock de sécurité (SS) et le point de commande (ROP),
- le taux de service (CSL), un fill rate approximatif,
- l’impact des contraintes d’achat (MOQ, multiple de lot),
- les coûts annuels (commande, possession, logistique, total) et un graphique du point optimal.
Version “compat” : j’utilise NORMSINV / NORMSDIST / NORMDIST à la place de NORM.S.* pour éviter l’erreur #NOM? selon les versions/localisations d’Excel.
2) Feuilles & organisation
Onglet « Paramètres »
- Cellules bleues = à modifier :
- D (demande/an), S (€/commande), C (€/u), h (taux de possession/an)
- L (délai en jours), Jours ouvrés/an
- Mode SS (Automatique/Manuel)
- CSL (niveau de service cible), σd (écart-type demande/jour), σL (écart-type délai)
- MOQ (minimum de commande), MULT (multiple de lot), PEN (pénalité €/u manquante – optionnelle)
Onglet « Calculs »
- EOQ non contraint :
=RACINE(2*D*S/(h*C)) - Q effectif (MOQ & multiple) :
=MAX(MOQ;ARRONDI.SUP(EOQ/MULT;0)*MULT) - d (u/j) =
D / JoursOuvrés; σLD =√( L*σd² + d²*σL² ) - z =
NORMSINV(CSL); SS auto =z*σLD; SS retenu = (Auto ou Manuel) - ROP (u) =
d*L + SS; Couverture =ROP / d - Stock moyen (u) =
Q/2 + SS - Coûts/an :
- Commandes =
S * (D/Q) - Possession =
h * C * Stock_moyen - Logistique = Commandes + Possession
- Total =
D*C + Logistique
- Commandes =
- Service & ruptures (option) :
k = (ROP − d*L)/σLD; Φ(k) =NORMSDIST(k); φ(k) =NORMDIST(k;0;1;FAUX)- ES (manquants/cycle) =
σLD*(φ(k) − k*(1−Φ(k))) - Manquants/an =
ES * (D/Q); Coût de rupture =PEN * Manquants/an
Onglet « Courbe »
- Tableau Q proposé → Q effectif, commandes/an, € commande/an, € possession/an, € logistique/an, fill rate.
- Mise en évidence du Q optimal (coût logistique minimal).
- Sert de source au graphique.
Onglet « Dashboard »
- KPI : EOQ non contraint, Q effectif, commandes/an, ROP (u & jours), SS, CSL réalisé, fill rate, € logistique/an, € total/an, € rupture/an.
- Graphique ligne : coût logistique annuel vs Q effectif avec marqueur du minimum.
Onglet « Mode d’emploi »
- Pas-à-pas, rappel des formules, conseils (compatibilité, saisonnalité, SS manuel, etc.).
3) Ce que vous changez / ce qui se calcule
- Vous changez uniquement les cellules bleues de « Paramètres ».
- Tout le reste (EOQ, ROP, coûts, fill rate, courbe, KPI) se met à jour automatiquement.
4) Compatibilité & séparateurs
- Si Excel vous propose des
;au lieu des,: acceptez (Excel convertit). - Les fonctions NORMSINV/NORMSDIST/NORMDIST évitent #NOM? sur les éditions FR/anciennes.
5) Utilisation express (1 minute)
- Ouvrez Paramètres, ajustez D, S, C, h, L, jours ouvrés.
- Choisissez Mode SS (Auto avec CSL/σd/σL ou Manuel).
- Si besoin, renseignez MOQ/MULT et PEN.
- Lisez Dashboard (KPI) et le graphique pour le Q optimal.


Cas particuliers EOQ : 10 situations à connaître (formules incluses)
Ci-après une série de cas particuliers autour d’EOQ (Wilson), chacun rédigé différemment et avec les formules codifiées.
Notation utile : (H = h X C) est le coût de possession annuel par unité (€/u/an).
1) Remises par paliers (prix dégressifs)
Quand le prix unitaire baisse au-delà de certains seuils, le « meilleur » (Q) n’est pas forcément l’EOQ « théorique ». On évalue le coût total à l’EOQ de chaque palier et au point de rupture de prix, puis on retient le minimum faisable.
Pour le palier i (prix Ci, seuil Qi_min) :
EOQ_i = √( 2 D S / (h Ci) )
TC(Q ; Ci) = D·Ci + S·(D/Q) + (h·Ci)·(Q/2 + SS)
Tester : Q = max(EOQ_i, Qi_min) et Q = Qi_min
Choisir le Q (et Ci) donnant le TC minimal
2) Ruptures autorisées (retards servis/backorders)
Si l’on tolère des retards servis avec pénalité (P) (€/u/an), l’optimum change : on commande plus souvent et on accepte un reliquat à servir.
H = h·C
Q* = √( 2 D S (H + P) / (H·P) )
B* = (H / (H + P)) · Q* (backorders max)
Stock_moyen = ( (Q* − B*) / 2 )
Coût_total_log = S·(D/Q*) + H·Stock_moyen + P·(B*/2)·(D/Q*)
3) Produits périssables (durée de vie)
Pour des articles à durée de vie (T) (jours), on borne la taille de lot : le cycle ne doit pas excéder (T), sinon on jette.
d = D / WDAYS
Contrôle de faisabilité : Q ≤ d · T
Si Q_théorique > d·T : prendre Q = d·T (ou plus petit multiple logistique)
4) Production interne (POQ au lieu de réception instantanée)
Quand on produit à débit (P) (u/an) avec (P > D), le stock se remplit progressivement. L’optimum (POQ) tient compte du taux de consommation pendant la fabrication.
H = h·C
Q*POQ = √( (2 D S / H) · ( P / (P − D) ) )
Stock_moyen = (Q*POQ / 2) · (1 − D/P)
Coût_log = S·(D/Q*POQ) + H·Stock_moyen
5) Capacité de stockage (contrainte “K”)
Un stock max (hors SS) limite le lot. On « clippe » l’EOQ et on respecte les multiples d’emballage.
Capacité utile = K − SS
Borne sur Q : Q ≤ 2 · (K − SS)
Q_feasible = min( EOQ , 2·(K − SS) )
Q_effectif = max( MOQ , ceil(Q_feasible / MULT) · MULT )
6) Demande non stationnaire (saisonnalité) — lot sizing dynamique
Avec une demande par périodes (d_t) variable, l’EOQ constant n’est plus optimal. On bascule sur du Wagner-Whitin (programmation dynamique) pour minimiser coûts de commande + possession.
H = h·C (par période)
F(t) = coût minimal pour couvrir d1..dt
F(t) = min_{1≤k≤t} [ F(k−1) + S + H · Σ_{j=k}^{t} (j−k) · d_j ]
Politique : commander en k pour couvrir k..t* qui minimise F(t)
7) Service par fill rate cible (β-service)
Si la cible porte sur le taux de service en quantité (β), on dimensionne le SS via la fonction de perte (L(z)).
σLD = √( L·σd² + d²·σL² )
L(z) = φ(z) − z · (1 − Φ(z))
Objectif : ES = L(z) · σLD ≈ (1 − β) · Q
Résoudre z : L(z) = (1 − β) · Q / σLD
Puis SS = z · σLD
8) Corrélation demande–délai (σLD corrigé)
Si la demande journalière et le délai sont corrélés (ex. délais ↑ quand la demande ↑), la variance sur le délai augmente.
Approximation :
σLD² ≈ L·σd² + d²·σL² + 2·d·Cov(d, L)
(où d = moyenne journalière, L = moyenne du délai)
SS = z · σLD avec ce σLD corrigé
9) Frais de transport « par paliers » (S effectif dépend de Q)
Quand le fret varie par tranches (colis, palette, camion), le coût de commande n’est plus constant. On travaille par grille de Q faisables (multiples) et on évalue (S(Q)).
S_effectif(Q) = S_admin + Freight(Q)
TC(Q) = D·C + S_effectif(Q)·(D/Q) + H·(Q/2 + SS)
Algorithme : balayer Q ∈ { MOQ, MOQ+MULT, … } et choisir le TC minimal
10) Multi-échelon & centralisation (effet « √n »)
En consolidant (n) entrepôts indépendants en un central, la variabilité s’agrège au √n (et pas en (n)), d’où un gain de SS.
SS_décentralisé ≈ n · z · σ · √L
SS_centralisé ≈ z · σ · √L · √n
Économie relative ≈ 1 − 1/√n
Rappel pratique (pour Excel)
- Toujours poser (H = h·C) avant d’appliquer les variantes.
- Quand une contrainte (MOQ, MULT, K, prix par paliers) existe, on calcule d’abord l’optimum théorique (EOQ/POQ), puis on projette sur l’ensemble des (Q) faisables et on choisit le coût total minimal (commande + possession ± rupture).
- Pour les fonctions stats :
NORMSINV/NORMSDIST/NORMDISTassurent la compatibilité siNORM.S.*n’est pas reconnu.
Pourquoi utiliser le modèle de Wilson (EOQ) ?
Le modèle de Wilson, également connu sous le nom de EOQ (Economic Order Quantity) ou quantité économique de commande, est l’une des méthodes les plus utilisées en gestion des stocks. Son objectif est de déterminer la quantité optimale à commander afin de réduire le coût global d’approvisionnement.
Dans de nombreuses entreprises, les coûts logistiques proviennent principalement de deux sources : les coûts liés aux commandes (temps administratif, transport, réception) et les coûts de stockage (entrepôt, assurance, immobilisation financière, risques d’obsolescence). Le modèle de Wilson cherche le point d’équilibre entre ces deux catégories de coûts.
Commander ni trop, ni trop peu. Une quantité trop faible multiplie les commandes, tandis qu’une quantité trop importante augmente les coûts de stockage.
Moins de surstock signifie moins d’espace occupé et moins de capital immobilisé.
Les commandes sont mieux planifiées et les coûts administratifs diminuent.
Le niveau de stock reste cohérent avec la consommation réelle.
Les approvisionnements deviennent plus prévisibles et plus faciles à organiser.
L’entreprise immobilise moins de trésorerie dans les stocks.
Les quantités optimales facilitent le maintien de la disponibilité des produits.
Une entreprise consomme 12 000 pièces par an. Si elle commande trop souvent, ses frais administratifs explosent. Si elle commande en trop grande quantité, elle augmente ses coûts de stockage. Grâce au modèle de Wilson, elle peut identifier automatiquement la quantité économique qui minimise le coût total annuel.
Calculateur EOQ interactif : quantité économique de commande
Utilisez ce simulateur pour calculer rapidement la quantité économique de commande selon la formule de Wilson. Renseignez la demande annuelle, le coût d’une commande et le coût de possession annuel par unité.





