Learn
Lesson · Inventory Models · What changes the cycle

Production Runs and Planned Backorders

Replenishment is rarely instantaneous and shortages are not always a failure. If stock is produced at a finite rate P while demand D continues, it builds only at P − D, so the effective holding rate is scaled by 1 − D/P. If a backorder costs π per unit per unit time, carrying a unit short is cheaper than carrying it in stock and the holding rate is divided again by (h + π)/π. Those are the only two changes: the economic production quantity and the backorder model are one formula with two switches.

finite production rate: effective holding rate h·(1 − D/P) planned backorders: divide again by (h + π)/π Q* = √( 2KD / (h(1 − D/P)) · (h + π)/π ) both switches, one expression at a fixed Q the best backorder level is b = (1 − D/P)·Q·h/(h + π), a rational K = 100, D = 1200, h = 6, P = 2400, π = 6: factors 1/2 and 2, Q* = 400, C* = 600 each switch alone multiplies Q* by √2: 200 → 200√2 ≈ 282.843 → 400
Two corrections to one holding rate, and what each does to the answer

Core ideas

What this lesson establishes

Three ideas, and the third is the one that decides whether this model has an answer at all.

1

Stock builds at the difference between the rates, not at the production rate

While the machine runs, demand keeps drawing stock away, so the level climbs at P − D rather than at P. The run lasts Q/P of the cycle and the peak reached is (1 − D/P)·Q, not Q. Average stock is half that peak, so every holding term in the plain model is multiplied by 1 − D/P — a factor between zero and one that is the whole of the production correction.

2

A planned shortage is a cheaper place to keep a unit

If stock costs h to hold and a backorder costs π, the cycle splits into a part spent in stock and a part spent short, and the model chooses the split. The arithmetic comes out as a second scaling of the holding rate, by π/(h + π), which is smaller than one whenever backorders are penalised at all. A big π makes shortages expensive and the factor approaches one; the model stops planning them and becomes the previous one.

3

Zero penalty is not a small penalty, and a slow machine is not a small machine

With π = 0 every unit backordered is free, so the cheapest plan is to backorder everything forever and there is no finite answer — the panel says the model has run out rather than printing a number. With P ≤ D the factor 1 − D/P is zero or negative, the machine can never build stock, and there is no cycle to optimise. Both are refusals rather than edge cases, and both are informative.

The material

One sawtooth, two switches

What a finite production rate does to the picture, what a planned shortage does to it, and why the two combine into a single formula.

The plain model draws a vertical rise: a batch of Q appears and the level falls in a straight line to zero. Two of its assumptions are worth removing, and they turn out to change the same thing.

Definition · The economic production quantity

Stock is produced at a constant rate P > D while demand continues at D. The level therefore climbs at P − D for the Q/P of the cycle in which the machine runs, peaks at (1 − D/P)·Q, and then falls at D.

Average stock over the cycle is half that peak, so the holding cost is h·(1 − D/P)·Q/2. Everything else is unchanged, which means the answer is the plain economic order quantity computed with a holding rate of h·(1 − D/P).

Definition · Planned backorders

Shortages are permitted and cost π per unit per unit time backordered. A cycle now spends part of its time with stock on hand and part of it short by up to b, the planned backorder level.

At a fixed order quantity the cost is a quadratic in b whose minimum is at b = (1 − D/P)·Q·h/(h + π), and minimising over Q as well divides the effective holding rate by a further (h + π)/π.

So there is one formula and it has two switches. Set P to infinity and the first factor is one; set π to infinity and the second is one; do both and it is the plain economic order quantity. The panel puts all four readings in one table, each produced by the same function with different arguments, so that they are visibly one result rather than four to memorise.

K = 100, D = 1200, h = 6, P = 2400, π = 6 1 − D/P = 1/2 (h + π)/π = 2 model 1−D/P (h+π)/π Q* C* plain EOQ (P infinite, no shortages) 1 1 200 1200 production quantity (finite P) 1/2 1 200√2 600√2 ≈ 282.843 ≈ 848.528 EOQ with backorders (P infinite) 1 2 200√2 600√2 ≈ 282.843 ≈ 848.528 both at once 1/2 2 400 600

