Main Content


Process capability indices


S = capability(data,specs)


S = capability(data,specs) estimates capability indices for measurements in data given the specifications in specs. data can be either a vector or a matrix of measurements. If data is a matrix, indices are computed for the columns. specs can be either a two-element vector of the form [L,U] containing lower and upper specification limits, or (if data is a matrix) a two-row matrix with the same number of columns as data. If there is no lower bound, use -Inf as the first element of specs. If there is no upper bound, use Inf as the second element of specs.

The output S is a structure with the following fields:

  • mu — Sample mean

  • sigma — Sample standard deviation

  • P — Estimated probability of being within limits

  • Pl — Estimated probability of being below L

  • Pu — Estimated probability of being above U

  • Cp(U-L)/(6*sigma)

  • Cpl(mu-L)./(3.*sigma)

  • Cpu(U-mu)./(3.*sigma)

  • Cpkmin(Cpl,Cpu)

Indices are computed under the assumption that data values are independent samples from a normal population with constant mean and variance.

Indices divide a “specification width” (between specification limits) by a “process width” (between control limits). Higher ratios indicate a process with fewer measurements outside of specification.


collapse all

Simulate a sample from a process with a mean of 3 and a standard deviation of 0.005.

rng default; % for reproducibility
data = normrnd(3,0.005,100,1);

Compute capability indices if the process has an upper specification limit of 3.01 and a lower specification limit of 2.99.

S = capability(data,[2.99 3.01])
S = struct with fields:
       mu: 3.0006
    sigma: 0.0058
        P: 0.9129
       Pl: 0.0339
       Pu: 0.0532
       Cp: 0.5735
      Cpl: 0.6088
      Cpu: 0.5382
      Cpk: 0.5382

Visualize the specification and process widths.

capaplot(data,[2.99 3.01]);
grid on


[1] Montgomery, D. Introduction to Statistical Quality Control. Hoboken, NJ: John Wiley & Sons, 1991, pp. 369–374.

Version History

Introduced in R2006b

See Also