Tolerance Stack-up for Operators
Why stack-up matters, arithmetic (worst-case) vs RSS (statistical) methods, Monte Carlo overview, worked 3-part example, and when process drift breaks RSS assumptions.
Table of contents
Tolerance Stack-up for Operators
Two parts that measure perfectly in spec can assemble into a product that is out of tolerance. That is tolerance stack-up, and it is the reason a shop that measures every individual part correctly can still ship a bad assembly. Operators who understand stack-up can look at a three-part drawing, see that the worst-case dimensions will not fit, and flag it before the first chip is cut.
This guide covers why stack-up analysis exists, the two production methods (worst-case arithmetic and statistical root-sum-square), how Monte Carlo fits in, a worked 3-part example, the assumptions RSS depends on, and how process drift can violate those assumptions even when parts pass inspection.
Why Stack-up Matters
Think of a simple assembly: three spacers stacked on a shaft between two bearings. Each spacer is nominally 1.000 inch long, with a tolerance of +/- 0.005 inch.
- Nominal stack: 1.000 + 1.000 + 1.000 = 3.000.
- If all three spacers are at their individual maximum (1.005 each), stack = 3.015. That is 0.015 larger than nominal.
- If all three spacers are at their individual minimum, stack = 2.985. That is 0.015 under.
If the drawing for the assembly specifies that the stack of three spacers must be 3.000 +/- 0.008, then individually-in-spec parts can assemble out of tolerance by up to 0.015 - almost twice the assembly spec. Engineering either has to tighten the spacer tolerance, loosen the assembly spec, or accept the statistical reality.
That choice is the subject of tolerance stack-up analysis.
Worst-Case (Arithmetic) Stack
The simplest method. Sum the individual tolerances directly:
Total tolerance (worst-case) = Sum of all individual tolerances
For the three-spacer example: +/- 0.005 + 0.005 + 0.005 = +/- 0.015.
Worst-case analysis assumes every part could be at its worst extreme simultaneously. It is guaranteed safe - if the assembly tolerance is larger than the worst-case stack, no combination of parts in spec can assemble out of tolerance.
Worst-case is also usually overkill for mass production. The probability that every part is at its extreme simultaneously is astronomically small. Worst-case analysis leads to either:
- Assembly tolerances so wide that design intent is compromised.
- Individual part tolerances so tight that cost balloons.
In a one-off, safety-critical, or aerospace context (landing gear, satellite, medical implant), worst-case is the right choice. In mass production, RSS is usually preferred.
Root-Sum-Square (RSS) Stack
The statistical method. Takes advantage of the fact that parts vary randomly, and the probability that every part is at its extreme at the same time is very low.
Total tolerance (RSS) = Square root of the sum of squared individual tolerances
For the three-spacer example:
RSS = sqrt(0.0052 + 0.0052 + 0.0052) = sqrt(0.000025 + 0.000025 + 0.000025) = sqrt(0.000075) = 0.00866.
RSS result: +/- 0.00866, or about half of the worst-case 0.015. Assemblies within +/- 0.00866 of nominal cover the vast majority (three standard deviations, about 99.73 percent) of real production.
RSS relies on three assumptions:
- Each contributor is normally distributed (bell curve, not skewed).
- Each contributor is statistically independent of the others (no correlated variation).
- Each contributor is centered on its nominal (process mean is at the target dimension).
When these assumptions hold, RSS is dramatically more efficient. When they break down, RSS under-predicts the real stack and assemblies fall out of spec at higher rates.
Monte Carlo Simulation
When a stack involves many contributors, geometric (2D or 3D) stacks with angles, or non-normal distributions, closed-form RSS does not capture the reality. Monte Carlo simulation is the tool.
A CAD tolerance-analysis package (CETOL 6sigma, Sigmund, 1DCL, 3DCS, VSA Analyst) does:
- Defines the assembly as a kinematic chain of feature-to-feature relationships.
- Assigns a distribution (typically normal with specified mean and standard deviation) to each contributor.
- Runs 10,000 or 100,000 random samples, building each assembly from random parts per the distributions.
- Reports the distribution of the final critical dimension.
Monte Carlo handles:
- Non-normal distributions (skewed, bimodal, uniform).
- 2D and 3D geometric interactions (angular stacks, position tolerances with bonuses).
- Correlated variation (two features cut in the same setup tend to drift together).
- Asymmetric tolerances.
Engineering runs the Monte Carlo; the operator sees the output in the form of tighter or looser tolerances on the print.
1D vs 2D vs 3D Stacks
- 1D (linear) - the example above. Dimensions along a single axis. Easiest to analyze. RSS applies cleanly.
- 2D (planar) - hole locations in an X-Y plane, bearings that have to line up. Position tolerances project into X and Y contributions. Basic trig.
- 3D (spatial) - bolted assemblies with features on multiple faces, complex mechanisms. Usually requires CAD simulation.
Most shop-floor stack-ups an operator might do mentally are 1D or simple 2D. Anything 3D, hand it to engineering.
Reading a Stack-up Report
A typical engineering stack-up report has columns:
Contributor Nom Tol Sensitivity Contribution (RSS)
----------- --- --- ----------- ----------------
Spacer 1 1.000 +/- 0.005 1.0 0.005
Spacer 2 1.000 +/- 0.005 1.0 0.005
Spacer 3 1.000 +/- 0.005 1.0 0.005
Shaft end play 0.010 +/- 0.003 -1.0 0.003
Housing bore 3.020 +/- 0.002 -1.0 0.002
---
Nominal stack: 3.000 - 0.010 - (half of housing bore)... = 2.xxx
WC total: +/- 0.020
RSS total: +/- 0.00812
Read the columns:
- Nominal - design value.
- Tol - tolerance on each contributor.
- Sensitivity - how much the final dimension changes per unit change in this contributor. +1 means adds one-for-one, -1 means subtracts one-for-one, 0.5 means contributes half.
- Contribution - sensitivity x tolerance. This is what gets RSS-summed.
- WC total - worst case, arithmetic sum.
- RSS total - statistical square-root-sum-of-squares.
The sensitivity column is where operators often learn something surprising: some contributors matter more than others. A dimension with sensitivity 2.0 contributes twice as much as its tolerance implies. A dimension with sensitivity 0.1 is essentially irrelevant.
Sensitivity Analysis - Which Contributor Matters
Given a stack-up, you can rank contributors by how much they drive the total. This is sensitivity analysis. It answers:
- Which tolerances should we tighten to reduce variation the most?
- Which tolerances can we loosen without affecting the assembly?
- Where should we put our inspection resources?
A shop that knows the top two or three contributors to the assembly stack can target its CMM time and SPC monitoring there and save inspection cost everywhere else.
When Process Drift Breaks RSS
RSS assumes the process is centered at nominal. What happens when it is not?
Suppose a part runs with a mean 0.003 above nominal and a tolerance of +/- 0.005. Every part measures in spec (between -0.005 and +0.005 around nominal), so inspection passes. But the distribution is not centered at zero; it is centered at +0.003.
When three such parts stack (all from the same process), the mean of the stack is 3 x 0.003 = +0.009 above nominal, even though each part is within tolerance. The RSS tolerance around that offset mean is still +/- 0.00866, but now the real stack ranges from -0.00866+0.009 = +0.00034 to +0.00866+0.009 = +0.01766 - skewing high.
This is why SPC (statistical process control) tracks both spread and centering. A process with CP = 1.33 but CPK = 0.8 is off-center; RSS assumptions are violated, and the assembly will fail at a higher rate than predicted.
The operator rule: if a control chart shows the mean drifting, halt and recenter, even if every measured part is technically in spec.
Worked Example - Three-Part Stack
Three parts bolted end-to-end:
- Part A: 1.000 +/- 0.005
- Part B: 2.000 +/- 0.010
- Part C: 1.500 +/- 0.005
Nominal total: 1.000 + 2.000 + 1.500 = 4.500.
Worst-case total:
+/- (0.005 + 0.010 + 0.005) = +/- 0.020
Range: 4.480 to 4.520.
RSS total:
sqrt(0.0052 + 0.0102 + 0.0052)
= sqrt(0.000025 + 0.000100 + 0.000025)
= sqrt(0.000150)
= 0.01225
Range (3-sigma, 99.73 percent of parts): 4.48775 to 4.51225.
RSS is about 60 percent of worst-case here. The 2.000 +/- 0.010 contributor dominates (its squared tolerance is 0.0001 vs 0.000025 for each of the others). Engineering looking to tighten the assembly would target Part B's tolerance, not A or C.
When to Halt Production
Three signals that process drift is violating stack-up assumptions:
- Control chart shows mean shift - X-bar chart trending up or down over several subgroups, even if still within control limits. Recenter before the trend crosses the limit.
- CPK drops below 1.33 - tolerance window is still met on individual parts, but the process is eating into its margin. Reinvestigate tooling, fixture, or material lot.
- Field returns or assembly fit complaints - downstream failures not predicted by individual inspection. Revisit the stack-up - some contributor is correlated or off-center.
Halting to recenter costs hours. Shipping out-of-assembly-tolerance product costs days or weeks of field returns and customer trust.
Day 1 Checklist
- For any critical assembly dimension, know whether the design was stack-up analyzed
- Read the stack-up report if engineering publishes one - identify the top contributors
- Maintain X-bar and R charts for high-contribution dimensions
- Halt for mean shift, not only for out-of-tolerance parts
- When in doubt, compute a quick worst-case by hand - it is always an upper bound
- Escalate to engineering when a tolerance allocation feels tight for the process
Expert Tips
- "Worst case is a ceiling, RSS is a likely floor." Real production usually lives between.
- "The dimension with the biggest tolerance dominates the RSS." Squaring punishes the largest contributor. Find it first.
- "CPK tells you the truth that inspection does not." Every part passed, CPK dropping: recenter before the stack-up bites.
- "Never add basic dimensions into a stack." They are exact and carry zero tolerance in their own right; tolerance comes from the feature control frames that reference them.
- "If engineering did not publish a stack-up, ask for one." On a critical assembly, flying blind is how recalls start.