toolfoundry Quality Engineering

Quality Engineering

Cp, Cpk, Pp & Ppk Calculator

Potential capability and actual performance from one set of spec limits — plus the centring index and the defect rate each tail implies.

One-sided specs have no Cp in the classical sense — the tool reports the one-sided index instead

Same measurement units as the mean and the standard deviations — the indices are dimensionless

Grand average of the subgroup means, or the mean of all individual readings

From R̄/d₂, s̄/c₄ or a moving range — drives Cp and Cpk

Ordinary sample standard deviation of every reading — drives Pp, Ppk and the PPM estimates

Results
Cpk (potential capability, centred)
Cp (potential capability, spread only)
Cpu (upper-side index)
Cpl (lower-side index)
Ppk (actual performance, centred)
Pp (actual performance, spread only)
k (centring index)
Sigma level (3 × Cpk) σ
Expected defects above USL PPM
Expected defects below LSL PPM
Expected total defect rate PPM (DPMO)

Method reviewed 2026-08-09

Method

Last reviewed

What this calculator does

It answers two different questions that get asked as though they were one. Cp and Cpk ask: given the noise this process makes when nothing is going wrong, could it hold the tolerance? Pp and Ppk ask: over everything that actually happened — every shift, every batch, every tool change — did it? The calculator returns both families side by side, with the centring index k, the sigma level, and the expected defect rate in PPM for each tail separately.

Enter the specification limits, the process mean and two standard deviations: the within-subgroup (short-term) σ and the overall (long-term) σ. Every measurement field is unit-agnostic — millimetres, grams, ohms, seconds, percent, it makes no difference, because capability indices are ratios of the same quantity and the units cancel. Just be consistent: if the limits are in millimetres, the mean and both σ must be too.

The formula

Two families, identical algebra, different σ:

Cp  = (USL − LSL) / (6 σ_within)      Pp  = (USL − LSL) / (6 σ_overall)
Cpu = (USL − μ)   / (3 σ_within)      Ppu = (USL − μ)   / (3 σ_overall)
Cpl = (μ − LSL)   / (3 σ_within)      Ppl = (μ − LSL)   / (3 σ_overall)
Cpk = min(Cpu, Cpl)                   Ppk = min(Ppu, Ppl)

The centring index ties the two columns of the C family together:

M = (USL + LSL) / 2
k = |μ − M| / ((USL − LSL) / 2)
Cpk = Cp × (1 − k)

k is the fraction of the half-tolerance the mean has drifted off the midpoint. At k = 0 the process is perfectly centred and Cpk = Cp; at k = 1 the mean sits exactly on a specification limit and Cpk = 0.

Defect rates come from the normal model, one tail at a time:

z_upper = (USL − μ) / σ    fraction above USL = 1 − Φ(z_upper)
z_lower = (μ − LSL) / σ    fraction below LSL = 1 − Φ(z_lower)
PPM = fraction × 1 000 000

Φ is the standard normal CDF, evaluated here through a Chebyshev approximation to the complementary error function with fractional error below 1.2 × 10⁻⁷ — accurate in the far tail, where table-style approximations that guarantee only absolute error fall apart. Both tails are computed from σ_overall, because the long-term spread is what the customer actually receives. With one characteristic per unit, total PPM is numerically the same as DPMO.

The method follows the ISO-style capability and performance statistics of ISO 22514-2 (which superseded ISO 21747); consult the current edition for the authoritative definitions used in formal capability reporting. Nothing here claims compliance with it.

Reading the result

The Cp/Cpk versus Pp/Ppk split is the single most misunderstood point in the subject, and the difference is entirely in how σ is estimated.

σ_within is calculated inside rational subgroups — from R̄/d₂, s̄/c₄, or a moving range on individuals. It deliberately excludes anything that varies between subgroups, so it captures only the common-cause noise the process makes moment to moment. Cp and Cpk built on it describe potential: what the process could do if you eliminated every drift and shift and left only the inherent noise.

σ_overall is the ordinary sample standard deviation of every reading in the study, ignoring subgroup structure entirely. It contains the within-subgroup noise plus every shift, drift, tool-wear ramp and batch-to-batch difference. Pp and Ppk built on it describe performance: what actually came out of the door.

So the two comparisons carry different information, and you need both:

If Cp ≈ Cpk ≈ Pp ≈ Ppk, the process is centred, stable, and the single number means what it says.

On acceptance levels. The widely used figures are 1.33 as the minimum for an ongoing process, 1.67 for safety-related or critical characteristics, and 1.00 as the point at which the spread only just fits inside the tolerance. Many customer quality agreements demand 1.33 Ppk on ongoing production and 1.67 Ppk at initial process qualification. These are contractual conventions, not physical constants — use the level in your own quality plan, PPAP requirement or customer specific requirement.

