Two-sided variability control / Pack · Bulk · API

Variability never disappears. It lands in stock, in time, or on the customer, and each of those three sits in a different department. That is why this is an end to end question, not a tool question: the answer is a set of coupled parameters, and a silo can only ever set one of them.

What you are looking at: a pharmaceutical supply chain, running the three classic stages. API, the Active Pharmaceutical Ingredient, is made by chemical synthesis in reactors: very large batches, long lead times, and campaign production. Bulk turns that ingredient into the actual dosage form. Pack puts it into market-specific presentations, where a handful of bulk products explode into dozens of country SKUs. None of this flows continuously. It is batch production throughout. Vessels have a minimum fill you cannot go below. Every product change means cleaning and re-qualifying the line, so a changeover costs real hours and real money. That is precisely why the order you run things in, and how often, decides your economics.
How two buffers kill variability before it travels
5 chapters · narrated
Press play for the narrated walkthrough.
Material flows left to right. Demand comes from the customer on the right and travels upstream.
Order beat
seen by supplier
 
Unit cost
per unit shipped
 
Disruptions
could not produce
 
Stock tied up
at finished goods
 
Written off
expired before shipping
 
Customer delay
average wait
 
OTIF
served in full, on time
 

UPSTREAMwhat is left after two filters

PRODUCTIONfilter 2: the pattern wheel

Wheel turns every
Time buffer

FINISHED GOODSfilter 1: the stock buffer

Target service level
Demand variability

Why this is an end to end question

The coupling is invisible from inside a siloThe replenishment level has to cover the longest cycle the plant is allowed to take, and the safety stock has to cover the window between two runs. Set the time band in operations and the stock target in planning, separately, and the two silently contradict each other. That is not a modelling subtlety. It was a real bug in this simulator until it was caught.
Squeezing buffers buys calm nowhereStock belongs to finance, cycle time to production, service to commercial. Close both buffers and the customer goes unserved on around three quarters of days, while the signal handed to the supplier still runs at more than twice the market swing. The variability does not vanish when you refuse to fund a buffer. It lands on everyone at once.
Local logic, global damageFor an inventory planner a higher service target is always the safer call. Only quality and finance ever see the volume written off because it sat too long to be shipped, which climbs into double digits at a slow cycle. Both parties behave correctly and the outcome is still wrong.
Nobody owns predictabilityNo department is measured on whether the supplier can plan, so it is the first thing sacrificed. Every expedite is a local rescue that destroys the repetition everyone upstream depends on, and a tightly set chain here produces dozens of them.

None of this is an argument against planning systems. It is an argument about sequence. Decide the concept first and the tool executes it. Decide the tool first and it hardens the silo logic into software, where it becomes expensive and slow to undo.

Model, sources and where it simplifies

What the simulator computes

Three products share one line. The sequence is fixed and repeats every cycle. At its slot each product is topped up to its Inventory Replenishment Level, so the make quantity is simply IRL minus stock on hand. If that gap is below the minimum batch the slot is skipped and the line idles. Cycle length is not fixed: it takes as long as the work needs, clamped into the band between CT(−) and CT(+). The IRL is sized on CT(+), not the nominal cycle, because stock has to cover the longest turn you permit. Classic MRP mode re-sorts the sequence by urgency every time and reorders on a reorder point.

Consistency with the operations research literature

The core policy matches Federgruen and Katalan, The Stochastic Economic Lot Scheduling Problem: Cyclical Base-Stock Policies, Management Science 42(6), 1996: items produced in a fixed rotation cycle, each run continuing until a target inventory level is reached, with idle time inserted when nothing is needed. The skip rule here is that idle time.

Sizing safety stock specifically for a cyclic schedule follows Rappold and Yoho, Setting safety stocks for stable rotation cycle schedules, IJPE 156, 2014, and the dynamic variant in Operations Management Research, 2019. Using capacity slack deliberately as a buffer against random demand, which is what the time buffer does here, is the subject of Bourland and Yano, The strategic use of capacity slack in the economic lot scheduling problem with random demand, Management Science 40(12), 1994. The comparison between a fixed cycle and reactive sequencing follows Cyclical schedules versus dynamic sequencing: replenishment dynamics and inventory efficiency, IJPE 107(2).

Consistency with the LEAN SCM material

The rule production quantity equals IRL minus current inventory, and the claim that an optimised repeating sequence yields the lowest changeover time, are as described by Camelot in CHEManager, 2014. Dynamic cycle times within boundaries, and the requirement that cycle time and stock targets are configured jointly rather than in isolation, follow Francas and Packowski in Business Chemistry. The quantity rule with a minimum and maximum make quantity mirrors the Pattern Wheel designer specification from the same source.

This is not a thought experiment

Variants of this logic, considerably more elaborate than the version modelled here, run in production at large process and pharmaceutical manufacturers. The designer specification behind much of the parameter logic was written as an IT requirements document in 2010, not as a concept paper, and a patent exists for the high-mix variant of the wheel. The approach is documented in Packowski’s LEAN Supply Chain Planning, which carries published endorsements from planning leaders at Novartis, AstraZeneca and BASF.

That is worth stating plainly, because the conversation today tends to begin and end with the tool: Kinaxis, o9, SAP IBP, and the rest. A planning system only executes the logic you hand it. Run reactive, forecast-driven replanning on the fastest engine on the market and you will reproduce exactly the upstream scatter shown when this simulator is switched to classic MRP. The method decides the outcome. The tool decides how quickly you get there. Both matter, but only one of them is usually on the agenda.

Where this model simplifies

It runs one production stage, three products and a single finished goods buffer. Bulk and API are computed but not drawn. Only one factoring rule is implemented, a proportional cut when the work does not fit the cycle; cut-off, rolling and IRL factoring are not. Frequency wheels, where a slow mover runs every third or fourth cycle, and high-mix wheels are not modelled, nor is the changeover learning effect that a repeating sequence produces in practice. Capacity utilisation is fixed at roughly two thirds, which matters: with a tighter line the time buffer behaves differently. Treat the numbers as directional, not as a plant model.

Acknowledgment and dedication

These ideas are deeply rooted in the lessons I learned during my time at Camelot Management Consultants, where I had the privilege of working with Dr. Josef Packowski for over 20 years. Our countless discussions on supply chain vulnerabilities and resilience mechanisms shaped much of my understanding of the field. Although he is no longer with us, having passed away in 2023, his wisdom and vision remain a guiding light in my work. This work is written in his honour and memory.

Acknowledging foundational principles

The principles of the Demand Driven Institute, namely decoupling, buffers, and flow-based decision-making, serve as critical foundational elements for stabilising supply chains. These concepts have significantly advanced supply chain thinking by shifting the focus from traditional MRP-driven approaches to more responsive, flow-driven models.

This work builds upon those foundations, offering additional layers of adaptability, execution feedback, and real-time synchronisation. Rather than replacing demand-driven concepts, these additional steps enhance and extend them, ensuring that supply chains are not only stable but also dynamically responsive to change.

In today’s volatile world, stabilisation alone is not enough. By combining demand-driven principles with real-time adaptability and execution synchronisation, organisations can create a resilient, self-learning supply chain that continuously evolves to meet uncertainty head-on.