Why most SPC implementations are ignored
Statistical process control is in every quality engineer's training. It's also, in our experience, the single most under-implemented part of factory quality systems. Operators don't trust the charts; engineers respect the theory but don't use the output; quality reports get filed and not read.The reason is rarely the maths. It's usually how the SPC is wired into the line.
Pick the right chart for the variable
- X-bar / R — measured continuous variable, sub-grouped samples. The textbook default. Works when sub-groups are meaningful (e.g. five consecutive parts every hour).
- I-MR (Individuals / Moving Range) — when sub-grouping doesn't make sense; e.g. a temperature sensor reading. Often the right chart, often replaced incorrectly with X-bar / R because that's what the QE was taught.
- p-chart / np-chart — discrete attribute (defective / not), variable / fixed sample size.
- c-chart / u-chart — count of defects per unit (a single part can have multiple defects).
- EWMA / CUSUM — when small persistent shifts matter more than large transient ones. Underused; should be more common.
The wrong chart on the right data is the same as the right chart on the wrong data — it doesn't catch what you need.
Control limits ≠ specification limits — and operators must understand this
The single most common confusion on the floor is between control limits (statistical, what the process is doing) and specification limits (what the customer wants). They are not the same. The chart catches the process drifting before parts are out of spec — that's the value.If the operator sees a point outside the control limit and shrugs because "it's still in spec", the chart isn't doing its job. Training and screen design have to clarify the distinction.
The Western Electric / Nelson rules — pick a few
- One point beyond 3σ — investigate (always)
- Nine in a row on one side of the mean — drift (almost always)
- Six in a row trending — sustained shift
- Two of three points beyond 2σ on the same side — instability
Don't enable all eight Nelson rules. The false-alarm rate becomes high enough that operators tune them out. Pick three, train operators, raise alarms only on those.
Subgroup design — the underrated decision
The subgroup rate and size determine what the chart can detect:- Within-subgroup variation should be the natural process noise. Subgroups should be "as homogeneous as practical".
- Between-subgroup variation is what the chart detects. Make subgroups span what you care about — typically time.
- A bad split (e.g. one subgroup includes parts from two operators) confounds the analysis.
For a continuous process, every-30-minutes subgroups of 5 consecutive parts is a workable default. Tune from there.
Real-time SPC vs end-of-shift SPC
- Real-time — chart updates as parts are measured, alarm triggers on rule violation. The operator can intervene during the shift.
- End-of-shift — quality engineer reviews the chart in the morning. Useful for analysis, useless for process control during production.
If the goal is process control, it has to be real-time and the operator has to be the actor. End-of-shift SPC is a reporting exercise, not a quality system.
The integration nobody plans
SPC alarms should:- Be visible on the operator's HMI immediately
- Trigger a documented response — not "investigate" in the abstract, but "stop, check setup, run X parts to verify"
- Be logged with the operator's response, for later root-cause analysis
- Be reportable up the chain — supervisor knows about the alarm, not just the operator
This is the wiring that makes SPC operational rather than theoretical.
One pattern worth adopting
Auto-pairing of process variables with SPC charts. When the line records "machined diameter = 50.02 mm", the SPC engine knows the chart, the subgroup rules, and the rules to evaluate, without engineer intervention. The boring, mechanical SPC pipeline that "just runs" — that's the one operators trust.What rules do you enable in production? And has anyone successfully replaced traditional SPC with ML-based anomaly detection on process variables?