Statistical process control: log-duration control limits

Concept · Statistical measures · Measures

Updated

Browse documentation
On this page

Engine 19.0.0rc597 · Reader 9.0.0rc656 · Development snapshot

Statistical process control charts compare observations in time order with limits calculated from their variation. Ghost Observatory uses an Individuals chart of logarithmic durations, estimating variation from the differences between consecutive observations.

The practical question is which recorded steps were unusually long or short relative to the same activity’s observed pattern. A point outside a control limit is a reason to inspect that step and its context. It does not, by itself, establish a data error or a missed service commitment.

From durations to control limits

Start with positive durations t1, …, tn in chronological order. Let yi = ln(ti), with natural logarithms. The moving range measures the absolute change between consecutive log durations.

ȳ = (1 / n) ∑i=1n yi

MRi = |yi − yi−1|

σ̂ = [(1 / (n − 1)) ∑i=2n MRi] / 1.128

Average the log durations. Calculate the absolute difference between each consecutive pair, average those moving ranges, and divide by 1.128 to estimate variation on the log scale. There are one fewer moving ranges than observations.

The Engine then transforms the centre and three-sigma limits back into seconds.

Centre = exp(ȳ)

LCL = exp(ȳ − 3σ̂)   ·   UCL = exp(ȳ + 3σ̂)

Exponentiate the mean log duration to obtain the geometric centre. For the lower and upper control limits, first subtract or add three times the estimated log-scale variation to that mean, then exponentiate.

This centre generally differs from the empirical median shown elsewhere. The variation estimate uses the mean moving range; it is not the ordinary standard deviation of all durations.

A worked example that shows why order matters

Consider twenty timed observations alternating between 10 and 20 seconds. Their geometric mean is √200, approximately 14.142 seconds. Every log moving range is ln(2).

Control-chart results for the alternating durations
ResultValue
Ordinary median15.000 seconds
Geometric centre14.142 seconds
Lower control limit2.238 seconds
Upper control limit89.357 seconds
Statusok

The broad limits reflect repeated twofold changes from one observation to the next. Now put all ten 10-second observations first, followed by all ten 20-second observations. The ordinary distribution and geometric centre stay the same, but eighteen of the nineteen moving ranges become zero. This Engine returns zero_spread and withholds both limits. A control chart depends on the sequence, not just the collection of values.

Which observations can be charted?

The Engine needs at least 20 positive, finite durations with known start instants for one activity and duration source. This minimum is a product rule. Processing time and each work evidence class have separate series. Durations crossing a bounded analysis window’s edge are excluded from that window’s duration population.

Starts determine chronological order. If different durations start at the same instant, their order is accepted only when they belong to one work object and have distinct declared positions within it. Ties across different objects do not supply that evidence. Equal-duration ties do not change the moving ranges and therefore do not withhold a chart.

Zero durations have no logarithm. Positive durations without a start instant cannot be placed in the sequence. They can still contribute to the ordinary summary count and quantiles, so sample_n is not necessarily the number of charted points.

Why the limits can be missing

Published control-chart statuses
StatusMeaning
too_few_observationsFewer than 20 positive timed durations; centre and limits are withheld.
chronological_order_withheldThe order of unequal tied durations is unknown; centre and limits are withheld.
zero_spreadThe median log moving range is at most 10−12. The centre remains, but both limits are withheld.
limits_out_of_rangeA calculated limit exceeds floating-point range; the centre remains.

The median moving range appears only in the zero-spread check. It does not replace the mean moving range in the formula.

Engine results and Reader presentation

The activity row in duration_stats stores spc_center_sec, spc_lcl_sec, spc_ucl_sec and spc_status. A duration strictly below or above its limits creates an event_marks row with mark set to below or above. Equality to a limit does not create a signal.

Timing → Control chart plots processing-time points in the supplied order, reads the stored limits and highlights the stored marks. Its vertical axis is logarithmic. The Reader does not estimate new limits from the points currently visible.

These limits use the selected scope’s own observations. Compare them with an explicitly configured SLA target only after checking the clock and population: a statistical baseline and a service target answer different questions.

Control limits versus confidence intervals

Control limits describe the variation of individual observations in their recorded order. A Wilson confidence interval instead describes uncertainty around a proportion, such as the share of checked objects with a rule hit. A duration outside a control limit and a rule share with a narrow confidence interval are different findings.

Keep a service target separate from both. A statistically consistent process can still miss its target, and an unusual duration can still meet it. Inspect the recorded duration, the configured target and the underlying events before deciding what to investigate.

For an order-independent description, see median and percentiles or KDE duration curves. See processing time for the recorded input.

Method reference: NIST/SEMATECH, Individuals Control Charts, for the moving-range formula and 1.128 factor. The log transformation, sample minimum and withholding rules above are this Engine’s choices.