Cycle or Chase - why a fixed cycle recovers & re-planning does not

Cycle or Chase

Why a fixed cycle recovers & re-planning does not

Chasing the shortage feels like the responsible thing to do. But every time we tear up the schedule, we start a fire somewhere else - & next week we are putting that one out instead. That is how a plant ends up chasing its own tail for a month over a problem that lasted a week.

This runs one bottling line two ways. The first keeps to a fixed cycle, like a train timetable: when a run is missed, everyone still knows when the next one goes. The second chases whatever is closest to running out. Both get the same orders, the same hours & the same shortage.

The line makes 100 SKU - stock-keeping unitOne specific sellable item. A 750 ml bottle & a 1 litre bottle of the same liquid count as two: stocked, counted & ordered separately.SKUs on a classic Pareto profile, or power lawA small share of items carries most of the total - usually shorthanded as 80/20. It governs city sizes, book sales & very nearly every product range. The consequence: we cannot treat all SKUs alike, because they are nowhere near the same size.Pareto profile - 20 A, B & C items - ABC classificationSorting the range into bands by volume so each band is planned differently. A items are the runners, C the slow tail. The standard answer to a Pareto profile: make the A items often, the C items rarely.A items carrying 70% of volume, 30 B items carrying 20%, a tail of 50 C items sharing the last 10%. On the wheel, A items run every two weeks, B every four & C every eight, so the whole range is covered in eight weeks. Neither plant escapes the shortage. What differs is how long each one spends firefighting afterwards.

Before we start

Five grounding ideas to keep in mind.

One line, a hundred products

The line has 132 working hours a week & 100 SKU - stock-keeping unitOne specific sellable item. A 750 ml bottle & a 1 litre of the same liquid count as two: stocked, counted & ordered separately.SKUs to get through, & about 100 of those hours go on making what customers buy. That leaves a thin margin for everything else, which is why the planning rule matters.

Switching costs real time

Every switch from one product to the next means clear down, clean, reset. That is a Changeover, or setupClear down, clean, swap tooling, reset, first-off check. Nothing sellable comes off the line while it happens.changeover: 45 minutes, & nothing sellable comes off the line while it runs. Twenty a week is fifteen hours gone.

A, B & C items

Twenty products carry 70% of sales, thirty more carry 20%, & the remaining fifty share what is left. Not everything can be equally important - that is the Pareto profile, or power lawA small share of items carries most of the total - usually shorthanded as 80/20. It governs city sizes, book sales & very nearly every product range. The consequence: we cannot treat all SKUs alike, because they are nowhere near the same size.Pareto pattern, & it is why we make the A, B & C items - ABC classificationSorting the range into bands by volume so each band is planned differently. A items are the runners, C the slow tail. The standard answer to a Pareto profile: make the A items often, the C items rarely.A items often & the C items rarely.

Share of sales against share of products, from the 100 SKUs in the model. The straight line is equal sales.

Two ways to decide what to make

One plant holds a fixed sequence, whatever else is happening that week. The other rebuilds its plan around whatever is closest to running out. The second sounds more sensible, which is exactly what makes it a trap.

Where the difference shows

Both plants take the same hit, & no rule prevents it. The gap opens in the weeks after the shortage ends. That is usually where the orange line bottoms out, once all the pushed-back volume lands at once.

Press Supplier shortage, then Play weeks. Underlined words carry definitions; there is a glossary below, & an appendix with the mathematics.

Why a timetable still helps when the train is cancelled

Rows 1 to 5 are a railway with a timetable. Rows 6 on are the same railway without one - which is how most plants run a week.

