Manufacturing tolerances and standard deviation
A drawing says a part must be 20.00 ± 0.10 mm. A machine makes parts with a mean and a standard deviation. Tolerance analysis connects the two, and when several parts stack up into one assembly, the way you add their variation decides whether the design works on paper.
The assembly
Three parts sit end to end in a housing. The dimensions are hypothetical, chosen to make the arithmetic clear:
| Part | Nominal (mm) | Tolerance (mm) | Tolerance² |
|---|---|---|---|
| A | 20.00 | ± 0.10 | 0.0100 |
| B | 35.00 | ± 0.15 | 0.0225 |
| C | 15.00 | ± 0.05 | 0.0025 |
| Stack | 70.00 | 0.0350 |
The housing requires the stack to be 70.00 ± 0.25 mm. Does the design meet that?
Worst case: add the tolerances
The worst-case method assumes every part could be at its limit in the same direction at the same time. The stack tolerance is the plain sum:
worst case = 0.10 + 0.15 + 0.05 = ± 0.30 mm
That exceeds ± 0.25, so by worst case the design fails. To pass, every tolerance would have to shrink by the factor 0.25 ÷ 0.30 = 0.833, to ± 0.083, ± 0.125 and ± 0.042 mm. Tighter tolerances cost money: slower machining, more inspection, more scrap.
Worst case guarantees fit for every assembly built from in-spec parts. The price is that it designs for an event that almost never happens. Three independent parts all landing at the same extreme is very unlikely, and with ten parts it is practically impossible.
Root-sum-square: add the variances
The statistical method starts from a fact about standard deviations. For independent dimensions, the variance of a sum is the sum of the variances, so the SD of the stack is
σ_stack = √(σ_A² + σ_B² + σ_C²)
If each tolerance is taken as ± 3σ of its process, the same rule applies to the tolerances themselves. This is the root-sum-square (RSS) stack:
RSS = √(0.10² + 0.15² + 0.05²) = √0.0350 = ± 0.187 mm
That fits inside ± 0.25 with room to spare. The same parts, the same drawing, and the answer flips from fail to pass. The reason is that deviations partly cancel: a long A is as likely to meet a short B as a long one. The same square-root rule governs how measurement uncertainties combine, which the error propagation calculator applies.
The gap between the two methods widens with every part added. For k parts that each carry the same tolerance ± t, worst case gives ± k·t while RSS gives ± t·√k. Ten parts at ± 0.05 mm stack to ± 0.50 mm by worst case and ± 0.158 mm by RSS, less than a third as much. With two parts the saving is small (± 2t against ± 1.41t), which is why short stacks are often analysed worst case anyway.
Try it: error propagation calculator
The calculator opens with its own defaults; choose "Any formula", enter a + b + c, and give each part its nominal and tolerance (20.00 ± 0.10, 35.00 ± 0.15, 15.00 ± 0.05) or your own parts. Switch "Combine uncertainties" between quadrature and linear to compare RSS with worst case.
Use a, b and c for the measured quantities, e.g. a*b^2/c, sqrt(a^2 + b^2), a*sin(b).
In quadrature the combined σq is √(sum of squares), so the largest contribution dominates and small ones barely matter.
Show the working, step by step
Work out q.
q = 12 × 3 = 36
For a product or quotient, the relative uncertainties combine.
σa/|a| = 0.2/12 = 0.0166667 σb/|b| = 0.1/3 = 0.0333333 σq/|q| = √(0.0166667² + 0.0333333²) = 0.0372678
Convert back to an absolute uncertainty.
σq = 0.0372678 × 36 = 1.34164
Round σq to two significant figures and q to the same decimal place.
q = 36.0 ± 1.3
Uncertainties added in quadrature, assuming the errors are independent. The rules assume the uncertainties are small compared with the values.
Open the full error propagation calculator for products, quotients, powers and any other formula.
From tolerance to process SD: the Cp link
RSS is only as good as its assumption about the processes. The process capability index Cp compares the width of the tolerance to the spread of the process:
Cp = (USL − LSL) / 6σ
"Tolerance = ± 3σ" is the same as saying each part process has Cp = 1. Then the part SDs are one third of their tolerances, and the stack SD follows:
| Part | Tolerance | σ at Cp = 1 | σ² | σ at Cp = 1.33 |
|---|---|---|---|---|
| A | ± 0.10 | 0.0333 | 0.001111 | 0.0250 |
| B | ± 0.15 | 0.0500 | 0.002500 | 0.0375 |
| C | ± 0.05 | 0.0167 | 0.000278 | 0.0125 |
| Stack σ | 0.0624 | 0.003889 | 0.0468 |
With Cp = 1 parts, the stack SD is √0.003889 = 0.0624 mm, and ± 3σ is ± 0.187 mm, the RSS figure again. Now treat the stack as a process in its own right, with limits 69.75 and 70.25:
Cp_stack = 0.50 / (6 × 0.0624) = 1.34 z = 0.25 / 0.0624 = 4.01 → about 61 ppm outside, both sides
Each Cp = 1 part is itself outside its own tolerance about 2,700 times per million, yet the assembly misses its limit only about 61 times per million. If the part processes are better, at Cp = 1.33 (σ equal to a quarter of the tolerance), the stack SD falls to 0.0468 mm and the assembly Cp rises to 1.78, well under one reject per million. The Cpk calculator turns any mean, SD and limits into these figures.
Where RSS goes wrong: an off-centre part
RSS assumes every part process is centred on nominal. Cp ignores centring; Cpk does not. Suppose part B's process drifts and now averages 35.05 mm, still with σ = 0.05. The stack mean moves to 70.05 mm, only 0.20 mm from the upper limit:
Cpk_stack = (0.25 − 0.05) / (3 × 0.0624) = 1.07
The reject rate rises from about 61 to about 671 per million, eleven times worse, from a shift that is well inside part B's own tolerance. This is why statistical tolerancing needs the parts to be monitored, typically with control charts (the control limit calculator sets their limits), and why the process capability index calculator reports Cpk alongside Cp. The shaft example on the use cases page shows the same Cp versus Cpk gap for a single dimension.
Choosing a method
| Method | Stack tolerance | Meets ± 0.25? | Assumes |
|---|---|---|---|
| Worst case | ± 0.300 | No | Nothing about distributions |
| RSS | ± 0.187 | Yes | Independent, centred, normal, Cp = 1 |
| RSS × 1.5 safety factor | ± 0.281 | No | Allows for drift and non-normal parts |
Many design teams sit between the two extremes, inflating the RSS figure by a safety factor (1.5 is a traditional choice) to allow for processes that are not perfectly centred. For this assembly, that compromise fails too, which is itself useful information: the design is tight, and the choice is between tightening part B (the largest contributor, 64% of the stack variance) and controlling its centring closely. Standard deviation is what lets you see which part is worth the money.
Related calculators
-
Cpk calculator
Cp, Cpk, parts per million and sigma level from a mean and SD.
-
Error propagation calculator
The same root-sum-square rule, applied to measurement uncertainty.
-
Process capability index calculator
Cp, Cpk, Pp and Ppk from raw measurements.
Common questions
When should I use worst-case instead of RSS tolerance analysis?
Use worst case when the stack has only two or three parts, when a failure would be dangerous or very expensive, or when you cannot trust the part processes to be centred and independent. Use RSS when there are several parts from capable, stable, centred processes and a very small reject rate is acceptable.
Why do standard deviations add as squares?
For independent quantities, variances add: the variance of a sum is the sum of the variances. The standard deviation is the square root of the variance, so the SD of a sum is the square root of the sum of squared SDs. That is the root-sum-square formula.
What Cpk should each part have for an RSS stack to work?
RSS in its basic form assumes each tolerance equals ±3σ of a centred process, which is Cp = Cpk = 1. Many companies ask suppliers for Cpk of 1.33 or more, which gives margin for drift. What matters in the end is the capability of the assembly dimension, which you can work out from the part SDs as shown on this page.