Process & DFM
Tolerance Stack-Up Analysis
The short answer
A tolerance stack-up predicts how the tolerances of individual parts accumulate across an assembly. Worst-case analysis adds every tolerance at its extreme and guarantees the assembly fits, but it forces expensive tolerances on every part. Root sum square, or RSS, adds them statistically and yields a much smaller stack, at the cost of accepting a small predicted failure rate.
The worked example
Take a simple stack: four spacers in a bore, each nominally 10.00 mm thick with a tolerance of ±0.10 mm, and a housing depth of 40.00 mm ±0.15 mm. The question is how much clearance you actually get.
Worst case adds the tolerances directly. Four spacers at ±0.10 gives ±0.40 mm, plus the housing at ±0.15, for a total stack of ±0.55 mm. So the clearance ranges from -0.55 mm to +0.55 mm. Negative clearance means interference: on the worst combination, it does not go together.
RSS takes the square root of the sum of the squares: √(0.10² + 0.10² + 0.10² + 0.10² + 0.15²) = √(0.04 + 0.0225) = √0.0625 = 0.25 mm.
The stack drops from ±0.55 to ±0.25, less than half, without changing a single part tolerance.
Method comparison
| Aspect | Worst case | RSS |
|---|---|---|
| Assumption | All parts at their extreme simultaneously | Part dimensions vary normally and independently |
| Result for the example | ±0.55 mm | ±0.25 mm |
| Assembly failure rate | Zero, by construction | Small but non-zero |
| Cost impact | Forces tight tolerances on every part | Allows looser, cheaper tolerances |
| Best for | Safety-critical, few parts, low volume | Many parts, high volume, non-critical fits |
When RSS is valid, and when it is not
RSS relies on assumptions that are sometimes true and sometimes badly wrong.
It assumes the dimensions vary independently. If all four spacers come from the same bar on the same day on the same machine, they are correlated, not independent, and they will all be long or all be short together. RSS underestimates the stack badly in that case.
It assumes the distributions are roughly normal and centered on nominal. A process that is running at the top of its tolerance band, or one that has been sorted, is neither.
It gets more reliable as the number of contributors grows. With four or more independent dimensions it is reasonable. With two, it is close to meaningless.
Use worst case when the assembly is safety-critical, when there are only two or three contributors, when volumes are low enough that a single failure matters, or when the parts are known to be correlated. Use RSS when there are many independent contributors, volumes are high, and an occasional rework is cheaper than tightening every tolerance.
The practical use
The reason to run a stack-up is rarely to prove an assembly works. It is to find out which single tolerance is dominating the stack, so you know where to spend money.
Because RSS squares each contributor, the largest tolerance dominates disproportionately. In the example above, the housing at ±0.15 contributes 0.0225 to the sum while each spacer contributes 0.01. Tightening the housing does far more than tightening all four spacers.
That is the actionable output: not a pass or fail, but a ranked list of where the variation actually comes from.
What tolerances actually cost
Every tolerance you tighten is a decision to spend money. Understanding roughly how much is what turns a stack-up from an academic exercise into a cost tool.
Standard machining tolerance is around ±0.005 inch, or ±0.13 mm, and most shops hold it without special effort. Below that, cost climbs in steps rather than smoothly, because each step forces a different process.
| Tolerance | What it forces | Relative cost |
|---|---|---|
| ±0.010 in (±0.25 mm) | Nothing special | Baseline |
| ±0.005 in (±0.13 mm) | Normal practice for most shops | Baseline |
| ±0.002 in (±0.05 mm) | Careful finishing passes, more inspection | Higher |
| ±0.001 in (±0.025 mm) | Temperature control, slower cuts, more scrap | Substantially higher |
| ±0.0005 in and tighter | Grinding, lapping or a dedicated process | A different price bracket entirely |
The jump that matters most is usually from ±0.002 to ±0.001, because that is where many shops move from milling to a secondary operation.
How to tell a shop which tolerances actually matter
The output of a stack-up is a ranked list of contributors. That list is the most useful thing you can hand a supplier, and almost nobody does.
Tighten only the features that mate with something, and leave the rest to the general tolerance in the title block. A drawing where every dimension carries a tight tolerance tells the shop you have not decided what matters, and they will quote defensively, which means high.
Where you can, move tolerance off the parts and into the assembly. An adjustable mount, a slotted hole, a shim or a compliant gasket can absorb a stack that would otherwise cost you tight tolerances on five parts. That trade is almost always favorable at low volume.
And say which dimensions are critical in words, not just in symbols. A short note explaining that two bores must be concentric because a shaft passes through both will get you better parts than the tolerance alone.
Moving tolerance off the parts and into the assembly
The cheapest way to survive a difficult stack is usually not to tighten the parts. It is to design somewhere for the variation to go.
A slotted hole instead of a round one absorbs positional variation in one axis for free. A shim stack lets you tune a critical gap at assembly rather than buying it in every part. A compliant gasket or an O-ring absorbs a surprising amount of dimensional variation. An adjustable mount converts a tolerance problem into a five-second assembly step. A machined-at-assembly feature, where two parts are pinned together and then bored as one, eliminates the stack between them entirely.
Each of these trades a small amount of assembly labor for a large reduction in part cost, and at low to medium volume that trade is almost always favorable. It becomes less attractive at very high volume, where assembly labor is the thing you are trying to remove.
The reason teams miss this is that a stack-up is usually run by someone looking at a drawing, and the solutions all live at the assembly level. Run the analysis early enough that the assembly design is still open.
How GD&T changes the arithmetic
A stack-up on a GD&T drawing does not work the same way as one on a purely dimensioned drawing, and treating it the same produces answers that are wrong in the conservative direction, which costs money.
Position tolerance is diametral, not linear. A 0.2 mm position tolerance is a cylindrical zone 0.2 mm across, so the contribution in any single axis is 0.1 mm, not 0.2. Teams routinely double their own stack by missing this.
Maximum material condition grants bonus tolerance. If a hole is toleranced at MMC and the actual hole is larger than its minimum size, the difference is added to the available position tolerance. On clearance holes this bonus is often substantial and it is real available clearance you have already paid for.
The datum structure decides which variation stacks at all. Features controlled to the same datum reference frame do not accumulate error relative to each other in the way separately dimensioned features do. That is the entire point of the datum structure, and it is why converting a chain-dimensioned drawing to proper GD&T sometimes solves a stack problem without changing a single tolerance value.