Sigma level here is simply 3 × Cpk, the number of standard deviations between the mean and the nearest specification limit. Note that “six sigma” in the Motorola sense already embeds a 1.5σ long-term shift allowance, so a Cpk = 2.0 process is quoted as 3.4 DPMO rather than the 0.002 PPM the un-shifted normal model gives — be explicit about which convention a reported sigma level uses.

Typical values and the assumptions behind them

Every index on this page assumes the characteristic is normally distributed and the process is in statistical control. The second matters more. Capability computed on an out-of-control process describes a distribution that does not exist: the arithmetic still produces a number, and that number predicts nothing, because there is no stable process for it to be a prediction about. Establish control on a chart first, then compute capability. In that order, always.

Normality matters most in the tails, which is exactly where the PPM estimates live. Characteristics bounded at zero — flatness, roundness, concentricity, contamination counts, time-to-failure — are usually skewed, and a normal-model PPM on them can be wrong by an order of magnitude. For those, transform the data or use a percentile-based ISO-style method, with Cpk defined from the 0.135% and 99.865% quantiles rather than from σ.

Worked example

A shaft diameter is specified as 10.0 ± 0.5, so USL = 10.5 and LSL = 9.5. A capability study of 25 subgroups gives a process mean of 10.1, a within-subgroup σ of 0.15 and an overall σ of 0.20.

Cp  = (10.5 − 9.5) / (6 × 0.15) = 1.0 / 0.9   = 1.111
Cpu = (10.5 − 10.1) / (3 × 0.15) = 0.4 / 0.45 = 0.889
Cpl = (10.1 − 9.5)  / (3 × 0.15) = 0.6 / 0.45 = 1.333
Cpk = min(0.889, 1.333)                       = 0.889

M   = (10.5 + 9.5)/2 = 10.0
k   = |10.1 − 10.0| / 0.5                     = 0.200
check: Cp(1 − k) = 1.111 × 0.8                = 0.889 ✓
sigma level = 3 × 0.889                       = 2.67 σ

Pp  = 1.0 / (6 × 0.20) = 1.0 / 1.2            = 0.833
Ppk = 0.4 / (3 × 0.20) = 0.4 / 0.6            = 0.667

The defect estimate uses σ_overall:

z_upper = 0.4 / 0.20 = 2.0 → 1 − Φ(2.0) = 0.0227501 → 22 750.1 PPM
z_lower = 0.6 / 0.20 = 3.0 → 1 − Φ(3.0) = 0.0013499 →  1 349.9 PPM
total                                                 → 24 100.0 PPM

Read it as three separate findings. First, the process is not capable — Cpk 0.889 is below 1.0, and roughly 2.4% of output is expected outside the limits. Second, it is off centre: the mean sits 0.100 above the midpoint, 20% of the half-tolerance, and simply re-centring the mean would raise Cpk from 0.889 to 1.111 without touching variation. Third, it is unstable: Ppk 0.667 against Cpk 0.889 means the long-term spread is a third wider than the short-term spread, so something is moving between subgroups. Do the centring adjustment first — it is free — and then chase the drift; only if both are fixed and Cpk still falls short is variation reduction the answer.

FAQ

Which σ should I use if I only have one number? If you have raw individual readings and no subgroup structure, you can only calculate Pp and Ppk honestly. Entering the same value in both fields makes Cp = Pp and tells you nothing about stability — the calculator will show identical columns, which is your cue that the study has no subgroups to compare.

Can Cpk be negative? Yes. It means the process mean itself lies outside a specification limit, so more than half the output is non-conforming. That is a setting problem, not a variation problem, and no amount of variance reduction fixes it.

Why is Ppk almost always lower than Cpk? Because σ_overall includes everything σ_within excludes. Any real process drifts, so the long-term spread is wider and the performance indices are lower. A Ppk higher than Cpk is a signal to check the arithmetic — usually an outlier has inflated the within-subgroup range estimate.

How many measurements do I need? Common practice is at least 25 subgroups of 4 or 5 for a capability study, or 100+ individuals — enough to see the between-subgroup variation that Ppk depends on. With fewer, the indices carry very wide confidence intervals and a point estimate of “1.35” is not meaningfully different from “1.20”.

What does Cp mean on a one-sided specification? Nothing, strictly — Cp needs both limits to have a tolerance width. Select the one-sided option and the tool reports the single-sided index (Cpu or Cpl) in place of Cp and Cpk, and shows the unused side and k as zero.


Indicative figures for capability studies. Confirm the acceptance levels, sample sizes and σ estimation method required by your own quality plan or customer specific requirements before reporting.