This Process Capability Calculator is designed for Six Sigma practitioners, quality engineers, and manufacturing professionals to determine if a process is capable of producing output within customer specification limits. By inputting your process data, you can calculate Cp, Cpk, Cpu, and Cpl to assess statistical control.
What is Cpk?
Cpk (Process Capability Index) measures how well a process is performing relative to its specification limits, taking into account how centered the process is. Unlike Cp, which only measures the spread of the process compared to the tolerance width, Cpk considers the actual location of the data distribution.
A high Cpk value indicates that the process has a low probability of producing defects.
Formulas Used
The calculator uses the standard statistical formulas for process capability:
Cp (Process Potential): (USL – LSL) / (6 * σ)
Cpu (Upper Capability): (USL – Mean) / (3 * σ)
Cpl (Lower Capability): (Mean – LSL) / (3 * σ)
Cpk (Actual Capability): Min(Cpu, Cpl)
Where σ represents the standard deviation.
Interpreting Your Results
Cpk Value
Process Status
Action Required
Cpk < 1.0
Not Capable
Process produces defects. Needs immediate improvement or inspection.
1.0 ≤ Cpk < 1.33
Marginally Capable
Acceptable for non-critical parts, but improvement is recommended.
Cpk ≥ 1.33
Capable
Industry standard. The process is statistically capable.
Cpk ≥ 1.67
Highly Capable
Six Sigma quality levels. Very low defect rate.
Cp vs. Cpk: What is the Difference?
Cp tells you what is possible if your process were perfectly centered between the limits. It represents the potential of the process.
Cpk tells you the reality. It accounts for the fact that the process mean might not be perfectly centered. If Cp and Cpk are equal, your process is perfectly centered. If Cpk is significantly lower than Cp, your process is shifting toward one of the limits.
function calculateProcessCapability() {
// Get input values
var usl = parseFloat(document.getElementById('usl').value);
var lsl = parseFloat(document.getElementById('lsl').value);
var mean = parseFloat(document.getElementById('mean').value);
var sigma = parseFloat(document.getElementById('sigma').value);
// Validation
if (isNaN(usl) || isNaN(lsl) || isNaN(mean) || isNaN(sigma)) {
alert("Please enter valid numbers for all fields.");
return;
}
if (usl <= lsl) {
alert("Upper Specification Limit (USL) must be greater than Lower Specification Limit (LSL).");
return;
}
if (sigma <= 0) {
alert("Standard Deviation must be greater than zero.");
return;
}
// Calculations
// Cp = (USL – LSL) / (6 * sigma)
var cp = (usl – lsl) / (6 * sigma);
// Cpu = (USL – Mean) / (3 * sigma)
var cpu = (usl – mean) / (3 * sigma);
// Cpl = (Mean – LSL) / (3 * sigma)
var cpl = (mean – lsl) / (3 * sigma);
// Cpk = min(Cpu, Cpl)
var cpk = Math.min(cpu, cpl);
// K (Centering Factor) = |Target – Mean| / ((USL-LSL)/2)
// Assuming Target is midpoint (USL+LSL)/2
var midpoint = (usl + lsl) / 2;
var k = Math.abs(midpoint – mean) / ((usl – lsl) / 2);
// Display Results
document.getElementById('resultCp').innerText = cp.toFixed(3);
document.getElementById('resultCpu').innerText = cpu.toFixed(3);
document.getElementById('resultCpl').innerText = cpl.toFixed(3);
document.getElementById('resultCpk').innerText = cpk.toFixed(3);
document.getElementById('resultK').innerText = k.toFixed(3);
// Interpretation Logic
var interpretationText = "";
var interpretationClass = "";
if (cpk < 1.0) {
interpretationText = "Not Capable: The process variation exceeds specification limits. Significant defects are expected.";
document.querySelector('.cpk-interpretation').style.backgroundColor = "#f8d7da";
document.querySelector('.cpk-interpretation').style.color = "#721c24";
document.querySelector('.cpk-interpretation').style.borderColor = "#f5c6cb";
} else if (cpk >= 1.0 && cpk < 1.33) {
interpretationText = "Marginally Capable: The process is barely meeting specifications. Caution is advised.";
document.querySelector('.cpk-interpretation').style.backgroundColor = "#fff3cd";
document.querySelector('.cpk-interpretation').style.color = "#856404";
document.querySelector('.cpk-interpretation').style.borderColor = "#ffeeba";
} else if (cpk >= 1.33 && cpk < 1.67) {
interpretationText = "Capable: The process meets standard industry requirements.";
document.querySelector('.cpk-interpretation').style.backgroundColor = "#d4edda";
document.querySelector('.cpk-interpretation').style.color = "#155724";
document.querySelector('.cpk-interpretation').style.borderColor = "#c3e6cb";
} else {
interpretationText = "Highly Capable: Excellent process control (approaching Six Sigma levels).";
document.querySelector('.cpk-interpretation').style.backgroundColor = "#d1ecf1";
document.querySelector('.cpk-interpretation').style.color = "#0c5460";
document.querySelector('.cpk-interpretation').style.borderColor = "#bee5eb";
}
document.getElementById('cpkInterpretation').innerHTML = interpretationText;
// Show results container
document.getElementById('cpkResults').style.display = "block";
}