← Back to case studies

Capacity Expansion Analysis — Scenario Study

A manufacturing scenario evaluates two capacity investment strategies using constraint-based scheduling and counterfactual analysis.

Scenario Study (Simulated System)

A representative system built from modeled operational data. This is not a client engagement but follows the same methodology used for real operations problems.

This analysis tests two competing capacity investment strategies — one targeting the obvious bottleneck, one targeting the actual constraint — to determine which is worth the money.

Setup

A manufacturing job shop runs 8 jobs across 6 machines (Table Saw, CNC Router, Sander, Drill Press, Assembly Bench, Finishing Station). The system operates in weekly production cycles with fixed routing and machine constraints.

JobOpsDeadlineBaseline
Nightstand (×2)560hOn time
Desk680hOn time
Bookshelf790hOn time
Coffee Table675hLate +17h
Chair Set (×4)8110hLate +16h
Dining Table8130hLate +13h
Cabinet9140hLate +29h
Wardrobe9160hLate +46h

58 operations total, each with a specific machine, duration, and precedence constraints.

We build the production schedule as a constraint optimization problem using MiniZinc + OR-Tools CP-SAT, minimizing total tardiness. Even with an optimal schedule, 5 of 8 jobs are late with 121 hours of tardiness. This isn’t a planning problem; the tardiness is structural. It can’t be scheduled away, it requires a capacity intervention, and we use the baseline schedule to quantify which intervention is worth the money.

Choosing the Interventions

The baseline analysis surfaces two distinct bottleneck profiles:

MachineUtilisationCritical OpsProfile
Table Saw71%22 of 58Critical chokepoint, dominates the critical path
Sander36%1 of 58Amplifier, low utilisation but affects every tardy job

A naive bottleneck analysis would target the Sander: it’s cheap to improve (low utilisation means a small speedup unlocks downstream slack) and it sits on the routing of all five late jobs. But “on the routing” is not the same as “on the critical path” — the Sander only constrains one operation in the entire schedule. Touching every late job makes it look influential; having only one critical op means it isn’t the thing holding those jobs up.

The Table Saw is already heavily loaded, adding capacity looks expensive. But it sits on the critical path for nearly half the operations. If it’s the true bottleneck, adding capacity there could cascade improvements that no amount of Sander tuning can match.

We test both:

  • Experiment A: Add a second Table Saw (CAPEX $45,000)
  • Experiment B: Improve Sander throughput by 30% (CAPEX $8,000)

Executive Summary

  • The Table Saw carried 22 of 58 operations on the critical path. The Sander touched every late job but had only 1 critical operation. Touching everything doesn't make something a bottleneck.
  • Adding a second Table Saw reduced tardiness by 73% ($17,600 per production run). A 30% Sander improvement reduced it by just 13%. Both paid back in ~2.5 runs.
  • The Table Saw delivered 5.5× higher savings per run because it removed a binding constraint on the critical path — despite higher upfront cost.
  • A naive bottleneck analysis would have targeted the Sander. Counterfactual simulation showed the Table Saw was the real constraint. Utilization alone is not a reliable guide for capacity investment decisions.

Results

KPI Comparison

Impact of capacity interventions on throughput, tardiness, and schedule stability.

KPIBaseline+Table SawΔ ASander +30%Δ B
Makespan206h178h-13.6%202h-1.9%
Max Tardiness46h18h-60.9%42h-8.7%
Avg Tardiness15.1h4.1h-72.7%13.1h-13.2%
Late Jobs53-250
Late Job Ratio62.5%37.5%-25.0pp62.5%0
Deadline-Norm Tardiness96.7%22.2%-74.5pp83%-13.7pp
Load-Norm Tardiness22.7%6.2%-16.5pp20.8%-2.0pp
Critical Op Ratio44.8%25.9%-19.0pp44.8%0

Machine Schedules (Side-by-Side)

Side-by-side Gantt charts comparing baseline, +Table Saw, and Sander +30% schedules

Per-Job Tardiness

Bar chart of per-job tardiness across baseline and both intervention scenarios


Cost Analysis

Assumptions:

  • Tardiness penalty: $200 per hour of tardiness per job set
  • Runs per week: 1

Baseline tardiness cost per job set: $24,200 (121 hours)

Experiment A: Add a second Table Saw (CAPEX $45,000)

  • Tardiness savings per job set: $17,600 (88 hours × $200/hour)
  • Payback period: 2.6 weeks (2.6 runs)
  • First-year net savings: $870,200 (ROI: +1,934%)

Experiment B: Improve Sander throughput 30% (CAPEX $8,000)

  • Tardiness savings per job set: $3,200 (16 hours × $200/hour)
  • Payback period: 2.5 weeks (2.5 runs)
  • First-year net savings: $158,400 (ROI: +1,980%)

Recommendation

Tardiness (h)ReductionSavings/runPayback1st-year net
+Table Saw33h73%$17,6002.6 runs$870,200
Sander +30%105h13%$3,2002.5 runs$158,400

Both interventions pay back in ~2.5 runs. The difference is magnitude: the second Table Saw delivers 73% tardiness reduction ($17,600 saved per run) vs. 13% ($3,200 per run) for the Sander upgrade. Although both investments recover their cost in roughly the same number of production runs, the Table Saw delivers 5.5× higher savings per run by removing a binding constraint on the critical path. The Sander, despite its system-wide presence, does not materially constrain the schedule.


Methodology

This follows the same workflow used in operational decision studies:

  1. Build a feasible production schedule for the 8-job, 6-machine shop using MiniZinc + OR-Tools CP-SAT, minimising total tardiness.
  2. Identify critical resources from the baseline — here, the Table Saw (dominant critical path) and the Sander (wide routing footprint but weak constraint).
  3. Model two alternative capacity interventions: a second Table Saw and a 30% Sander throughput improvement, each with CAPEX cost.
  4. Re-optimise the schedule under each scenario and collect the same KPIs (makespan, tardiness distribution, critical op ratio).
  5. Compare operational metrics and economic outcomes to decide which investment is worth the money.

The objective is not only to produce a schedule, but to quantify the expected impact of operational changes before capital is committed — evaluated through throughput, lateness reduction, and economic impact.


Conclusion

Capacity decisions rarely align with utilisation or intuitive bottleneck signals. In this system, the Sander appeared influential due to its broad routing footprint, while the Table Saw — embedded in the critical path — governed overall system performance. The intuitive choice (cheaper, broader reach) underperforms. The counterintuitive choice (expensive, narrow focus) delivers 5.5× the savings. These differences only become visible under counterfactual simulation, where structural constraints are explicitly tested rather than inferred.

Have a similar problem?

Tell us what you're trying to decide. We'll suggest an approach and scope — no commitment.

Start the conversation →