← Tolerance stack-up calculator

Tolerance analysis

Worst case vs RSS: when each one is wrong

Worst case is safe and frequently unaffordable. RSS is realistic right up until its assumptions quietly stop holding. Here is the comparison with real numbers, and the four conditions that make RSS under-predict your scrap rate.

This argument turns up in almost every design review. One person wants worst case because it cannot fail. Someone else points out that worst case just added three days of grinding to every part. Both are right, and the disagreement usually comes from applying one method everywhere instead of understanding where each one breaks.

The two methods

Worst case

Assume every feature arrives at its worst limit simultaneously, in the direction that hurts most. It is arithmetic, not statistics — you add the tolerances:

Twc = |t1| + |t2| + … + |tn|

Nothing you build can ever fall outside the range this predicts. That absolute guarantee is the entire value of the method, and it is why it remains correct for safety-critical clearances and interference conditions.

RSS

Root-sum-square treats each tolerance as a statistical distribution rather than a fixed limit. Because independent errors partially cancel, you combine them in quadrature:

Trss = √( t1² + t2² + … + tn² )

The result is a spread that a defined fraction of assemblies will fall inside — commonly 99.73 % if you treat each tolerance band as ±3σ.

A worked example

A shaft sitting in a housing, where the gap at the end of the stack is what matters. Four features:

FeatureDirectionNominalTolerance
Housing bore depthopens40.00+0.10 / −0.00
Bearing widthcloses12.00+0.00 / −0.05
Spacer ringcloses15.00±0.05
Shaft shouldercloses12.50±0.08

Nominal gap is 40.00 − 12.00 − 15.00 − 12.50 = 0.500 mm.

MethodResultTotal spread
Worst case0.370 … 0.7800.410
RSS at ±3σ0.465 … 0.6850.219

RSS gives a spread just over half as wide. Note also that the RSS result is centred on 0.575, not on the nominal 0.500 — the asymmetric +0.10/−0.00 on the bore shifts the mean upward by 0.05. Any method that silently treats asymmetric tolerances as symmetric will be wrong before it starts.

If your spec limits were 0.20 … 0.70, worst case fails and RSS passes. That is the exact situation the argument is about, and neither answer is automatically the right one.

Why the gap widens with more features

For a chain of n features with equal tolerances, worst case grows linearly while RSS grows with the square root, so the ratio between them is simply 1 / √n:

FeaturesRSS as % of worst case
271 %
358 %
450 %
641 %
835 %
1229 %

This is the real source of the disagreement. On a two-feature stack the methods are close enough that the argument is not worth having. On a twelve-feature stack, worst case demands more than three times the tolerance budget — and that is where designing to it starts costing serious money for protection against a combination that will not occur in the life of the product.

Where RSS quietly fails

RSS is not an approximation of worst case. It is a different claim, resting on assumptions that are often false on a shop floor. When they break, RSS does not fail loudly — it returns a confident number that is too narrow.

1. Too few features

Cancellation needs something to cancel against. With two or three contributors there is not enough averaging for the statistics to help, and the penalty for being wrong is nearly as large as worst case anyway. Below about four features, use worst case.

2. Correlated processes

RSS assumes independence. Two dimensions machined in the same setup, on the same machine, from the same bar stock, by the same operator are not independent — their errors move together. For two contributors the variance is:

σ²total = σ1² + σ2² + 2ρσ1σ2

RSS assumes the correlation coefficient ρ is zero. At ρ = 1 the tolerances add linearly and you are back at worst case for that pair. Thermal growth across an assembly is the classic case: every dimension drifts the same direction at once, so nothing cancels.

3. Off-centre processes

RSS assumes production sits at the middle of the tolerance band. Suppliers frequently aim off-centre on purpose — machining a bore to the low side leaves material for rework, so a shop that gets paid for scrap will bias toward the safe end.

A mean shift moves the whole distribution toward one limit while the spread stays the same, so the scrap rate is entirely on one side and much higher than RSS suggests. This is exactly the effect the familiar ±1.5σ long-term shift convention exists to account for.

4. One dominant contributor

Because variance goes as the square of the tolerance, a single loose feature can be most of the total. Take a four-feature chain with tolerances of ±0.15, ±0.05, ±0.05, ±0.05:

0.15² = 0.0225 3 × 0.05² = 0.0075 dominant share = 75 %

Tightening all three small tolerances to zero improves the RSS result by about 13 %. Tightening the single large one is the only change that matters. This is why a contributor breakdown is worth more than the headline number: it tells you which tolerance to spend money on and, just as usefully, which four you can leave alone.

5. Non-normal distributions

Treating a tolerance band as ±3σ assumes a normal distribution. Real processes often are not. A perfectly uniform distribution across the same band has a standard deviation of a/√3 rather than a/3 — about 1.7 times larger than the normal assumption implies.

Processes with tool wear tend to drift steadily across the band and look closer to uniform than normal. Anything sorted or 100 % inspected is truncated at the limits, which is a different shape again. In both cases an RSS result calculated at ±3σ is optimistic.

Every one of these five failures pushes the same direction: RSS returns a range that is too narrow, and a scrap prediction that is too low. There is no failure mode where RSS is accidentally conservative.

Choosing in practice

SituationMethod
Safety-critical clearance, or failure means injuryWorst case
Interference that would prevent assembly entirelyWorst case
Fewer than about four contributorsWorst case
Contract or customer standard requires itWorst case
Low volume, where one bad assembly is reworked cheaplyWorst case (it is affordable here)
Six or more independent contributors, high volumeRSS, then verify
Worst case fails but only barelyRSS with the assumptions checked explicitly
Mixed distributions, correlations, or a known mean shiftMonte Carlo

A reasonable working sequence: run worst case first. If it passes, stop — you are done, and you have the strongest possible result. Only if it fails does it become worth reaching for RSS, and at that point you owe the assumptions an honest check rather than an assumption that they hold.

Where Monte Carlo fits

Monte Carlo is not a third opinion to average with the other two. It is what you use when the assumptions behind RSS do not hold and you need a real answer anyway.

Simulating tens of thousands of assemblies lets you mix distributions per feature, apply a mean shift where you know a process runs off-centre, and get a predicted parts-per-million defect rate rather than a pass/fail verdict. It handles the cases where the closed-form methods have nothing to say.

What it does not do is manufacture information. Feed it a normal distribution for every feature and it will reproduce the RSS answer, because you have told it the same assumptions. Its value comes entirely from being able to state assumptions you actually believe.

The short version

Try it on your own stack

Tolerance stack-up calculator

Runs worst case, RSS and a 24 000-build Monte Carlo simulation side by side, with a predicted scrap rate, Cpk, and a ranking of which tolerance is driving the variance. Free, no signup, and nothing leaves your browser.

Open the calculator