Capacity, scheduling & acceptance
Which orders to take, and in what order to run them
In a plant, a depot or a field-service business, three decisions made before the shift starts set the margin for the week: which orders you accept, how you batch them, and how you schedule the machines, crews or bays that everything queues for. They are usually made by three different people, on three different spreadsheets, against a forecast that will be wrong by Tuesday. So we model the three together, and the plan holds when the forecast does not.
Test the acceptance decision on your own orders — the order-acceptance check ↝
The decision
Four decisions competing for one capacity
Acceptance, batching, scheduling and routing look like separate problems handled by separate people. But they all draw on the same finite capacity, and the cost of treating them apart is paid in overtime, missed dates and idle machines, none of which shows up on the report as a planning error.
-
Which orders to accept?
Not every profitable order is worth taking once it displaces work you have already promised. We weigh expected margin against the capacity and the commitments it consumes.
-
How to batch and sequence?
Setup, changeover and travel are costs like any other. Batching well protects throughput, and batching badly starves the orders that matter most.
-
How to schedule constrained resources?
People, machines, bays and skills are all limited and rarely limited together. A feasible plan respects every binding constraint at once.
-
How to adapt when the forecast is wrong?
Demand, yield and duration are uncertain. The question is which plans stay good across the futures you can expect, and a single best plan is rarely one of them.
Why it matters
Why a full schedule can still lose money
Utilisation is not margin
A plant can run at full utilisation and still have taken the wrong mix. Every hour spent on a low-margin order is an hour that a better order, arriving next week, will not get.
The tail sets the cost
A plan optimised for the average week breaks on the bad one: the yield miss, the late supply, the rush order. The expensive days are exactly the ones an average forecast cannot see.
Accept-now, pay-later
An order accepted today books capacity that a better order tomorrow will need. The cost of the wrong acceptance arrives weeks later, as overtime, expediting or a penalty clause, and by then nobody connects it to the decision.
How we approach it
What we do about it
We model the uncertainty in demand, yield and duration explicitly instead of planning for the average, and we hand back a small set of plans that differ in kind, each of which holds up across the weeks you might get. The choice between service, inventory and margin stays yours, because it is a business choice and not a modelling one.
For the owner
- An acceptance rule that says which orders to take, at what date, and what each one costs in displaced capacity.
- A schedule that respects every binding constraint, people, machines, skills, materials, and stays feasible when a forecast slips.
- A small set of Pareto-relevant plans that trade service, inventory, utilisation and margin against each other, where one number would hide the trade-off.
For the technical reader
- Order-acceptance under capacity and skill-coverage constraints, modelled as risk-adjusted selection in place of a first-come or highest-price heuristic.
- Stochastic scheduling with scenario analysis. The objective is risk-adjusted (CVaR), so the plan is scored on its downside as well as its mean.
- Constraint modelling and min-cost-flow for routing and assignment where the structure allows an exact, fast solve.
- We return a small set of Pareto-relevant plans, because collapsing service, inventory, utilisation and margin into one weighted score means somebody chose the weights. That choice is yours to make, and we will not make it by default.
- Each policy is compared against a simple operating heuristic on a shared benchmark before it is trusted, and the comparison is reported with its scope.
What we need to see
Order and demand history, the resources and constraints that bind (capacities, skills, changeover and travel), and how you record acceptance, service and cost today. Where a baseline was never captured, establishing one is the first deliverable. An optimiser cannot improve on a number nobody is measuring.
Where to start
Where to start
A Decision Opportunity Audit runs on one acceptance or scheduling decision you make today, establishes the baseline and the economic stakes, and ends with a clear recommendation. Sometimes that recommendation is that your current rules are already close to good enough. For a worked illustration of the acceptance problem on synthetic data, see our case Which orders to accept when capacity, skill and margin all bind.
The loop
- 1. Baseline & economic stakes
- 2. Model the binding constraints & the uncertainty
- 3. A few Pareto-relevant plans
- 4. Measured outcome vs. the baseline
The research behind it
The method, published
When this fits
- Demand routinely exceeds capacity, so acceptance and sequencing decisions bite.
- Constraints are physical and knowable: machines, skills, bays, materials, service windows.
- Someone can act on a plan and change what the operation accepts or schedules.
When it does not
- Capacity comfortably exceeds demand, so scheduling is not the binding problem.
- No usable record of orders, resources or the constraints that bind.
- The plan cannot change what the operation does day to day.
FAQ
Questions about capacity and scheduling
How is this different from a scheduling platform?
We do not arrive with a scheduling platform. We start on one acceptance or scheduling decision you make today, model the uncertainty explicitly, and hand back a small set of plans that differ in kind. The tool is the modelling and the decision it supports, and there is no product to adopt wholesale.
Do you give us one optimal schedule?
No, and you should be suspicious of anyone who offers one. A schedule is optimal only for the forecast you fed it, and the forecast is wrong by Tuesday. We return a small set of plans that trade service, inventory, utilisation and margin against each other in different ways, so the choice between them is yours to make out loud. Collapsing them into one weighted score would mean somebody had chosen the weights for you, and it would have been us.
What data do you need to start?
Order and demand history, the resources and constraints that bind (capacities, skills, changeover and travel), and how you record acceptance, service and cost today. Where a baseline was never captured, establishing one is the first deliverable. An optimiser cannot improve on a number nobody is measuring.
What if our current acceptance and scheduling rules are already good?
Then the audit says so and recommends against a system. It is paid work either way, and that finding costs less than any other way of arriving at it.
How do you handle uncertainty in demand, yield and duration?
With stochastic scheduling and scenario analysis. The objective is risk-adjusted, using CVaR, so a plan is scored on its downside (the bad day, the yield miss, the late supply) as well as on its average. The average is the one number a mean forecast cannot hide, and the money goes with the downside.
How do you show a new rule beats ours?
Each policy is compared against a simple operating heuristic on a shared benchmark before it is trusted, and the comparison is reported with its scope. We do not treat a more sophisticated method as better until it has beaten the current rule on your own data.
Start with the decision
Bring us one decision
One acceptance or scheduling decision you make today. A short audit run by a partner will say what the current rule is costing you in displaced capacity, and whether a better one is worth what it would cost to build. The fee is fixed before we start.