Tools › Mechanical Design › Tolerances › Tolerance Stack-Up › Method
Tolerance Stack-Up: Method
Open the Tolerance Stack-Up tool
Worst Case, RSS, Mean Shift and Monte Carlo
The dimension chain
A tolerance stack-up asks how much an assembly dimension, the gap, can vary when every part dimension in the loop that defines it varies within its tolerance. The loop is written as a chain of n dimensions Xi, each with a sign ai = +1 when a larger value opens the gap and −1 when it closes it, so that the gap is A = Σ ai Xi. Only one-dimensional (collinear) chains are treated here; a two- or three-dimensional loop is first reduced to one by projecting each dimension on the gap direction, which replaces ai by a sensitivity coefficient. The loop diagram on the page draws every dimension from the end of the previous one and the gap as the bar that closes the loop back to the start.
Equal-bilateral form
A dimension written as nominal +t+−t− is carried as a mean ν = nominal + (t+ − t−)/2 with the equal-bilateral tolerance T = (t+ + t−)/2 (Fischer 2011). A unilateral tolerance 1.000 +0.010/−0 therefore becomes 1.005 ± 0.005. The analysis is about the means and the half-widths; the nominal gap is still printed because drawings and inspection refer to it, and the two differ whenever a tolerance is asymmetric.
Worst case
The arithmetic or worst-case stack takes every dimension at the extreme that moves the gap the same way: A lies within νA ± Σ Ti. It needs no assumption about how the parts are made, guarantees that any set of in-tolerance parts assembles, and is the right model for short chains, safety-critical fits, and parts whose processes are not under statistical control or come from unknown suppliers. Its cost is that the band grows linearly with n and the part tolerances needed to meet a gap requirement become very tight for long chains.
Statistical (RSS) stack
If the dimensions vary independently about their means with standard deviations σi, the gap has mean νA = Σ ai νi and variance σA² = Σ ai² σi², and by the central limit theorem is close to normal even when the parts are not. With the usual convention that a tolerance is the ±3σ spread of a centred normal process, σi = Ti/3 and the ±3σ band of the gap is νA ± √Σ Ti², the root-sum-square of the tolerances; it holds 99.73 % of assemblies. The band grows with √n instead of n: for n equal tolerances t the worst case is n t and the RSS is t √n. The tool generalises the convention two ways (Scholz 1995, Section 4):
- Process sigma ratio k. The tolerance equals k σ of the process: k = 3 is the ±3σ convention (Cp = 1), k = 4 a process at Cp = 1.33, k = 6 a six-sigma process. σi = Ti/k.
- Distribution. A dimension whose values are spread evenly over the tolerance (a worn setting, a sorted lot) is uniform; one that piles up at the middle but with definite limits is triangular. Scholz's Table 1 gives the factor c = 3σ/T of a distribution spanning ± T: normal 1, triangular 1.225, elliptical 1.5, uniform 1.732. The tool uses σi = c Ti/k, so a uniform dimension with k = 3 has σ = T/√3 (variance T²/3) and a triangular one T/√6 (variance T²/6); with another k the distribution spans ± 3T/k.
The page prints both the 3σ band of the gap and the tolerance-equivalent √Σ Ti²; they coincide when every dimension is normal with k = 3 and differ otherwise. The ratio of the RSS to the worst-case half-band shows how much the statistical assumption buys.
Modified RSS
The RSS result is only as good as its assumptions: processes centred on the nominal, independent, and with tolerances that really are ±3σ. Bender (1962) observed that production people, asked what tolerance they can hold, quote about two thirds of their true ±3σ spread, and proposed multiplying the RSS half-band by 1.5. Other factors in the literature compensate for non-normal part distributions (Gilson 1.6; the uniform 1.732 and elliptical 1.5 of Scholz's Table 1). The tool applies the factor Cf entered on the form to √Σ Ti²; the modified band always lies between the RSS and the worst case for Cf between 1 and √n.
Mean shift
Processes drift. The mean-shift model (Mansoor 1963; Greenwood and Chase 1987; Scholz 1995 Section 5.1) lets the mean of each dimension sit anywhere within ± η Ti of its nominal, where η is the shift fraction (0.2 in Scholz's examples; 0.5 corresponds to the 1.5σ shift of the six-sigma convention when k = 3). Since the shifts of different parts may all happen to work the same way, they are stacked arithmetically: the mean of the gap may move by Σ η Ti either way. The variation left inside each tolerance, (1 − η) Ti, stacks statistically, so the half-band is T* = Σ η Ti + √Σ (1 − η)² Ti² (Scholz eq. 11 with c = 1) and the remaining standard deviation is (1 − η) σA (eq. 7, the Cpk = 1 interpretation: a shifted process must still keep its ±3σ inside the tolerance). With η = 0 the model is the RSS stack, with η = 1 the worst case. The capability indices are then computed with the gap mean moved to each worst side, and the larger fraction out of limits is reported. Scholz also derives a statistical stacking of the mean shifts themselves (Section 6), appropriate when the shifts of many parts are themselves random; it is not implemented, since the arithmetic form is the conservative one normally used in design.
Capability of the gap
Against a specification Gmin to Gmax the gap's normal model gives the familiar indices (Montgomery 2013, Chapter 8): Cp = (Gmax − Gmin)/(6σA), the room a centred gap would have; CPU and CPL for each limit; Cpk = min(CPU, CPL), the actual room. The expected fraction of assemblies outside the limits is Φ((Gmin − νA)/σA) + 1 − Φ((Gmax − νA)/σA), reported in parts per million beside the yield. Cpk = 1.00 puts the nearer limit 3σ from the mean (1,350 ppm on that side), 1.33 puts it 4σ away (32 ppm), 1.50 4.5σ (3.4 ppm). Each method's band is also marked as passing or failing the specification: the worst-case band passing means the requirement is met with no statistical assumption; only the RSS band passing means it is met provided the processes are centred and in control, which is what the mean-shift option and the Monte Carlo are there to question.
Contributions
Two shares are tabulated for each dimension: its share of the worst-case sum, Ti/Σ Ti, and its share of the RSS variance, ai² σi²/σA². The variance share is the one that guides tolerance allocation: because the variances add, the dimension with the largest tolerance dominates (a tolerance twice the others contributes four times their variance) and tightening it is far more effective than tightening a small one. Loosening the small tolerances costs almost nothing in the RSS band, which is the economic argument for statistical tolerancing.
Monte Carlo
The simulation draws every dimension from its own distribution about its mean (normal with σi by the Box–Muller transform; uniform over ± 3T/k; symmetric triangular over ± 3T/k as the sum of two uniforms), sums the gap with its signs, and repeats for the entered number of assemblies from the entered seed, so a run can be reproduced exactly. It reports the sample mean and standard deviation, the 0.135 and 99.865 % percentiles (the 3σ points of a normal), the 2.5 and 97.5 % percentiles, the extremes, the number of assemblies outside the limits and the observed yield, and draws the histogram with the RSS normal curve, the limits and the worst-case extremes. For a long chain of normal dimensions it reproduces the RSS numbers to the sampling error; with uniform or triangular dimensions, asymmetric tolerances or a chain of two or three parts the simulated percentiles are the better estimate of the band, because the gap is then not normal. With 20,000 assemblies the standard deviation is known to about 0.5 % and the 0.135 % percentile to a few per cent of σ; the ppm figure from the simulation is coarse (one assembly in 20,000 is 50 ppm) and the normal-model ppm is the one to quote when the dimensions are normal.
Worked example on the page
The default chain is a shaft retained in a housing: housing length 3.000 ± 0.010 (+), bearing A 0.500 ± 0.004 (−), spacer 1.250 ± 0.005 (−), gear hub 0.750 ± 0.004 (−), bearing B 0.480 ± 0.004 (−), all normal with k = 3, in inches, and a gap requirement of 0.002 to 0.040 in. The nominal gap is 0.020 in; the worst-case band is ± 0.027 in (−0.007 to 0.047 in), which fails on both sides; the RSS band is ± √(0.010² + 0.004² + 0.005² + 0.004² + 0.004²) = ± 0.01315 in (0.00685 to 0.03315 in), which passes with Cp = 1.445, Cpk = 1.369 and 23 ppm expected out of limits; Bender's factor 1.5 widens the band to ± 0.01973 in (0.00027 to 0.03973 in), which crosses the 0.002 in lower limit, so the requirement rests on the processes being centred; the mean-shift model with η = 0.2 gives ± 0.01592 in (0.00408 to 0.03592 in) and passes; the housing carries 37 % of the worst-case sum but 58 % of the variance. The test script checks the library against these closed forms, the factors of Scholz's Table 1, the Bender factor, Scholz's mean-shift equation, the standard normal table and an independent numpy Monte Carlo of the chain (two million assemblies: mean 0.019998, standard deviation 0.004381, 0.135 % percentile 0.006809, 99.865 % percentile 0.033098 in).
Limits of the tool
- One-dimensional chains with unit sensitivities; angular contributors, form and position tolerances and two- or three-dimensional loops must be projected onto the gap direction by hand.
- Independent dimensions; two dimensions cut in one setting, or a dimension that appears twice in the loop, are correlated and should be entered as one dimension with the combined tolerance.
- The RSS indices assume a normal gap; for a chain of one or two non-normal dimensions use the Monte Carlo percentiles.
- Mean shifts are stacked arithmetically (the conservative design form); the statistical stacking of mean shifts and the risk formulas of Scholz Sections 5.2 and 6 are not implemented.
- No tolerance allocation: the contribution table shows where to tighten, but the tool does not redistribute the tolerances to meet the specification at least cost.