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).
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).
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
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
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)
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.
Hypothèses
Résultats (calcul exacts)
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 %.
=RACINE(2*D*S/(h*C))=NORM.S.INV(0,95) ou =NORMSINV(0,95)=RACINE(L*SIGMAD^2 + (D/WDAYS)^2*SIGMAL^2)=z*σLD=(D/WDAYS)*L + SS=σLD*(NORM.DIST(k;0;1;FAUX) - k*(1-NORM.S.DIST(k;VRAI)))NORMDIST, NORMSDIST)=1 - ES/EOQ=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.
h×C).ROP = d×L + SS.NORMSINV, NORMSDIST, NORMDIST).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.
Un calculateur EOQ (Wilson) complet et compatible toutes versions Excel, qui détermine :
Version “compat” : j’utilise NORMSINV / NORMSDIST / NORMDIST à la place de NORM.S.* pour éviter l’erreur #NOM? selon les versions/localisations d’Excel.
Onglet « Paramètres »
=RACINE(2*D*S/(h*C))=MAX(MOQ;ARRONDI.SUP(EOQ/MULT;0)*MULT)D / JoursOuvrés ; σLD = √( L*σd² + d²*σL² )NORMSINV(CSL) ; SS auto = z*σLD ; SS retenu = (Auto ou Manuel)d*L + SS ; Couverture = ROP / dQ/2 + SSS * (D/Q)h * C * Stock_moyenD*C + Logistiquek = (ROP − d*L)/σLD ; Φ(k) = NORMSDIST(k) ; φ(k) = NORMDIST(k;0;1;FAUX)σLD*(φ(k) − k*(1−Φ(k)))ES * (D/Q) ; Coût de rupture = PEN * Manquants/an; au lieu des , : acceptez (Excel convertit).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).
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
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*)
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)
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
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 )
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)
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
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é
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
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
NORMSINV/NORMSDIST/NORMDIST assurent la compatibilité si NORM.S.* n’est pas reconnu.Deux outils concrets pour piloter la qualité sans alourdir vos équipes Cette page met à…
Un chantier se gagne souvent avant même l’arrivée des équipes. Quand tout est clair dès…
Le mariage a du sens quand il repose sur une décision libre, mûrie et partagée.…
Une étude de cas réussie commence par une structure sûre. Ce modèle Word vous guide…
Les soft skills se repèrent vite sur une fiche, mais elles ne pèsent vraiment que…
Outil de comparaison et repérage des offres étudiantes Choisir des verres progressifs ressemble rarement à…
This website uses cookies.