Skip to content

Cp and Cpk calculator

Paste your process measurements, enter the spec limits and see whether the process is capable: Cp, Cpk, Pp and Ppk, the histogram and how many parts per million should fall out of spec.

Measurements and specification

One value per line, or one subgroup per line (2 to 10 values separated by spaces, semicolons or TAB). Paste straight from a spreadsheet.
Leave one limit blank for a one-sided specification.

Result

1.10Cpk
Marginally capable (Cpk between 1.00 and 1.33)

The process is off center. Centered, Cpk would reach 1.37.

Histogram with the spec limits

9.95 ≤ x < 9.9583: 09.9583 ≤ x < 9.9667: 09.9667 ≤ x < 9.975: 09.975 ≤ x < 9.9833: 09.9833 ≤ x < 9.9917: 59.9917 ≤ x < 10: 1610 ≤ x < 10.0083: 3210.0083 ≤ x < 10.0167: 1410.0167 ≤ x < 10.025: 1810.025 ≤ x < 10.0333: 1410.0333 ≤ x < 10.0417: 110.0417 ≤ x < 10.05: 0LSL 9.95USL 10.059.94599.973610.001210.028910.0565
  • Curve with within σ (Cp, Cpk)
  • Curve with overall σ (Pp, Ppk)
Cp
1.37
Pp
1.40
Ppk
1.13
Cpu (upper side)
1.10
Cpl (lower side)
1.64
Mean
10.0099
Within std dev (short-term σ)
0.01217
Overall std dev (long-term σ)
0.01187
Values used
100 (20 subgroups of 5)
Expected out of spec
360 ppm
Out of spec in the sample
0 ppm
Sigma level (Z + 1.5)
4.88

How to calculate Cp and Cpk

Process capability compares two widths: the tolerance the customer allows and the process’s natural spread, which is 6 standard deviations (3 on each side of the mean).

Cp = (USL − LSL) ÷ 6σ

Cpk = the smaller of (USL − mean) ÷ 3σ and (mean − LSL) ÷ 3σ

The σ in Cp and Cpk is the within-subgroup (short-term) standard deviation:

  • with subgroups of size n: σ = R̄ ÷ d2, where R̄ is the average subgroup range and d2 comes from the table (2.326 for n = 5)
  • with individual values: σ = MR̄ ÷ 1.128, where MR̄ is the average moving range between consecutive values

Pp and Ppk use the same formulas with the standard deviation of all measurements together (the ordinary sample standard deviation, long term).

Worked example

The data in the calculator is 20 subgroups of 5 parts of a shaft specified at 10.00 ± 0.05 mm (LSL = 9.95, USL = 10.05).

  1. Grand mean: 10.00985 mm
  2. Average subgroup range: R̄ = 0.0283 mm
  3. Within σ = 0.0283 ÷ 2.326 = 0.01217 mm
  4. Cp = (10.05 − 9.95) ÷ (6 × 0.01217) = 0.10 ÷ 0.0730 = 1.37
  5. Upper side: (10.05 − 10.00985) ÷ (3 × 0.01217) = 1.10. Lower side: (10.00985 − 9.95) ÷ (3 × 0.01217) = 1.64
  6. Cpk = the smaller one = 1.10

The standard deviation of all 100 values is 0.01187 mm, giving Pp = 1.40 and Ppk = 1.13. Ppk is close to Cpk, so the process is stable between subgroups, and the control chart of the same data agrees: no points outside the limits.

In plain words: the process spread fits the tolerance with room to spare (Cp 1.37), but the mean sits 0.01 mm above nominal, close to the upper limit. Just centering the process would take Cpk from 1.10 to about 1.37 without reducing variation at all.

How to read the result

Cpk Status What to do
1.33 or more capable keep it in control with a control chart
1.00 to 1.33 marginal center it and reduce variation; tighter inspection meanwhile
below 1.00 not capable it already makes bad parts; contain and act now

Always compare all four indices:

  • High Cp, low Cpk: the problem is where the mean sits. Move the process to the center.
  • Low Cp: the spread is too wide for the tolerance. Reduce variation (machine, method, material) or review the tolerance with engineering.
  • Ppk well below Cpk: the process drifts over time (lot changes, wear, shifts). Look for the special cause on the control chart.

Expected ppm is estimated from the normal curve with the overall standard deviation, and the sigma level uses the convention of adding 1.5 to Z. Both only hold if the data is roughly normal: check the histogram’s shape.

Common mistakes

  • Computing Cpk on an unstable process. If the control chart shows points outside the limits, Cpk describes the past and does not predict the future. Stabilize first.
  • Using the overall standard deviation for Cpk. That is Ppk. Many ready-made templates mix them up and report a “Cpk” that is not Cpk.
  • Too few measurements. With 20 or 30 values, Cpk swings a lot between samples. Use at least 100.
  • A poor gauge. If measurement uncertainty is large relative to the tolerance, it adds to the spread and drags Cpk down. See the measurement uncertainty calculator.
  • Ignoring the shape of the data. Strongly skewed data (flatness, roughness, times) is not normal, and the estimated ppm will be wrong.

Frequently asked questions

What is the difference between Cp and Cpk?

Cp compares the tolerance width with the process spread, ignoring where the process is centered. Cpk also accounts for the mean: it measures the distance from the mean to the nearest limit. A centered process has Cp equal to Cpk; the further off center, the lower Cpk.

What is a good Cpk value?

The usual minimum is 1.33, which leaves 4 standard deviations between the mean and the nearest limit. Between 1.00 and 1.33 the process is marginally capable; below 1.00 it already makes parts out of spec. Automotive customers often require 1.67 for critical characteristics.

What is the difference between Cpk and Ppk?

Same formula, different standard deviation. Cpk uses the within-subgroup standard deviation (short term, R̄/d2). Ppk uses the standard deviation of all measurements together (long term). If Ppk is much lower than Cpk, the process shifts between subgroups.

How do you calculate Cpk?

Cpk = the smaller of (USL − mean) ÷ 3σ and (mean − LSL) ÷ 3σ, where σ is the within-subgroup standard deviation. With subgroups, σ = R̄ ÷ d2; with individual values, σ = MR̄ ÷ 1.128.

How many samples do I need for Cpk?

At least 100 measurements is the usual recommendation, for example 25 subgroups of 4 or 5 parts collected across several shifts. With 30 values or fewer, Cpk varies a lot from one sample to the next.

Can I calculate Cpk with a one-sided tolerance?

Yes. With only an upper limit (maximum roughness) or only a lower one (minimum strength), Cpk is the index for that side: Cpu or Cpl. Cp does not exist in that case. Leave the other limit blank.