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
The Engine then transforms the centre and three-sigma limits back into seconds.
Centre = exp(ȳ)
LCL = exp(ȳ − 3σ̂) · UCL = exp(ȳ + 3σ̂)
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).
| Result | Value |
|---|---|
| Ordinary median | 15.000 seconds |
| Geometric centre | 14.142 seconds |
| Lower control limit | 2.238 seconds |
| Upper control limit | 89.357 seconds |
| Status | ok |
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
| Status | Meaning |
|---|---|
too_few_observations | Fewer than 20 positive timed durations; centre and limits are withheld. |
chronological_order_withheld | The order of unequal tied durations is unknown; centre and limits are withheld. |
zero_spread | The median log moving range is at most 10−12. The centre remains, but both limits are withheld. |
limits_out_of_range | A 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.
Related measures and sources
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.