Skip to main content
Business LibreTexts

9.5: Inventory Models for Certain Demand- Economic Production Quantity (EPQ)

  • Page ID
    129529
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\dsum}{\displaystyle\sum\limits} \)

    \( \newcommand{\dint}{\displaystyle\int\limits} \)

    \( \newcommand{\dlim}{\displaystyle\lim\limits} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \(\newcommand{\longvect}{\overrightarrow}\)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    The second model that we have for certain or known demand scenarios is called Economic Production Quantity. In this model, we do not order from an outside supplier. Instead, we have our own production. As a result, we have a production setup cost since we will need to setup the machines or the production area before the start of the production in each cycle. In addition, having a production makes receiving of the items in our stock more gradual. This is as opposed to the sudden receiving of Q units in the EOQ model. Thus, there is a slight change to the formulations compared to the EOQ model. The following graph shows how the inventory level changes through time in the EPQ model:

    Graph showing Inventory Level over Time. Within a Cycle Time (T), uptime (T1) is the rising part while downtime (T2) is when the line goes down.

    The red line is showing the inventory level. During the uptime or run time (T1) we are running the production with a rate of p per day while the demand is happening with a rate of d per day. As a result, the inventory level increases with a rate of p d. We continue the production until our inventory is piled up to a certain maximum level. Then, we stop the production, and only use the piled-up inventory to satisfy the customer demand. This period is called downtime (T2). The basic assumption here is that the production rate is larger than the demand rate. Otherwise, we will always have a shortage.

    In terms of calculations, if we use the following notation and replace the H (i.e., the holding cost per unit of item per year) by it, we can use the same formulations from the EOQ model for the optimal lot size (run size) and the total cost. Here are the calculations:

    H'=H(1-d/p). EPQ=Q*=The optimal production lot (run) size in each cycle. EPQ=Q*=the square root of 2DS over H'=the square root of 2DS/H(1-d/p). T1=Uptime or production time=Q*/P. T=Cycle time=Q*/d. T2=Downtime=T-T1. TC(Q)=Total cost of production setup and inventory holding associated with a production lot size of Q. TC(Q)=SxD/Q+Q/2xH=SxD/Q+Q/2 H(1-d/p). Maximum Inventory =Q*(1-d/p).

    Note that “D” is defined as the demand per year, while “d” is the demand per day. In addition, Q* is a specific value for Q, which is associated with the optimal quantity. If we need to find the optimal total cost, we will need to use the value of Q* as the Q in the formula for TC(Q). Let’s have a look at an example.

    Example \(\PageIndex{1}\)

    An automotive manufacturer uses 48,000 M1 gearboxes per year for its X1 SUV series. The firm makes its own M1 gearboxes, which it can produce at a rate of 800 per day. Carrying cost is $1 per gearbox per year. Setup cost for a production run of M1 gearboxes is $45. The firm operates 240 days per year. Determine:

    a. the optimal run size,

    b. the minimum total annual cost for carrying and setup,

    c. cycle time for the optimal run size,

    d. the production run time (uptime), and

    e. maximum inventory.

    Solution

    Demand per year=D=48000. Production rate per day=p=800. Demand rate per day=d=48000/240=200. Ordering cost per unit=S=$45. Unit inventory holding cost=H=$1. H'=H(1-d/p)=1x(1-200/800)=0.75. (a) the optimal run size. Q*=square root of @SD/H'=square root of 2x45x48000 over 0.75=2400. (b) the minimum total annual cost for carrying and setup. TC(Q*)=SxD/Q*+H'xQ*/2=45x48000/2400+0.75x2400/2=1800 (c) cycle time for the optimal run size. T=Q*/D=2400/48000=0.05 year=0.05x240=12 days (d) the production run time (uptime). T1=Q*/P=2400/800=3 days (e) maximum inventory. Imax=Q*(1-d/p)=2400x(1-200/800)=1800


    9.5: Inventory Models for Certain Demand- Economic Production Quantity (EPQ) is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by Hamid Faramarzi and Mary Drane.