Worst case, RSS or Monte Carlo: what your stack-up deserves
The stack-up that decides everything
A shaft runs in two deep-groove ball bearings with a spacer sleeve between them, and a cover with a shoulder closes the arrangement. What we want to know is the axial clearance, the gap left over once every part is pushed against its neighbour. Nobody machines that dimension. It falls out of five others.
| Link | Dimension | Tolerance | Direction |
|---|---|---|---|
| Housing depth | 160 mm | ± 0.20 mm | plus |
| Bearing A, width | 20 mm | ± 0.10 mm | minus |
| Spacer sleeve | 100 mm | ± 0.10 mm | minus |
| Bearing B, width | 20 mm | ± 0.10 mm | minus |
| Cover shoulder | 19.7 mm | ± 0.05 mm | minus |
Nominal value of the result: 160 − 20 − 100 − 20 − 19.7 = 0.3 mm of axial clearance.
The bearing widths are purchased-part tolerances to DIN 620, and the design cannot change them. The housing depth comes from one setup on a machining centre, the sleeve from a lathe. Five links, three processes, two suppliers. And a result that is smaller than most of the individual tolerances.
Worst case: the answer that is always right
The arithmetic method adds up the magnitudes of all tolerances. No model, no statistics, no assumption about how anything is made.
T_total = |T1| + |T2| + … + |Tn|
= 0.20 + 0.10 + 0.10 + 0.10 + 0.05
= ± 0.55 mm
Axial clearance = 0.3 ± 0.55 mm → −0.25 … +0.85 mm
The lower limit is negative. In the worst combination the parts are longer than the space available, the bearing is preloaded axially and runs hot. Whether that combination is ever built is not what the calculation says. It says the case is permitted by the drawing.
That is exactly the strength of the method. Wherever a collision is expensive, dangerous or only fixable by taking the assembly apart, this is the statement you want. For a safety function, for a batch of five, for a prototype nobody will measure: worst case, no argument.
The weakness shows as soon as the chain grows. With ten links and a required result of ± 0.3 mm, each link gets ± 0.03 mm on paper. That means grinding and an inspection report for every part, because of a combination that in practice never occurs.
RSS: what the square root assumes
The statistical method does not add tolerances, it adds their squares and takes the root at the end.
T_total = √(T1² + T2² + … + Tn²)
= √(0.04 + 0.01 + 0.01 + 0.01 + 0.0025)
= √0.0725
= ± 0.269 mm
Axial clearance = 0.3 ± 0.269 mm → +0.031 … +0.569 mm
A design that failed has become a workable one. Clearance stays positive, the bearings are never preloaded, and nobody has to touch a single tolerance. The difference from worst case is a factor of two, and it grows with the number of links.
You pay for it with four assumptions worth knowing before the number goes on a drawing.
- Every individual tolerance equals ± 3 standard deviations. In other words: the process is set up so that the tolerance is exactly six sigma wide. If the supplier runs at half that spread, the calculation is conservative. If they use the full tolerance and run slightly off centre, it is not.
- The processes are centred. Real ones often are not. A reamed bore drifts one way as the tool wears, and an operator will happily aim at whichever limit still allows rework.
- The distributions are normal. After 100 percent inspection with sorting they are precisely not normal any more, but truncated at both ends.
- The links are independent. Two dimensions from the same setup are not. If the datum shifts, both move together, and the square root credits you with a compensation that does not exist.
If the assumptions hold, about 0.27 percent of assemblies fall outside the calculated range. That is 2700 per million. At an annual volume of 200 units it is zero parts; at 200,000 it is 540 that show up in the field. Same calculation, two completely different consequences.
Monte Carlo: when the assumptions do not hold
The simulation draws each link at random, adds up the chain and repeats that 100,000 times. Instead of a formula you get a histogram of the result, and from it you can read off directly what fraction of assemblies falls outside the specification limits.
The gain is not accuracy. Feed it nothing but centred normal distributions and Monte Carlo returns what RSS returns, only with noise on top. The gain is that every link may have its own distribution.
| Distribution | Fits | Effect on the result |
|---|---|---|
| Normal | settled series production, castings, injection moulding | the reference case, matches RSS |
| Triangular | processes with a clear centre but no proper statistics | slightly wider than normal |
| Trapezoidal 1/3 and 2/3 | production with sorting or rework at the edges | flat centre, hard limits |
| Uniform | unknown bought-in parts, manual assembly, gauge work | markedly wider, conservative |
All four can be chosen per link in the tolerance stack-up calculator, and the sigma assumption is adjustable as well.
Mixed chains are where it gets interesting. A bought-in part with an unknown process gets a uniform distribution, your own turned parts a normal one, the sorted supplier part a trapezoid. That model cannot be done by hand and cannot be done with RSS; for the simulation it is routine.
One word on reading the output: the simulation is not an oracle. It computes the distributions you give it. Tick "normal" for a supplier whose spread you do not know and you get a very convincing histogram of a guess.
Which method when
| Situation | Method |
|---|---|
| Collision, safety function, sealing face | worst case, no compromise |
| One-off, prototype, small batch | worst case, because statistics over ten parts say nothing |
| Series production, known processes, many links | RSS for the design, worst case as a look at the risk |
| Mixed distributions, bought-in parts, sorting | Monte Carlo |
| An argument about scrap rates | Monte Carlo, because only the simulation produces a rate |
In practice you rarely run only one of them. The usual route is worst case first, because it shows which links dominate. If the result is unaffordable, RSS with a conscious decision about the residual risk. And if that decision has to be documented, Monte Carlo, because it ends in a number you can discuss with quality assurance.
The mistakes that hide in real chains
Signs
The most common mistake is not an arithmetic error but a direction error. A link that increases the result counts positive, one that decreases it counts negative. With five links you still catch that by looking. With fifteen you do not, and the nominal value still comes out right whenever two errors cancel.
Tolerances of bought-in parts
Bearing widths, circlip thicknesses, shim washers, radial shaft seals: all of them links with tolerances, none of them on a drawing of yours. Put them into the chain at their nominal size and you are calculating a chain that does not exist. With circlips to DIN 471 the thickness tolerance is often the largest single link in the whole stack.
Angles and lever arms
A squareness tolerance of 0.05 mm over 50 mm acts as 0.2 mm at the end of a 200 mm arm. Links like that belong in the chain with their transmission factor, not with the value from the drawing. The calculator has a factor for each link for exactly this.
Temperature
A chain made of aluminium and steel changes its result with operating temperature, often by more than all the manufacturing tolerances put together. At 60 K of warming and 200 mm of length, the difference in expansion alone is about 0.13 mm. How that is calculated is in the article on thermal expansion in fits.
Form and position
A seating face with 0.1 mm of flatness error does not sit on its dimension, it sits on its highest point. That appears nowhere in the dimension chain, but it does appear in the assembly. With stacked sheet metal and cast seating faces this is regularly the reason why the calculated chain and the measured result refuse to agree.
Frequently asked questions
Is RSS even allowed if only 200 units are built?
Arithmetically yes, practically it gains you little. The statistical statement applies to the population of parts made. At 200 units the odds are good that no assembly sits at the limit, but if one does show up, the rate helps nobody. For small volumes worst case is the more honest basis.
Why does RSS barely help with two links?
Because the square root only pays off with many links of similar size. For two tolerances of 0.1 mm each, worst case gives 0.2 mm and RSS gives 0.141 mm. For ten such links it is 1.0 mm against 0.316 mm. If one large link dominates the chain the advantage disappears as well, because its square governs the sum.
What does the sigma setting per link mean?
It sets how many standard deviations fit into half the tolerance. The default of 3 corresponds to the classic RSS assumption. If you know a supplier only uses half the tolerance band, set 6 and you get a narrower distribution. A value of 2 makes the calculation more conservative instead.
Does thermal expansion always have to go into the chain?
Only when operating and measuring temperature differ, or when different materials are involved. An all-steel assembly at room temperature does not need it. As soon as aluminium, plastic or self-heating enters the picture, expansion belongs in the calculation as a link of its own, not in a footnote.