Calculate Cpk process capability index to assess whether a process meets specification requirements. Use this skill when the user needs to evaluate process capability, compare processes, or determine if quality targets are achievable — even if they say 'can our process meet spec', 'process capability', or 'Cpk calculation'.
Cpk measures how well a process fits within specification limits, accounting for both variation (spread) and centering. Cpk = min((USL - μ) / 3σ, (μ - LSL) / 3σ). Cpk ≥ 1.33 is typically required; Cpk ≥ 1.67 for critical characteristics. Unlike Cp, Cpk penalizes off-center processes.
Trigger conditions:
When NOT to use:
IRON LAW: Cpk Is Only Valid for a STABLE, IN-CONTROL Process
Computing Cpk on an unstable process gives a meaningless number.
The process MUST be in statistical control (per SPC charts) before
capability analysis. An unstable process with Cpk=2.0 today may
produce defects tomorrow when it shifts.
Collect: 100+ measurements from a stable process. Determine: USL, LSL (customer specifications). Verify process is in control (SPC charts show stability). Gate: Process in control, specifications defined, 100+ data points.
Check: Cp vs Cpk difference indicates centering issue (Cp >> Cpk = off-center). Distribution is approximately normal (histogram, normality test). Gate: Capability computed, centering assessed, normality verified.
Return capability indices with defect rate estimates.
{
"capability": {"cp": 1.8, "cpk": 1.45, "ppm_defective": 27},
"centering": {"mean": 50.2, "target": 50.0, "offset_pct": 0.4},
"specs": {"usl": 55, "lsl": 45, "target": 50},
"metadata": {"samples": 200, "sigma_method": "rbar_d2", "normality_p": 0.35}
}
Input: USL=55, LSL=45, μ=50.2, σ=1.5 Expected: Cp = (55-45)/(6×1.5) = 1.11. Cpk = min((55-50.2)/4.5, (50.2-45)/4.5) = min(1.07, 1.16) = 1.07. Below 1.33 target.
| Input | Expected | Why |
|---|---|---|
| μ exactly at target | Cp = Cpk | Perfectly centered |
| μ outside specs | Cpk < 0 | Process mean beyond specification limit |
| One-sided spec only | Use Cpk for that side only | e.g., surface finish has only USL |
| Script | Description | Usage |
|---|---|---|
scripts/cpk.py | Compute Cp, Cpk, Cpm, and PPM defective from process data | python scripts/cpk.py --help |
Run python scripts/cpk.py --verify to execute built-in sanity tests.
references/capability-indices.mdreferences/non-normal-capability.md