Tolerance stack-up: a worked example using worst-case and RSS.

GD&T / Tolerancing June 14, 2026 10 min read 1,800 words

A tolerance stack-up tells you whether a stack of toleranced parts will still fit together at the extremes of production. This is a full worked example — real dimensions, both the worst-case and RSS methods, and the decision of which tolerance to tighten when the gap fails.

Why a stack-up matters

Every dimension on a drawing carries a tolerance, and tolerances add up across an assembly. A shaft sitting in a housing, a stack of shims, a connector seating in a bore — each interface depends on the sum of several toleranced features. If you only check individual parts, you can have every component in spec and still end up with assemblies that bind or rattle. A stack-up analysis catches that before you cut metal.

The assembly

Take a simple, common case: a spacer and a retaining ring assembled into a housing bore, and we want to know the axial gap that remains. The four contributors:

FeatureNominal (mm)Tolerance (mm)
A — Housing bore depth40.00±0.10
B — Spacer length25.00±0.05
C — Retaining ring thickness2.00±0.03
D — Shoulder height10.00±0.05

The gap G is what is left of the bore depth after the spacer, ring, and shoulder are seated. We want to confirm G never goes negative (parts interfere) and never opens beyond 1.0 mm (the ring loses retention).

Building the loop

Walk the dimension loop in one direction and assign signs. The bore depth opens the gap, so it is positive; the parts that fill the bore close the gap, so they are negative.

Nominal gap = A − B − C − D = 40.00 − 25.00 − 2.00 − 10.00 = 3.00 mm.

So at nominal, the gap is a comfortable 3.00 mm. The question is what the tolerances do to it. Note the rule that catches beginners: regardless of the plus or minus sign you gave each dimension in the loop, the tolerances always add. Variation never cancels.

Method 1: worst-case

Worst-case (also called arithmetic stack) assumes every part is simultaneously at its worst limit. Sum the tolerances:

Total tolerance = 0.10 + 0.05 + 0.03 + 0.05 = ±0.23 mm.

So the gap ranges from 3.00 − 0.23 = 2.77 mm to 3.00 + 0.23 = 3.23 mm. Both ends are comfortably above zero and below 1.0 mm... except the maximum 3.23 mm exceeds our 1.0 mm retention limit badly. In this example the nominal was deliberately oversized to show the point: worst-case says this design does not work, because the gap can open far past the functional maximum.

Worst-case is a guarantee, not a prediction If a worst-case stack passes, the assembly is guaranteed to fit even if every part is at its limit on the same day. That certainty is why aerospace and safety-critical interfaces use it. The cost is that it forces tight component tolerances, which raise piece price.

Method 2: RSS

RSS (Root Sum Square) recognises that all parts being at their extreme at once is statistically rare. Instead of adding tolerances, you take the square root of the sum of their squares:

RSS tolerance = √(0.10² + 0.05² + 0.03² + 0.05²) = √(0.0100 + 0.0025 + 0.0009 + 0.0025) = √0.0159 = ±0.126 mm.

The RSS gap ranges from 2.87 mm to 3.13 mm — noticeably tighter than the worst-case ±0.23 mm. RSS assumes each dimension is centred and normally distributed (roughly ±3 sigma at the tolerance limits). It predicts the spread of real assemblies rather than the impossible all-at-once extreme.

MethodStack toleranceMin gapMax gap
Worst-case±0.23 mm2.77 mm3.23 mm
RSS±0.126 mm2.87 mm3.13 mm
RSS only holds if your processes are actually capable and centred RSS quietly assumes each feature is produced on a centred, capable process (Cpk near or above 1.33). If a process drifts or runs to one side of tolerance, the real stack behaves closer to worst-case. Validate the assumption with capability data before you bank the wider RSS gap.

Which tolerance to tighten

Suppose the gap must be reduced. Do not tighten every tolerance equally — in RSS, the largest tolerance dominates because it is squared. Here, A (the bore depth, ±0.10) contributes 0.0100 of the 0.0159 total, about 63%. Halving A to ±0.05 drops the RSS tolerance to √(0.0025+0.0025+0.0009+0.0025) = √0.0084 = ±0.092 mm — a big gain from one change. Tightening C (±0.03) would barely move the result. Spend your tolerance budget on the biggest contributor.

Rather than do this by hand each time, drop the loop into the tolerance stack-up calculator — it runs both worst-case and RSS, ranks the contributors, and shows the sensitivity of each dimension instantly.

Common stack-up mistakes

  1. Cancelling tolerances by sign. A minus sign on a dimension flips its nominal contribution, never its tolerance. Tolerances always add.
  2. Mixing equal-bilateral and unequal limits. Convert every limit dimension to an equal-bilateral ± form (shift the nominal) before stacking, or the arithmetic drifts.
  3. Using RSS on a low-volume or uncentred process. Without capability data, RSS over-promises. When in doubt, run worst-case.
  4. Forgetting GD&T bonus tolerance. At MMC, position callouts gain bonus tolerance that belongs in the stack — ignoring it makes you tighten parts that did not need it.
  5. Not verifying parts to the loop. A stack-up is only as good as the measured dimensions. Balloon the drawing and capture the real characteristics first.

That last point ties back to inspection: the dimensions feeding your stack-up should come from a controlled, ballooned drawing, not a memory of the print. CadNexa's auto-ballooning tool numbers every characteristic and exports them, so the loop you analyse matches the part you actually measure.

Run your own loop Plug these four dimensions — or your own — into the tolerance stack-up calculator and compare worst-case against RSS in seconds. Pair it with the Cp/Cpk calculator to check the RSS assumption holds.
RR
Rajadurai R
Founder — 14 years plant-head experience