On the railway On the line
01You take the same train every morningEach line runs the same sequence of SKUs, in the same order, set by volume
02The times are published, so you plan around themThe schedule is frozen far enough ahead that materials can be ordered in normal lead time
03One morning your train is cancelledA shortage, quality hold or breakdown takes out part of the week. Nothing prevents that
04You are annoyed, but the next one is still comingThe volume is pushed back, not cancelled. The SKU still has its next slot
05Nobody tears up the timetable over one cancellationWe miss that slot, but the sequence holds. Changeover time stays the same as any other week
06Without a timetable, trains leave when the platform looks fullReactive re-planning: the schedule is redrawn each week around whatever is shortest
07You cannot plan anything, so you arrive early & waitNobody downstream can commit either, so everyone holds extra stock to feel safe
08A cancellation packs the next train, which then runs late as wellPushed-back volume crowds the next weeks, & every rush job eats the time those weeks needed
09Busy routes keep running. The quiet branch line stops altogetherThe C tail gets dropped for being too small to stop the line for. Case fill hardly moves; OTIF falls
10One cancellation costs the whole week instead of twenty minutesOne shortage turns into a month of re-planning
11So the timetable is worth having because trains get cancelledA fixed cycle is not a bet that nothing goes wrong. It is what lets us climb back out when something does

Departure boards

Both boards show the same production week. One plant is working a sequence that was published cycles ahead; the other is working a hot list drawn up that morning, on which nothing was ever scheduled.

Scheduled serviceFixed product wheel WK 00
Unscheduled serviceReactive re-planning WK 00
Week 0

Break something

Both plants get identical orders, hours & disruption. The only difference is how they decide what to make next.

Both plants fall over. Only one gets back up

Case fill rateOf all the cases customers asked for, the share shipped on time. It counts volume, so it is dominated by the runners & can look healthy while the tail is failing.Case fill by week, meaning the share of orders we handed over on time. The shaded band is the disruption itself. The orange line does most of its damage after that band ends.

Product wheel Reactive re-planning Recovery: CFR sustained above 97% for four weeks

Setup load per week
On a wheel this is set by the schedule, not by events: flat, & budgetable a year out. Reactive sets up more often, out of sequence, with materials unstaged, so its setup load climbs exactly when throughput matters most. The identity is at appendix §2.
Volume deferred, not cancelled
Missed volume is not cancelled, it is deferred - & it spends the capacity the following weeks were counting on. The reactive trough sits after the disruption has already ended.

Where the stock actually sits, week 0

Each tile is one SKU, ordered by volume so the A items fill the top rows & the C tail the bottom. Colour shows CoverHow long the stock on hand would last at normal sales. Two weeks of cover means running out in a fortnight if nothing more is made.cover, which is how long that stock would last.

Product wheel
Reactive re-planning
Backorder outstanding Under 1 week cover 1–2 weeks 2–4 weeks 4 weeks or more Above its own cycle requirement

Reading the result

