Performance Management · Limiting factors
Multiple Limiting Factors and Linear Programming in ACCA Performance Management
Updated 11 October 2026 · Fact-checked
Linear programming finds the production mix that maximises contribution when two or more resources are scarce. You write an objective function and constraints, graph the feasible region, then test its corner points. Simultaneous equations give the corner where two constraints meet. The corner with the highest contribution is optimal.
Understand Multiple Limiting Factors and Linear Programming
With one scarce resource, you rank products by contribution per unit of that resource. That fails when two or more resources are scarce, because a product that uses little of one resource may use a lot of another. You need a method that handles all the limits at once. That method is linear programming.
You build a model with two parts. The objective function is the thing you want to maximise, usually total contribution, such as C = 20x + 30y. The constraints are the limits, such as machine hours or labour hours, written as inequalities like 2x + 4y ≤ 400. Add non-negativity constraints (x ≥ 0, y ≥ 0), because you cannot make negative units.
Each constraint is a straight line on a graph, with x and y on the axes. The feasible region is the area that satisfies every constraint at once. Any point inside it is a plan you can actually carry out. The best plan always sits at a corner (vertex) of this region, because the objective function is also a straight line.
To find the best corner, you can test every corner point and pick the highest contribution. Or you can draw an iso-contribution line and slide it outwards until it last touches the region. Corners on the axes are easy to read. The corner where two constraint lines cross needs simultaneous equations.
PM examines only two products, so a graph works. Once solved, a constraint is binding if the optimal plan uses all of it. It is slack if some is left over. A binding constraint has a shadow price: the extra contribution from one more unit of that resource. A slack constraint has a shadow price of zero.
Key rules to remember
- Objective function
- Maximise C = (contribution per unit of X) × x + (contribution per unit of Y) × y
- Use contribution, not profit. Fixed costs do not change the best mix.
- Resource constraint
- (usage per X) × x + (usage per Y) × y ≤ resource available
- One inequality for each scarce resource. Define x and y clearly first.
- Non-negativity
- x ≥ 0, y ≥ 0
- Always state it. It keeps the region in the positive quadrant.
- Plotting a constraint
- x-intercept = available ÷ usage per X (set y = 0); y-intercept = available ÷ usage per Y (set x = 0)
- Plot the two intercepts, join them, then shade the ≤ side (towards the origin).
- Slack
- Slack = resource available − resource used at the optimal plan
- Zero for a binding constraint.
- Shadow price
- Shadow price = increase in optimal contribution from one extra unit of a binding resource
- Valid only while the same constraints stay binding. Slack resources have a shadow price of zero.
How to solve Multiple Limiting Factors and Linear Programming questions
Use this method for any two-product linear programming question.
- 1Define the variables. Say x = units of product X and y = units of product Y.
- 2Write the objective function using contribution per unit, for example C = 20x + 30y.
- 3Write one constraint for each scarce resource, plus x ≥ 0 and y ≥ 0. Also add any stated demand limits.
- 4Find the two intercepts of each constraint line and plot it. Shade the feasible region that meets every constraint.
- 5Identify the corner points. Read axis corners from the intercepts. Use simultaneous equations for any corner where two constraint lines cross.
- 6Calculate contribution at each feasible corner, or slide an iso-contribution line outwards. Choose the highest.
- 7Check the answer in every constraint. State the optimal mix, the total contribution, and which resources are binding or slack.
- 8If asked, find shadow prices by adding one unit to a binding resource and re-solving the two equations.
Quickest way: Corner testing with simultaneous equations
When to use it: Use it when the question gives two products and two or three constraints and asks for the optimal mix or contribution. It is faster than drawing an accurate graph.
- Write the constraints as equations and find the axis intercepts for each.
- Rough-sketch the lines to see which constraints form the boundary of the feasible region.
- Solve the pair of boundary constraints that cross with simultaneous equations.
- Compute contribution at each feasible corner and pick the highest.
- Substitute the answer into any other constraint to confirm it is feasible.
Common mistakes in Multiple Limiting Factors and Linear Programming
Using selling price or profit in the objective function.
Students copy the first figure they see in the question.
Fix: Use contribution per unit: selling price less variable costs. Fixed costs are irrelevant to the best mix.
Writing constraints the wrong way round, such as putting hours per unit against units available.
The wording mixes per-unit usage with total availability.
Fix: Usage per unit goes with the variable. Total hours available go on the right-hand side.
Taking an intersection point without checking it lies in the feasible region.
Students assume every crossing of lines is a corner.
Fix: Test the point in every constraint. If it breaks one, it is not a corner.
Errors in simultaneous equations, especially sign errors when subtracting.
Time pressure and no check at the end.
Fix: Solve for one variable, then substitute back into both original equations to check.
Stating a shadow price for a slack resource, or applying it beyond its valid range.
Students treat every constraint as binding.
Fix: A resource with unused capacity has a shadow price of zero. A shadow price holds only while the same constraints bind.
Ignoring a demand limit or a minimum-production requirement.
These are given in a separate sentence from the resource data.
Fix: List every limit in the scenario before writing constraints, and give each one a line.
Worked examples
Example 1
A company makes products 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 per unit. Y needs 4 machine hours and 2 labour hours per unit. There are 400 machine hours and 360 labour hours available. Find the contribution-maximising plan.
Show the solution
- Let x = units of X and y = units of Y. Objective: maximise C = 20x + 30y.
- Constraints: machine 2x + 4y ≤ 400; labour 3x + 2y ≤ 360; x ≥ 0, y ≥ 0.
- Machine intercepts: x = 200 (y = 0), y = 100 (x = 0). Labour intercepts: x = 120 (y = 0), y = 180 (x = 0).
- On the x-axis, labour binds first, so the corner is (120, 0). On the y-axis, machine binds first, so the corner is (0, 100).
- Find where the lines cross. Machine simplifies to x + 2y = 200, so x = 200 − 2y. Substitute into labour: 3(200 − 2y) + 2y = 360, so 600 − 4y = 360, so y = 60 and x = 80.
- Check: machine 2(80) + 4(60) = 400; labour 3(80) + 2(60) = 360. Both are exactly used.
- Contribution at the corners: (0, 0) = $0; (120, 0) = $2,400; (0, 100) = $3,000; (80, 60) = 1,600 + 1,800 = $3,400.
Answer: Make 80 units of X and 60 units of Y for a maximum contribution of $3,400. Both machine hours and labour hours are fully used.
Example 2
Continue the previous example. A third resource, material, is limited to 150 kg. X uses 1 kg and Y uses 1 kg per unit. (a) Show that the optimal plan is unchanged and find the slack. (b) Find the shadow price of a machine hour.
Show the solution
- Material constraint: x + y ≤ 150.
- At (80, 60), material used = 140 kg. This is within 150, and the other corners (120, 0) and (0, 100) also use less than 150. So the optimal plan is unchanged.
- Slack in material = 150 − 140 = 10 kg. Its shadow price is $0.
- For (b), add one machine hour: 2x + 4y = 401, with labour 3x + 2y = 360 still binding.
- Multiply labour by 2: 6x + 4y = 720. Subtract the machine equation: 4x = 319, so x = 79.75.
- Then 2y = 360 − 3(79.75) = 360 − 239.25 = 120.75, so y = 60.375.
- New contribution = 20(79.75) + 30(60.375) = 1,595 + 1,811.25 = $3,406.25.
- Increase = 3,406.25 − 3,400 = $6.25.
Answer: (a) The plan stays at 80 X and 60 Y, with 10 kg of material slack and a zero shadow price for material. (b) The shadow price of a machine hour is $6.25. This holds only while both machine and labour stay binding.
Exam tips
- In the objective test sections, a linear programming question usually asks for one number: the optimal contribution, a corner point, or a shadow price. There is no partial credit, so check your arithmetic against the constraints.
- In Section C, set out variables, objective function and constraints as separate labelled lines. Marks are awarded for each, even if a later calculation goes wrong.
- Show the simultaneous equations line by line. Method marks are available for correct setup and working.
- Say which resources are binding and which have slack. Questions often ask for this and for shadow prices straight after the optimal mix.
- Remember the limits of the technique if asked to discuss it: it assumes linear relationships, certainty, and divisible units, and it is hard to use with more than two products by hand.
Practice questions from Limiting factors
- A company has a single limiting factor of skilled labour. Product M has contribution of $40 per unit and uses 5 hours. Product N has a selli…
- A company uses linear programming to plan production of two products. Which statement about the feasible region and the optimal solution is …
- In a linear programme, the shadow price of machine hours is $5 per hour and the constraint currently limits output to 100 hours. Which state…
- A company makes products X and Y. Machine hours are the only scarce resource. X has a contribution of $24 per unit and uses 3 machine hours;…
- Brenner Co needs 1,000 units each of components P and Q. Machine hours available are 3,000 and the machine time needed is 2 hours per unit o…
Multiple Limiting Factors and Linear Programming in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
Multiple Limiting Factors and Linear Programming: frequently asked questions
How do I solve a linear programming problem in ACCA PM?
Define x and y, write the objective function using contribution, and write a constraint for each scarce resource. Plot the lines and find the feasible region. Calculate contribution at each corner, using simultaneous equations for the crossing point, and pick the highest.
When do I need simultaneous equations?
You need them when the optimal corner is where two constraint lines cross, rather than on an axis. Solve the two constraint equations together to get the x and y values at that point.
What is the difference between a binding constraint and slack?
A binding constraint is fully used at the optimal plan, so it limits contribution. A slack constraint has unused capacity, so more of that resource would add nothing. Its shadow price is zero.
Do I use profit or contribution in the objective function?
Use contribution per unit. Fixed costs stay the same whatever mix you choose, so they do not affect which plan is best.