Pitch
Takt multiplied by the pack quantity — the interval a levelling box releases work in.
Formula
In practice
Pitch converts a rhythm into a quantity somebody can hand over: takt multiplied by the pack quantity, which is the container the next process or the customer actually takes. It is the interval at which work is released to the pacemaker and finished goods are collected from it, and it is what turns a takt of 47 seconds into something a material handler can run a route against.
It is also the unit levelling is expressed in. Available time divided by pitch gives the slots in a day, and dividing those by each product's mix share is what a levelling box holds. Sizing that from anything other than the real container quantity produces a schedule the floor cannot execute, which is why the pack quantity is map data rather than a policy default.
How this is calculated
Sizing, not drawing. Each figure below is closed-form and reports the basis it was computed from, because a supermarket sized from a plant's own stated interval and one sized from a default are different kinds of claim.
Design policy — safety and buffer factors, service level, tolerated
downtime, fallback replenishment cover and fallback container size are inputs,
not constants.
They are supplied by the caller, defaulted visibly, and echoed back on
result.design.policy so a report can print what its recommendations rest on.
See ADR-007.
cycle stock = withdrawal rate × replenishment lead time
buffer stock = cycle stock × buffer factor
supermarket size = cycle + safety + buffer
kanban cards = ceil(supermarket size / container quantity)
The withdrawal rate is the consuming process's required input, so yield loss and rework loading are already in it. Cards are rounded up: half a card authorises nothing.
Safety stock is sized two ways, and the result says which one it used.
| Basis | When | Formula |
|---|---|---|
derived-demand-variability |
demand.variabilityCv is stated and above zero |
z(service level) × cv × withdrawal rate × √(replenishment days) |
policy-factor |
no CV is stated | cycle stock × safety factor |
Assumption — stated because it is the kind that hides. Deriving safety stock from a coefficient of variation commits to a distribution, and this one commits to the normal: demand over the replenishment interval is treated as normally distributed about its mean, with daily draws independent, so the standard deviation over
ndays grows as√n. That is reasonable for aggregated repeat demand and poor for lumpy or intermittent demand — a spare-parts stream with long quiet stretches will be under-covered by this formula, and its user should override the service level or leave the CV out and size by policy instead. The engine reports the multiplier it used (safetyFactorUsed) next to the figure so the assumption can be argued with rather than only accepted.The service level is the plant's tolerance for running out, not a property of the map, so it lives in
DesignPolicyalongside the other decisions (ADR-007). The quantile is Acklam's rational approximation, written out rather than imported, and pinned in the tests against published standard-normal values.
A zero in the CV field is treated as no measurement, not as a customer with no variation. The latter does not exist, and reading it literally would print a supermarket with no safety stock at all as though that were a finding.
Kanban type — a pull link carries one of three signals, and they do not size the same store.
| Kind | Meaning | Store |
|---|---|---|
withdrawal |
authorises the consumer to take from the store | continuous cover |
production |
instructs the supplier to replace what was taken | continuous cover |
signal |
orders a batch once the store falls to a trigger point | trigger point + batch |
A signal kanban is a reorder point rather than a continuous loop, because a
process with a long changeover cannot replenish one container at a time. Its
trigger point is cycle stock + safety stock — demand over the replenishment
interval, plus the cover held against variation — and the store peaks at that
level plus the batch the signal orders. Sizing it continuously would recommend a
store its first delivery overflows.
Where a signal loop's supplying process states no batch size the store falls
back to the continuous formula, and the assumption says so rather than inventing
a batch. An absent kanban type reads as withdrawal, which is what every map
drawn before the field existed already meant.
Replenishment lead time, in order of preference:
| Basis | Source |
|---|---|
declared-epei-target |
changeover.epeiTargetDays on the supplying process |
derived-epei |
the interval that process is capable of (see EPEI) |
policy-default |
the policy value, reported as an assumption |
FIFO lane capacity = ceil(tolerated downtime / consuming process takt)
pitch = takt × pack quantity
levelling slots = available time / pitch, divided by product mix share
Where a FIFO connection feeds an external operation and no consuming-process takt exists, stream takt is used as an explicit fallback and the basis is published with the result.
EPEI feasibility — ProcessMetrics.epeiDays answers how short could the
interval be; this answers does the interval we intend to run fit:
available = net available time per day × interval days
run time = required passes × cycle time × interval days
changeover = product count × changeover duration
feasible ⟺ run time + changeover ≤ available
Infeasible intervals are reported with the shortfall. Negative slack is not
published as a number; it is published as feasible: false.
Planned cycle time — the cycle the cell is built to run at, which is not takt (ADR-024):
planned cycle time = declared, or takt × planned cycle allowance
operators at planned cycle = Σ (manual content ÷ own yield-adjusted takt) ÷ allowance
A cell built to the customer's exact rhythm has nothing left for a jam, a missing part or an operator answering a question. The basis says whether the team chose the cycle or the policy allowance supplied it, and the headcount is reported next to the figure at takt rather than replacing it — the gap between them is the cost of the allowance. A declared cycle above takt is rejected rather than applied: it would report fewer operators than takt requires.
Standard WIP — the pieces a cell needs in order to run:
recommended = machine count, where any element runs unattended
= 0, where none does
One piece in each machine that cycles on its own while the operator walks on. Anything above that minimum is a queue inside the cell with a standard-work name on it, and is reported in pieces — true wherever the cell sits, unlike days, which depend on the critical path.
Product strategy — which products to hold and which to build when asked (ADR-023):
| Classification | When (unclassified products only) | Recommended fulfilment |
|---|---|---|
runner |
mix share ≥ runner threshold | make to stock |
repeater |
between the two thresholds | none — a judgement |
stranger |
mix share < repeater threshold | make to order |
A plant's own classification is preferred to the engine's reading of volume, and the basis says which was used. How often a product is actually ordered decides this and no map records it, so where share was used the assumption says so and prints both thresholds. A repeater gets no recommendation: shelf life, contract terms and changeover cost decide it, and the model holds none of the three. A single-product stream gets nothing at all.
Pacemaker — walk upstream from the last process for as long as material moves directly, with no buffer to sit in and no pull signal to wait for. The upstream end of that segment is where the schedule belongs. The recommendation is reported next to what the map declares; it never overwrites it.
Methodology — Future-state design
Common questions
What pack quantity should I use?
The container the downstream process or customer actually withdraws in — the tray, tote or pallet that leaves the pacemaker. A theoretical batch size gives an interval nobody moves material on, and the levelling slots derived from it will not match the route.
How does pitch relate to levelling?
Levelling slots are available time divided by pitch, then divided among the products by mix share. Pitch is therefore the resolution of the schedule: a shorter pitch levels more finely and asks more of the material handling that has to keep up with it.
This definition is the one the product itself shows, read from its interface catalogue at build time.