What just happened

    We cannot stop the shortage. We can only decide whether it lands on a plant with a timetable, or a plant already chasing its tail.

    Scope of the model

    Glossary

    Every term used on this page.

    SKU stock-keeping unitOne specific sellable item. A 750 ml bottle & a 1 litre of the same liquid are two: stocked, counted & ordered separately.
    Pareto profile or power lawA small share of items carries most of the total, shorthanded as 80/20. So we cannot treat all SKUs alike: they are nowhere near the same size.
    A, B & C items ABC classificationBands by volume, planned differently. A items are the runners, C the slow tail. Make the A items often, the C items rarely.
    Changeover setupClear down, clean, swap tooling, reset, first-off check. Nothing sellable comes off the line while it happens.
    Product wheelA fixed, repeating sequence. Every SKU has a published next slot. A timetable for a bottling line.
    EPEI every product every intervalHow long to work through the whole range & return to the start. Shorter EPEI, smaller batches, less stock - paid for in changeovers.
    Level loadingArranging the sequence so each week carries a similar workload, rather than alternating heavy & light weeks.
    CoverHow long the stock would last at normal sales. Two weeks of cover means running out in a fortnight.
    Cycle stockStock held purely because we batch. Shop fortnightly & you keep a fortnight of food in the house.
    Safety stockStock held against real variability, as against cycle stock, which only answers our own batching convenience.
    Case fill rateOf the cases ordered, the share shipped on time. Counts volume, so the runners dominate it.
    Line fill OTIF, on time in fullOf the order lines placed, the share delivered complete. Every SKU counts equally. Nine of ten items is a failed line.
    BacklogOrders taken but not shipped, carried forward until there is stock.
    ExpeditePushing a job to the front because somebody escalated. It costs everything behind it, & usually extra changeover time too.
    Fire-fightingWorking the week from a hot list rather than a plan. Locally rational every time, collectively expensive.
    Finite or frozen horizonThe near-term schedule that is meant to be settled, so materials can be ordered outside vendor lead time.
    Week 0The week being executed. Changes here cost the most, because there is no time left to absorb them.
    Deferred, not cancelledMissed volume does not vanish. It moves into the following weeks & spends the capacity they were counting on.
    Signal volatilityHow much the plan a supplier sees changes week to week. What a fixed cycle buys down.
    RunnerA high-volume SKU with a permanent slot in the sequence. The A items.
    UtilisationThe share of available hours already committed. The higher it is, the less there is to recover with.
    Schedule attainmentThe share of the published plan actually executed as published.
    Coefficient of variationVariability against the average. CV 0.6 means swings of about 60% of its own average, week to week.
    Lead timeFrom deciding to make something to having it available to sell. One week throughout this model.
    ELSP economic lot scheduling problemHow often to make each product on a shared machine, trading changeover cost against holding cost.

    Appendix - the arithmetic underneath

    This is the arithmetic behind the model. Four things drive everything on the page: how the hours have to add up, how short a cycle we can hold, how often each SKU should run, & what happens to stock when the gap between runs keeps moving.

    Each section gives the result in words, then in symbols, then what it means on the line. Every number below comes from the settings you have loaded, so the maths & the simulation can be compared directly.

    Dtotal demand, units per week
    rrun rate, units per hour
    Havailable line hours per week
    splanned setup time, hours
    kunplanned setup multiplier
    NcSKUs in class c
    Tcreplenishment interval, weeks
    μimean weekly demand, SKU i
    σiits standard deviation
    Lproduction lead time, 1 week
    Λsetup load, hours per week
    ρutilisation of available hours
    Btbacklog at week t
    Qitrun quantity, SKU i week t

    §1 Where the orders come from

    Weekly demand per SKU is drawn from a normal distribution truncated at zero, with the Coefficient of variationVariability measured against the average. A CV of 0.6 means demand swings by roughly 60% of its own average, week to week - typical of slow movers.coefficient of variation rising as volume falls. C items also have an 18% chance of no demand in a week, which reproduces a real long tail.

    dit = max(0, μi(1 + cvi·Zit)),   Zit ~ N(0,1) iid(1)

    Volume is concentrated twice: across the bands by the 70/20/10 split, & within each band by lognormal weights. Strictly that is Pareto-like rather than a true power law, since the band shares are imposed. Items are then sorted into bands by actual volume, the way a real ABC review does it, & opening stock is staggered by position in the cycle so the run starts settled rather than all-full. Both rules start from the same position & see the same orders.

    What this means in practice

    Each SKU has its own steady average, & the smaller the SKU the more erratically it actually arrives. The tail is where variability is highest, & where a reactive rule does most of its damage.

    §2 Where the hours go

    The hours consumed must fit inside the hours available. This is the only hard constraint.

    i∈St ( si + Qit/r )  ≤  Ht(2)

    On a wheel, membership of St is fixed by the schedule rather than by circumstances, so setup load is a constant set by the frequency ladder:

    Λwheel = ∑c Nc·s / Tc(3)

    Which splits the week into three parts:

    What this means in practice

    Only the first line makes anything. The second is what variety costs us, & the third is what is left over to absorb surprises. A wheel fixes the middle line in advance, so we know how much spare time we have. Reactive lets events decide it, & events push it up at the worst possible moment.

    §3 The shortest cycle we can actually keep

    If all N items ran on one common interval T, the line must absorb N setups plus the production itself over each revolution:

    N·s + (D/r)·T  ≤  H·T   ⇒   T  ≥  N·s / (H − D/r)  =  Tmin(4)

    With ρrun = D/(rH) for the share of hours spent producing:

    Tmin = N·s / ( H·(1 − ρrun) )(5)
    What this means in practice

    The busier the line, the longer the shortest schedule we can actually keep - & it stretches away fast, not gently. A full line does not just make us late; it takes away our ability to hold a short cycle at all. So “run everything more often” is not on the table, which is why the A/B/C ladder in §4 exists.

    §4 Why A items run more often

    The independent solution to the ELSP - economic lot scheduling problemThe classic problem of deciding how often to make each product on a shared machine, trading changeover cost against the cost of holding stock.economic lot scheduling problem trades setup cost against holding cost item by item, giving an interval inversely proportional to the square root of demand:

    Ti* = √( 2s / (h·μi) )   ⇒   Ti ∝ μi−1/2   ⇒   Tc/TA = √(μAc)(6)
    What this means in practice

    Doubling the interval at each step down the ladder sits close to the cost-minimising allocation for a 70/20/10 split. So the wheel can be defended on cost, not only on discipline. Running the tail as often as the runners is not cautious but expensive: every changeover comes out of the hours the volume needs.

    §5 The stock we build for ourselves

    Stock built to cover an interval is drawn down over it, so average Cycle stockThe stock we hold purely because we make things in batches rather than continuously. Shop fortnightly & you need a fortnight of food in the house.cycle stock is half the run quantity:

    Icycle = ∑i μiTi/2 = (D/2)·∑c wcTc     cover = Icycle/D + SS(7)
    What this means in practice

    This is the weekly shop. Shop fortnightly & you keep a fortnight of food in the house; shop weekly & you keep half as much but make twice the trips. The wheel’s higher stock is that arithmetic, & it is the honest price of the schedule.

    Cycle stock covers how often we choose to run. Safety stock covers what we cannot control. Plants that hold plenty of stock & still miss service have usually built the first & skimped on the second. A cycle does not carry more stock so much as make the amount predictable, which is what lets us size the safety stock instead of guessing at it.

    §6 Why knowing the next slot is worth so much

    With a known interval R & lead time L, safety stock covers the protection interval in the standard way:

    SS = z·σd·√(R + L)(8)

    If the interval is itself random, the variance picks up a second component:

    SS = z·√( (R̄+L)·σd2  +  μd2·σR2 )(9)
    What this means in practice

    This is trusting a timetable, written as a formula. On a wheel σR is near zero, because the next slot is published: the second term disappears & safety stock only has to cover demand. Under re-planning, when a SKU runs next depends on every other SKU’s shortfall, so that term is large & nobody controls it. No amount of discipline buys it back, because we cannot size a buffer against something we cannot measure.

    So what a cycle buys is not a short gap between runs but a gap that stays the same. Trains are still late sometimes. A timetable never promised otherwise: it promised you would know when the next one goes, & a wheel promises the same about the next production slot.

    §7 Small cause, big mess

    Utilisation includes setup load, so a rule that sets up more often runs a busier plant on the same equipment:

    ρ = ( D/r + Λ ) / H(10)

    Kingman’s approximation then indicates how delay responds, with ca & cs the coefficients of variation of arrivals & service:

    W  ≈  ( (ca2 + cs2) / 2 ) · ( ρ / (1 − ρ) ) · τ(11)
    What this means in practice

    Reactive pushes both terms the wrong way at once. ρ goes up, because changeovers eat hours. Then cs2 goes up as well, because setups now come in two sizes: short when planned, long when rushed. With ρ/(1−ρ) in there, the damage grows far faster than the cause. Between about 140 hours & 125, the settings move smoothly & the result does not.

    §8 Falling behind makes us slower

    Backlog is the gap between demand & throughput, & throughput is whatever the hours left after setup will produce:

    Bt+1 = Bt + Dt − Yt,     Yt = r·(Ht − Λt)(12)

    Under re-planning the number of expedited setups et rises with the backlog, each carrying k, so throughput falls as arrears grow:

    ∂Yt/∂Bt = −r·s·(k − 1)·∂et/∂Bt  <  0(13)

    On a wheel, setup load is set by the schedule & does not respond to the backlog at all:

    ∂Λt/∂Bt = 0   ⇒   ∂Yt/∂Bt = 0(14)
    What this means in practice

    Under re-planning, falling behind makes us slower at catching up, which makes us fall further behind. Once that loop is strong enough the backlog simply runs away, & the sawtooth in the service chart is what it looks like from outside. It is the same mechanism as the bullwhip: the upset takes far longer to settle than it lasted.

    On a wheel, a bad week makes as much as a good one, so the backlog clears at a steady rate. A late train does not slow down the train behind it. A rush job does.

    §9 Two ways of counting, two different answers

    Case fill rateOf all the cases customers asked for, the share shipped on time. It counts volume, so it is dominated by the runners.Case fill weights each SKU by volume. Line fill, or OTIFOf all the order lines placed, the share delivered complete. Every SKU counts equally. A customer ordering ten items & receiving nine has had a line fail, even though 90% of the units arrived.Line fill weights every SKU equally, which is why the two can disagree sharply:

    CFRt = ∑i min(xit, dit) / ∑i dit      LFRt = |{ i : xit ≥ dit }| / |{ i : dit > 0 }|(15)
    What this means in practice

    The tail is half of every line we count, but only a tenth of every case. So we can report a healthy case fill while a customer who orders across the range finds half their lines short. When reactive drops C items, case fill barely notices & OTIF falls off. Judged on cases alone, the gap between the two rules is understated every time.

    §10 What the model leaves out

    Some of these work in the wheel’s favour & some against it, so they are listed together.

    • One line, no parallel resources, so no load balancing.
    • Setup time independent of sequence. Real wheels are sequenced to minimise changeover by grade, colour or allergen, so a genuine wheel would gain more than this one does. Understates the wheel.
    • A flat one-week lead time, with no supply wobble outside the shortage itself.
    • All unmet demand backordered, none lost, no substitution. Lost sales would penalise both, reactive more.
    • Demand independent across SKUs & weeks: no seasonality, promotions or forecast bias, so no externally generated bullwhip.
    • Capacity is hard: no overtime, extra shifts or subcontract. In practice a firefighting plant buys premium hours, which moves the cost onto the P&L rather than removing it.
    • Perfect inventory accuracy, no yield loss outside the quality hold.
    • The wheel is assumed to be adhered to. Sustaining that against commercial pressure is the genuinely hard part, & this model assumes it away. Flatters the wheel.

    Two parameters carry most of the weight: the minimum economic run length, & the unplanned setup factor k. Both are measurable in a real plant, so set them from your own changeover studies before using this to make a case.

    Created by

    Alvin J Lin

    alvinlinjr@gmail.com

    Licence

    Open source under the MIT License. You are free to use, copy, modify, merge, publish, distribute, sublicense & sell this work, including commercially, provided the copyright notice & the licence text travel with it. It is provided without warranty of any kind.

    Read the full licence
    MIT License
    
    Copyright (c) 2026 Alvin J Lin
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    DEALINGS IN THE SOFTWARE.

    Reuse & adaptation

    The whole simulator is one self-contained HTML file with no dependencies, so it can be saved, edited & rehosted freely. Every model assumption sits in a single configuration block near the top of the script, & the appendix recomputes itself from whatever you change. If you adapt it with your own plant data, the attribution above is all that is asked.