The two middle rows are the same pair of numbers, and that is not a typing error. Each switch on its own multiplies the effective holding rate by 1/2 here, and the answer depends on the holding rate alone: halving it multiplies Q* by √2 and divides C* by √2. Applying both quarters the rate, so Q* doubles to 400 and C* halves to 600. A finite machine and a tolerated shortage are, on this instance, interchangeable.

On this instance Q* = 400 and C* = 600 are rational and every digit of them is exact. The two middle rows are not: 200√2 and 600√2 are irrational, and the table prints them as surds with 282.843 and 848.528 beside them, rounded to three places. Change the production rate to 12000 and the penalty to 3 and the headline pair becomes irrational too — (200/3)√30 and 120√30 — at which point the panel tags them and prints the sentence naming the rounding.

The backorder level, at a quantity you chose

The panel prints the best backorder level at the run size YOU set, not at Q*. That is deliberate. At a fixed rational Q the cost is a quadratic in b with rational coefficients, so its vertex b = (1 − D/P)·Q·h/(h + π) is a rational number and can be printed exactly. At an irrational Q* the same expression is irrational, and printing a rounded backorder level beside an exact run size would be mixing two kinds of number in one sentence.

Example · Four hundred units a run, and a hundred of them owed

At Q = 400 on the worked instance the best backorder level is (1/2)(400)(6)/12 = 100, and the cost there is 600 per unit time — which is also C*, because 400 happens to be Q* on this instance.

Move b either side and the cost rises: 99 and 101 both cost 60003/100, three hundredths more, and b = 0 — refusing to plan any shortage at all — costs 900. Refusing to be short costs half as much again as planning it, because a backordered unit is not occupying a warehouse.

Where the model refuses

Example · A machine that cannot keep up

Set P = 1200 against D = 1200. The factor 1 − D/P is zero, the stock level never rises, and the panel reports that there is no cycle to optimise rather than dividing by zero and printing something.

This is a modelling statement, not an arithmetic one. A machine that cannot outpace demand does not have a run size problem; it has a capacity problem, and the answer is to raise P, not to choose Q more carefully.

Example · A shortage that costs nothing

Set π = 0. Every unit backordered is free, so the cheapest policy is to hold no stock at all and owe everybody forever. There is no finite optimum, and the panel says the model has run out.

The useful reading is that π is not a nuisance parameter to leave at zero. It is the price of a promise, and a model with no price on a broken promise will always recommend breaking it.

Both refusals share a shape with the negative discriminant of the sibling lesson “The Order Quantity as a Discriminant”: the arithmetic is not failing, the model is reporting that the question has no answer as posed. Those are the most useful outputs an inventory model produces, because they are the ones a spreadsheet silently converts into a plausible number.

What is still assumed is the thing the rest of the course removes. Demand is constant and known. Everything so far — the quantity, the discount, the run, the planned shortage — has been a decision made against a rate that never varies. The remaining lessons put a probability distribution where that rate was, and the question changes from “how much” to “how much, given that you do not know”.

Interactive

A run that takes time, and a shortage you planned

the production quantity and the backorder model are the same formula with two switches

One sawtooth, two switchesa finite production rate tilts the rise; a backorder penalty drops the whole shape below zero
stock on handbackorderedthe cost at the best backorder levelthe optimal run size

Method

Setting a run size and a backorder level

Four steps, and the first is the one that decides whether the other three are worth doing.

1

Check that P exceeds D before anything else

1 − D/P must be positive. If it is not, there is no cycle and no run size: the machine cannot build stock and the model has nothing to say. This is one comparison and it costs nothing, and it is the same discipline as adding the supplies before solving a network.

2

Scale the holding rate once for each effect that applies

Multiply h by 1 − D/P if production takes time. Multiply again by π/(h + π) if shortages are allowed and penalised. Then run the plain economic order quantity on the scaled rate — there is no second formula to learn.

3

Take the root last, and keep it as a surd

Q* = √(2KD/h_effective) and C* = √(2KD·h_effective). Whether they come out rational depends on the data, and the model does not care; what matters is that a rounded decimal is never fed into the next step.

4

Compute the backorder level at the quantity you will actually run

b = (1 − D/P)·Q·h/(h + π) at a rational Q is a rational number. Verify it is the vertex by pricing b − 1 and b + 1: both must cost more, and if they do not the arithmetic is wrong.

