Uncertainty Matters at the Decision Boundary
Why forecast uncertainty becomes economically important near discrete ordering, capacity, MOQ, and activation thresholds—and how to model those boundaries in practice.
A forecast can move a lot without changing the decision.
Then it can move a little and change everything.
That is one of the most useful ideas in practical decision science, especially in supply chain. The economic value of uncertainty is often concentrated near decision boundaries: points where a small change in state, forecast, cost, or constraint flips the action you should take.
Suppose a vendor ships in cases of 100. Your unconstrained economic order quantity is 247 units. A modest change in expected demand from 247 to 255 probably does nothing. You still buy 300.
Now suppose the vendor also has a 1,000-unit minimum across several SKUs, and your current basket is sitting at 940 units. A small change in one item’s demand distribution may push the best decision from “do not order from this vendor” to “open the vendor and buy at least 1,000 units.” That is not a 6% adjustment. It is a different decision regime.
This is why treating uncertainty as a smooth percentage added to a forecast is often misleading. Real operational decisions are full of discontinuities: MOQs, case packs, truck thresholds, fixed setup costs, capacity limits, contract tiers, production activations, order calendars, and budget ceilings.
The question is not simply how uncertain the future is.
The useful question is:
How much probability mass sits near a boundary where the action changes?
Start with the action, not the distribution
A common workflow starts with forecasting. Build a distribution, calculate error metrics, debate calibration, and then eventually hand the result to planning.
For decision work, start one layer later.
Ask what action the system can actually take.
For a replenishment problem, that might be:
- whether to place an order at all
- which vendor or lane to activate
- how many cases to buy
- whether to cross an MOQ
- whether to reserve expensive capacity
- whether to expedite
- how much scarce inventory to allocate to each location
Then write down the legal action set.
If item i has pack size p_i, a simple quantity decision might be
q_i = p_i k_i
where k_i is a nonnegative integer.
If opening vendor v requires at least M_v units, introduce an activation variable y_v:
sum(q_i for i in v) >= M_v y_v
and
q_i <= U_i y_v.
Already, the economics are not smooth. Moving from y_v = 0 to y_v = 1 can require a large coordinated purchase. Moving k_i from 2 to 3 changes the order by a full pack, not by one unit.
Those are decision boundaries.
The forecast only matters through the decision
Let D represent uncertain demand and let x represent a decision. The clean formulation is conceptually:
x* = argmax_x E[Profit(x, D)]
The distribution of D matters because it changes the expected economics of each feasible action.
But notice what is being optimized: x, not forecast accuracy.
Imagine three legal order quantities:
- 200 units
- 300 units
- 400 units
For today’s state, suppose expected profit is:
| Order | Expected profit |
|---|---|
| 200 | $18,400 |
| 300 | $18,650 |
| 400 | $17,900 |
The correct action is 300.
Now improve the forecast. The new distribution changes expected profit to:
| Order | Expected profit |
|---|---|
| 200 | $18,470 |
| 300 | $18,690 |
| 400 | $17,960 |
The forecast changed. The decision did not.
That forecast improvement may still be useful for reporting or other decisions, but for this ordering action its immediate decision value is small.
Now consider another state:
| Order | Expected profit |
|---|---|
| 200 | $18,620 |
| 300 | $18,625 |
| 400 | $17,900 |
The business is sitting almost exactly on a decision boundary between 200 and 300 units. A small change in the demand distribution, margin, holding cost, or lead-time risk can flip the recommended action.
That is where information becomes valuable.
Measure the margin between actions
One practical diagnostic is the decision margin.
If x_1 is the best action and x_2 is the second-best action, define
margin = E[Profit(x_1)] - E[Profit(x_2)].
A large margin means the decision is robust to modest modeling error. A tiny margin means the recommendation is fragile.
This is more actionable than saying a forecast has a 17% coefficient of variation.
The same amount of uncertainty can have very different consequences depending on the action margin.
If buying 500 units dominates buying 400 or 600 by $50,000, you probably do not need another month of forecast-model tuning to decide what to order.
If the best and second-best decisions differ by $200 on a $2 million purchase, pretending that one answer is obviously optimal is silly. You should investigate sensitivity, execution flexibility, downside risk, and whether another piece of information could resolve the choice.
This also changes how an optimization system should communicate results. Instead of returning only:
Order 300
return something closer to:
Order 300; next-best 200; expected advantage $5,800; recommendation stable across 91% of scenarios.
Now the user can see whether the optimizer found a cliff or a plateau.
MOQs create especially important boundaries
Minimum order quantities are a perfect example because they combine discrete activation with uncertain economics.
Suppose a supplier MOQ is $25,000. The items you actually want total $21,500. You have three choices:
- do not order
- add $3,500 of inventory you would not otherwise buy
- pull future purchases forward until the MOQ is satisfied
The correct answer depends on the future distribution of demand, holding cost, obsolescence risk, cash cost, future ordering opportunities, and shortage exposure.
A deterministic planner might take the point forecast, calculate that the extra inventory will eventually sell, and cross the MOQ.
A probabilistic analysis might show something more interesting. Perhaps the extra inventory is harmless in 70% of scenarios but becomes a large markdown liability in the remaining 30%. Or perhaps delaying the order creates a small expected shortage but preserves enough flexibility that waiting is economically better.
The important uncertainty is not “demand variance” in the abstract.
It is the uncertainty around the open-versus-closed vendor decision.
That distinction matters when building scenarios. If all scenarios imply the same vendor decision, increasing scenario count from 500 to 5,000 may accomplish almost nothing. If scenarios frequently disagree about whether opening the vendor is worthwhile, that boundary deserves more attention.
Capacity constraints create moving boundaries
Capacity makes the problem harder because the boundary depends on what else the system is doing.
Suppose a factory has 10,000 hours available. Product A and Product B both consume the same resource. Demand for A increases slightly.
If the plant was using 7,000 hours, the forecast change may simply increase A production with no meaningful tradeoff.
If the plant was already using 9,990 hours, the same change forces displacement. Producing more A means producing less of something else.
The value of the forecast update is therefore state-dependent.
Near a binding shared constraint, the decision boundary is not just “make A or do not make A.” It is “what should A displace?”
A MILP captures this through the coupled feasible region. A simulation captures what happens after the capacity choice meets uncertain reality. Neither should be evaluated item by item if the scarce resource is shared.
This is one reason static priority scores age badly. The marginal value of capacity depends on current commitments, remaining capacity, the alternatives competing for it, and uncertainty in their future value.
Decision boundaries move over time
The boundary you calculated Monday may not exist Friday.
Inventory was consumed. A purchase order arrived late. A promotion was announced. A competitor stocked out. A vendor cancelled production. Cash became constrained. The next order window moved closer.
The state changed, so the economics changed.
This is why a decision policy should be written as a function of state:
x_t = pi(S_t)
where S_t might include on-hand inventory, pipeline inventory, forecast distributions, remaining budget, vendor status, lead-time information, capacity, and current commitments.
The policy is not “order 300 units.”
The policy is the logic that maps the current state to an action.
Near a decision boundary, the action may change frequently as the state moves. Far from a boundary, the action can remain stable even while forecasts and inputs bounce around.
That has a practical implication for refresh cadence: recomputing every decision at the same frequency is often wasteful. High-margin, stable decisions may need little attention. Boundary decisions deserve more frequent reevaluation.
Use simulation to estimate boundary risk
A deterministic optimization run gives one answer for one assumed future.
To understand a boundary, simulate the candidate actions across common scenarios.
For each candidate action x, estimate:
- expected profit
- profit variance or downside quantiles
- probability of stockout
- expected leftover inventory
- probability of violating operational targets
- expedite frequency
- capacity consumption
- cash consumption
Use the same scenarios when comparing actions. Otherwise simulation noise can look like economic difference.
For example, compare 200 versus 300 units across 1,000 identical demand and lead-time paths. On each path, record
Delta_s = Profit(300, scenario_s) - Profit(200, scenario_s).
Now inspect the distribution of Delta_s.
If 300 wins by a lot in nearly every scenario, the decision is robust.
If the distribution is centered near zero and changes sign constantly, you are sitting on a real boundary.
If 300 has slightly higher mean value but a brutal left tail, the choice depends on risk appetite and recourse options.
This is much more informative than reporting that demand has a standard deviation of 42 units.
Recourse changes the boundary
Never evaluate a decision as if you are frozen after making it when the real business can react.
Suppose you order 200 today but can expedite another 100 next week at a premium if demand is strong. That option changes the economics of ordering 200.
Likewise, if excess inventory can be transferred to another region, returned to a supplier, marked down, or consumed in a future period, the overage cost changes.
The boundary between 200 and 300 therefore depends on the available recourse.
A useful simulation should encode what the business would actually do after uncertainty resolves, not punish the initial decision for refusing to possess perfect foresight.
This is also why simple critical-ratio calculations can break down in operational settings. The textbook underage and overage costs assume a particular one-shot structure. Real supply chains often have future order opportunities, shared constraints, substitutions, transfers, expedites, and multi-period inventory carryover.
Once those exist, the decision boundary is generated by the full policy, not by one static percentile.
Forecasting effort should follow decision sensitivity
Forecast teams often allocate effort according to statistical difficulty or business volume.
A decision-centered system adds another dimension: sensitivity of the action to uncertainty.
Consider four items:
| Item | Forecast uncertainty | Decision margin | Priority |
|---|---|---|---|
| A | High | Large | Moderate |
| B | Low | Tiny | High |
| C | High | Tiny | Very high |
| D | Low | Large | Low |
Item A is noisy, but every reasonable future still implies roughly the same action. Improving its forecast may not change much.
Item B is relatively predictable, but the business is sitting directly on an expensive MOQ or capacity threshold. A small improvement in information may be valuable.
Item C deserves serious attention because uncertainty is high and the decision is fragile.
Item D is boring. That is good. Automate it and move on.
This is a better way to prioritize analytical work than blindly chasing the worst MAPE.
Failure modes
Several mistakes show up repeatedly.
Treating all uncertainty as equally important
A wide distribution is not automatically a serious business problem. Ask whether it changes the action.
Looking only at the optimal action
Store the second-best and nearby alternatives. Without them, you cannot tell whether the recommendation is robust or barely winning.
Ignoring discrete constraints
Case packs, MOQs, fixed costs, and activation rules create the boundaries. Smoothing them away can erase the exact economics you need to understand.
Evaluating items independently
Shared budget, capacity, transportation, and vendor constraints make one item’s boundary depend on other items.
Using different scenarios for different actions
This adds Monte Carlo noise to the comparison. Use common random numbers.
Assuming no recourse
If planners can expedite, transfer, cancel, substitute, or reorder, include those actions. Otherwise you will systematically misprice flexibility.
Reporting fake precision
If two actions differ by 0.02% in estimated value and simulation error is larger than that, do not present one as unquestionably superior.
Tuning the forecast where the decision is already stable
Better statistical performance is nice. But if the action never changes, there may be more valuable analytical work elsewhere.
What to build in practice
A useful production decision system should retain more than the chosen action.
For every material decision, log:
- current state
- feasible candidate actions
- expected economic value of the best few actions
- decision margin
- major binding constraints
- uncertainty scenarios or scenario identifiers
- downside metrics
- sensitivity to key assumptions
- available recourse
- final executed action
- later realized outcome
This creates a much better debugging trail.
When someone asks, “Why did the system order 1,000 instead of 800?” you can answer:
The vendor MOQ activated at 1,000. The 800-unit plan was infeasible. Not ordering had an expected shortage cost of $42,000. Opening the vendor created $31,000 of expected incremental value, and the decision remained positive in 84% of the simulated futures.
That is a decision explanation.
“The forecast was 923” is not.
The practical lesson
Uncertainty is not valuable because distributions are sophisticated.
It is valuable because different futures can imply different actions.
The most important places to model carefully are often the places where the business can flip from one decision regime to another: open or closed, order or wait, 200 or 300, standard freight or expedite, accept demand or reject it, allocate here or there.
Find those boundaries.
Measure how close the current state is to them. Measure the economic gap between competing actions. Simulate the alternatives using the same uncertain futures. Include the constraints and recourse that exist in the real operation.
Then spend forecasting, optimization, and human attention where another piece of information can actually change what you do.
That is the point of uncertainty modeling.
Not to describe the future more beautifully.
To know when the decision should change.