Skip to content

Performance Management · Make-or-buy and other short-term decisions

Shadow Prices and Linear Programming Constraints in ACCA PM

Updated 11 October 2026 · Fact-checked

A shadow price is the extra contribution you earn from one more unit of a scarce resource, found at the optimal solution. To calculate it, identify the binding constraints, then solve simultaneous equations or re-solve with one extra unit. Slack is the unused amount of a resource that is not fully used.

Understand Shadow Prices and Linear Programming Constraints

When one resource is short, you rank products by contribution per unit of that resource. When two or more resources are short, ranking no longer works. You use linear programming to find the product mix that gives the highest total contribution.

You first write the objective function (maximise total contribution) and one constraint for each scarce resource. For example, if product X uses 2 machine hours and Y uses 4, and 400 hours are available, the constraint is 2X + 4Y ≤ 400. You also need X ≥ 0 and Y ≥ 0. The graph of these lines gives a feasible region. The best plan sits at a corner (vertex) of that region.

At the optimum, some constraints are binding: the resource is fully used. Others have slack: some of the resource is left unused. A binding constraint limits profit. A constraint with slack does not.

The shadow price of a resource is the increase in total contribution if you had one more unit of it. It is the most you should pay above the normal cost per unit to get extra supply. A resource with slack has a shadow price of zero, because more of it adds nothing.

Shadow price and opportunity cost are closely linked. Opportunity cost is the benefit lost by using a resource in one way instead of its best alternative. For a scarce resource, the shadow price measures that lost benefit at the margin. In PM questions, the shadow price is the figure you calculate and quote. It only holds over a limited range, until the set of binding constraints changes.

Key rules to remember

Objective function
Maximise C = (contribution per unit of X × X) + (contribution per unit of Y × Y)
Use contribution per unit, not profit, because fixed costs do not change with the mix.
Resource constraint
(hours per unit of X × X) + (hours per unit of Y × Y) ≤ hours available
Write one for each scarce resource. Add non-negativity: X ≥ 0, Y ≥ 0.
Slack
Slack = resource available − resource used at the optimal solution
Slack is zero for a binding constraint. Slack means the constraint is not limiting output.
Shadow price
Shadow price = increase in optimal total contribution ÷ 1 extra unit of the resource
Valid only for a small change, while the same constraints stay binding. It is zero where there is slack.
Shadow prices by simultaneous equations
For each product: Σ (shadow price × resource used per unit) = contribution per unit
Use this for products that are made in the optimal plan. It gives all shadow prices in one go.

How to solve Shadow Prices and Linear Programming Constraints questions

Use this order for any question that asks for the optimal mix, slack or shadow prices with two products.

  1. 1Define the variables, for example X and Y as units of each product.
  2. 2Write the objective function using contribution per unit, then write each resource constraint as an inequality, plus non-negativity.
  3. 3Plot each constraint line by finding its two axis intercepts. Shade the feasible region below the lines.
  4. 4Find the optimal vertex. Either plot an iso-contribution line and slide it outward, or calculate contribution at each vertex. Solve simultaneous equations for any vertex not on an axis.
  5. 5Substitute the optimal values into every constraint. A constraint that is exactly met is binding. For any other, slack = available − used.
  6. 6Find the shadow price of each binding resource. Either solve the simultaneous equations (shadow price × usage = contribution for each product made), or increase the resource by one unit, re-solve and take the change in contribution.
  7. 7Set the shadow price of any resource with slack to zero. State the answer with its limits: it holds only while the same constraints stay binding.
  8. 8Interpret the result. Compare the shadow price with the cost of extra supply: pay up to shadow price above the normal rate, never more.

Quickest way: Shadow prices by simultaneous equations

When to use it: Use this when both products are made at the optimum and two constraints are binding. It avoids re-solving the whole problem.

  1. Let m and l be the shadow prices of the two binding resources.
  2. For each product, write: (usage of resource 1 × m) + (usage of resource 2 × l) = contribution per unit.
  3. Solve the two equations for m and l.
  4. Check the answer: total shadow value of the resources, Σ (shadow price × units available), should equal the optimal contribution only if there are no other costs. Use this as a check, not a requirement.
  5. Set shadow prices of non-binding resources to zero, and quote the units of slack.

Common mistakes in Shadow Prices and Linear Programming Constraints

  • Using profit instead of contribution in the objective function.

    The question gives full cost or selling price and cost data together.

    Fix: Use selling price less variable costs only. Fixed costs are not affected by the mix.

  • Giving a shadow price for a resource with slack.

    Students calculate it mechanically without checking the constraint is binding.

    Fix: Test every constraint at the optimum first. If some is left unused, the shadow price is zero.

  • Treating the shadow price as the total price to pay for extra resource.

    The word price suggests the full cost.

    Fix: The shadow price is the maximum premium over the normal cost. Total acceptable price is normal cost plus shadow price.

  • Choosing the wrong vertex or checking only one constraint.

    Students read the vertex from a rough graph.

    Fix: Solve the vertex algebraically and check it against every constraint. Compare contribution at all feasible vertices if unsure.

  • Saying the shadow price applies to any quantity.

    Students forget the limits of the range.

    Fix: State that it holds only while the same constraints remain binding. Beyond that, another constraint becomes limiting.

  • Confusing slack with the shadow price, or giving slack in money terms.

    Both words describe a resource, so they blur together.

    Fix: Slack is in units of the resource (hours, kg). The shadow price is money per unit of the resource.