5

Say what you have promised about shortages

A planned backorder level is a commitment to run out, on purpose, by a stated amount. It is defensible when π is a real cost that somebody has agreed to; it is not defensible when π was set to make the answer come out, and no amount of correct arithmetic afterwards fixes that.

Rates, factors and refusals

Score 0 / 0

One instance, four readings, and the cost of refusing to be short

K = 100, D = 1200, h = 6, P = 2400, π = 6. The two correction factors are 1 − D/P = 1/2 and (h + π)/π = 2, and every figure below is the panel's own.

effective holding rate: h × (1 − D/P) ÷ ((h + π)/π) = 6 × 1/2 ÷ 2 = 3/2 Q* = √(2KD / (3/2)) = √(240000/(3/2)) = √160000 = 400 exactly C* = √(2KD × 3/2) = √360000 = 600 exactly the four readings of the one formula: switches off Q* = 200 C* = 1200 production only Q* = 200√2 C* = 600√2 ≈ 282.843 / 848.528 backorders only Q* = 200√2 C* = 600√2 ≈ 282.843 / 848.528 both Q* = 400 C* = 600 at Q = 400, choosing the backorder level: b* = (1 − D/P)·Q·h/(h + π) = (1/2)(400)(6)/12 = 100 cost 600 b = 99 cost 60003/100 b = 101 cost 60003/100 b = 0 (refuse to be short at all) cost 900

The last block is the argument for the model rather than a detail of it. Refusing to plan any shortage costs 900 where planning one costs 600 — half as much again — and the reason is that a unit owed costs π = 6 while a unit held costs h = 6 and the owed unit is not sitting in a warehouse. When π is genuinely equal to h, refusing to backorder is simply choosing the more expensive of two identical storage options.

The two middle rows being identical is the fact worth taking away. 1/2 and 2 act on the same quantity — the effective holding rate — so a machine running at twice demand and a backorder penalty equal to the holding rate are the same correction wearing different words. That is why one formula covers both, and why an account that teaches them as two results with two derivations is teaching one result twice.

For a rehearsal, set P = 1440 and π = 12, keeping the rest. The supplied first move is that the factors become 1 − D/P = 1/6 and (h + π)/π = 3/2. Work out the effective holding rate, predict Q* and C*, and then say — before the panel does — whether the backorder level at Q = 400 comes out rational.

Common mistakes

1
Using the raw holding rate with a finite production rateStock builds at P − D, so the peak is (1 − D/P)·Q and the holding bill is scaled accordingly. Forgetting the factor reports a run size that is too small by √(1/(1 − D/P)) and a cost that is too large by the same factor — on the worked instance, 200 where the answer is 282.84, which is a plausible-looking number and completely wrong.
2
Treating a planned shortage as a failure to be avoidedWhen π is a real, agreed cost, planning to be short is an economic choice like any other: on the worked instance it saves a third of the total cost. The failure to avoid is an unplanned shortage, which this model does not describe at all — that is what the safety-stock lessons later in this course are for.
3
Reading a refusal as a bug1 − D/P ≤ 0 and π = 0 both produce a panel that declines to print an answer. Neither is a numerical problem. One says the machine cannot meet demand and the other says nothing has been charged for a broken promise, and in both cases the fix is to the model rather than to the arithmetic.

Check your understanding

✓
Finish when a production rate and a shortage penalty read as two adjustments to one holding rate.

You should be able to derive the factor 1 − D/P from the geometry of the sawtooth, state what π buys and why it divides the holding rate by (h + π)/π, produce all four models from one expression, compute the optimal backorder level at a given run size and verify it is a minimum, and say precisely what the model reports when P ≤ D or π = 0.

Note: Every lesson so far has known the demand rate exactly. The rest of the course does not. The next one is the smallest possible version of that change: a single order, a single season, a demand that is a random variable, and no second chance to correct the decision.

Kept in this browser only, for you. Nothing is sent anywhere and nothing checks it. Carry it to another device.

Feedback and recommendations

Something to change about this lesson? Write it down, tick it off when it is handled, and export the list when you want to act on it. Kept in this browser only: nothing is sent anywhere, and nobody is notified.

No recommendations yet for this lesson.