Worked examples

Example 1

A company makes X and Y. Contribution is $20 per unit of X and $30 per unit of Y. X needs 2 machine hours and 3 labour hours. Y needs 4 machine hours and 2 labour hours. There are 400 machine hours and 360 labour hours available. Find the optimal mix, the total contribution and the shadow price of each resource.

Show the solution
  1. Objective: maximise C = 20X + 30Y.
  2. Constraints: 2X + 4Y ≤ 400 (machine), 3X + 2Y ≤ 360 (labour), X, Y ≥ 0.
  3. Vertices: (0, 100) gives C = 3,000. (120, 0) gives C = 2,400. The two lines meet where X + 2Y = 200 and 3X + 2Y = 360.
  4. Subtract: 2X = 160, so X = 80. Then 2Y = 120, so Y = 60. Contribution = 1,600 + 1,800 = 3,400.
  5. Check both constraints: machine 160 + 240 = 400 and labour 240 + 120 = 360. Both are fully used, so both are binding, with no slack.
  6. Shadow prices: let m be the machine price and l the labour price. For X: 2m + 3l = 20. For Y: 4m + 2l = 30.
  7. From the second equation, l = 15 − 2m. Substitute: 2m + 45 − 6m = 20, so m = 6.25 and l = 2.50.
  8. Check by adding one machine hour: X + 2Y = 200.5 and 3X + 2Y = 360 give X = 79.75 and Y = 60.375. Contribution = 1,595 + 1,811.25 = 3,406.25, an increase of 6.25.

Answer: Make 80 X and 60 Y for a contribution of $3,400. Both resources are binding with no slack. The shadow price is $6.25 per machine hour and $2.50 per labour hour.

Example 2

A firm makes A and B with contribution of $30 and $20 per unit. Labour: A uses 2 hours, B uses 1, with 100 hours available. Machine time: A uses 1 hour, B uses 1, with 70 hours available. Material: A uses 1 kg, B uses 2 kg, with 150 kg available. The optimal plan is 30 A and 40 B. Find the slack, the shadow prices, and the most the firm should pay for 10 extra labour hours.

Show the solution
  1. Check labour: 2(30) + 40 = 100 hours, equal to the 100 available. It is binding, with no slack.
  2. Check machine: 30 + 40 = 70 hours, equal to the 70 available. It is binding, with no slack.
  3. Check material: 30 + 2(40) = 110 kg used against 150 kg available. Slack = 150 − 110 = 40 kg. Its shadow price is zero.
  4. Contribution = 30 × 30 + 20 × 40 = 900 + 800 = 1,700.
  5. Shadow prices: let l be labour and m be machine. For A: 2l + m = 30. For B: l + m = 20.
  6. Subtract: l = 10. Then m = 10.
  7. Check with 10 extra labour hours (110 hours): 2A + B = 110 and A + B = 70 give A = 40 and B = 30. Material used = 40 + 60 = 100 kg, within the 150 available. Contribution = 1,200 + 600 = 1,800, up by 100.
  8. So 10 extra hours add $100 contribution, which is 10 × $10. The firm can pay up to $10 per hour above the normal labour rate.

Answer: Material slack is 40 kg, and its shadow price is $0. Labour and machine time are both binding, each with a shadow price of $10 per hour. The firm should pay at most $10 per hour above the normal labour rate for extra labour.

Exam tips

  • In objective test questions, find which constraints are binding first. Many answers follow from that: slack is zero and the shadow price is positive for binding resources.
  • Always show the simultaneous equations in a Section C answer. Marks are given for the method even if an arithmetic slip occurs.
  • Quote shadow prices with the condition that they hold only within a limited range, and say what happens beyond it.
  • When asked whether to buy extra resource, compare the extra cost per unit with the shadow price. Pay only if the extra cost is below the shadow price.
  • Label graphs fully: axes, each constraint line, the feasible region and the optimal point. Show the working for any vertex that is not on an axis.

Practice questions from Make-or-buy and other short-term decisions

Shadow Prices and Linear Programming Constraints in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Shadow Prices and Linear Programming Constraints: frequently asked questions

What is a shadow price in ACCA PM?

It is the increase in total contribution from having one more unit of a scarce resource. It is also the maximum premium you should pay above the normal price for it. It only applies while the same constraints remain binding.

How do I calculate a shadow price in linear programming?

Either solve simultaneous equations, where shadow price × usage per unit equals contribution per unit for each product made, or add one unit of the resource, re-solve and take the change in contribution. Both methods give the same answer.

What is the difference between shadow price and opportunity cost?

Opportunity cost is the benefit lost by using a resource for one purpose rather than its best alternative. For a scarce resource, the shadow price measures that lost benefit per unit at the margin. In PM questions you calculate the shadow price and use it as the value of the resource.

What does slack mean?

Slack is the amount of a resource that is left unused at the optimal solution. It is measured in units of the resource, such as hours or kilograms. A resource with slack has a shadow price of zero.