Tolerance Stack-Up Calculator

Tolerance Stack-Up Calculator

Worst-case and RSS assembly tolerance for a chain of up to six contributors, with the mean-shift model that sits between them and the reverse allocation — plus a plain statement of what each answer assumes about your processes, and where Bender’s 1.5 factor makes the statistical answer wider than the worst case.

Tolerance stack-up

Six tolerances → four assembly answers
Enter each contributor as a ± figure in the direction of the stack. A dimension with an asymmetric tolerance has to be re-centred first: shift the nominal to the middle of the band and use half the band here.
How far off centre each process runs, as a fraction of its own tolerance. Zero gives pure RSS and assumes every process is perfectly centred; 100% gives the worst case. Published practice puts real processes at 10 to 30 per cent.
What the assembly is allowed to vary by. Used for the verdict and for the reverse answer — the per-part tolerance that would hit this.
Not a circuit: the assembly's distribution drawn once, in units of its own standard deviation, with the three answers marked on that axis. The bell is the distribution RSS assumes — every contributor normal, centred, independent and capable to ±3σ — and the short line at 3σ is where the RSS answer stops, which is the 99.73 per cent it promises. The tall line is the worst case, and its distance from the bell is the argument in one picture: it is typically six to eight sigma out, so if the assumptions hold it essentially never happens. The two shorter lines are the mean-shift answer and the requirement you entered. Drawing the bell statically and moving the markers is what makes the comparison legible — change the contributors and watch the worst-case line walk out to the right as the chain lengthens.
0.4500±mmExample

Six contributors of ±0.10, 0.05, 0.08, 0.12, 0.04 and 0.06 mm, each process assumed to run 20% off centre, against an assembly requirement of ±0.30 mm

Advertisement

One sum, one square root, and an honest statement of what each assumes

worst case: T = Σ |a_i| · T_i  ·  RSS: T = √(Σ (a_i · T_i)²)  ·  Bender: T = 1.5 · √(Σ (a_i · T_i)²)  ·  mean shift η: T = η · Σ|a_i|T_i + (1 − η) · √(Σ(a_i T_i)²)  ·  equal allocation: T_i = T/n (worst case) or T/√n (RSS)
T_i
each contributor’s ± tolerance, in the direction of the stack and symmetric about its nominal
a_i
the sensitivity of the assembly dimension to that contributor. One for a straight-line stack, which is what this page assumes; not one for an angle, a taper or a lever
η
the fraction of its own tolerance by which each process runs off centre. The shifts add arithmetically because they are not random; only what is left varies. η = 0 gives pure RSS and η = 1 gives the worst case exactly
1.5
Bender’s factor, from the argument that a real process’s stated tolerance corresponds to about ±2σ and not ±3σ, so the RSS figure is too small by 3/2
√n
the ratio between the two answers for n equal contributors. It is why a long chain tempts people into statistics and why a short one does not need to

Worked example

Six contributors of ±0.10, 0.05, 0.08, 0.12, 0.04 and 0.06 mm, each process assumed to run 20% off centre, against an assembly requirement of ±0.30 mm
Worst case is the arithmetic sum: 0.10 + 0.05 + 0.08 + 0.12 + 0.04 + 0.06 = ±0.45 mm. That is a bound rather than a prediction — it is certain, and it requires all six parts to be at the same end of their bands at once
RSS is the square root of the sum of squares: √(0.01 + 0.0025 + 0.0064 + 0.0144 + 0.0016 + 0.0036) = ±0.1962 mm, which is 56% narrower. The ratio is 2.29, and for six EQUAL contributors it would be exactly √6 = 2.449
Notice what the squaring does to the biggest contributor. The 0.12 mm term is 27% of the worst-case sum but 37% of the RSS sum, because it enters squared. In a statistical stack the largest contributor dominates far more than it appears to, which is also the good news: tightening the biggest term is where the return is
Now the part that decides whether RSS is allowed. It assumes each contributor is normally distributed, CENTRED on its own interval, INDEPENDENT of the others, and that its stated tolerance corresponds to ±3σ. Under those four assumptions the answer brackets all but 2700 assemblies in a million. Break the centring and it fails fast: simulating this stack with every process running 20 per cent off centre puts about five per cent of assemblies outside 0.1962 mm, which is twenty times what RSS promises
So use the mean-shift model instead. The shifts are not random, so they add arithmetically; only the variation that is left adds in quadrature. At η = 0.20 that is 0.20 × 0.45 + 0.80 × 0.1962 = ±0.2470 mm. It reduces to RSS at η = 0 and to the worst case at η = 1, exactly, which is the check that it is the right interpolation and not an arbitrary one
Against the ±0.30 mm requirement: the worst case FAILS with a margin of -0.150 mm, the mean-shift answer passes, and RSS passes. So this design is acceptable statistically and not arithmetically, which is precisely the situation where the assumptions have to be defended rather than assumed
The reverse question. To hit ±0.30 mm with six equal contributors: ±0.0500 mm each on the worst case, or ±0.1225 mm each on RSS — 2.45 times more generous. On the mean-shift model at η = 0.20 it is ±0.0949 mm. Those three numbers are three different drawings and three different prices, for the same assembly requirement
Finally, the counter-intuitive one. Bender's inflated RSS here is ±0.2943 mm, comfortably inside the worst case — but with only TWO contributors it would not be. 1.5·√n exceeds n until n = 2.25, so on a two-part stack the statistical method is the CONSERVATIVE one. The table on this page shows the crossover

The four answers for the same six tolerances, and what each one assumes

MethodAssembly tolerance (±mm)Relative to RSSWhat it assumesWhen it is right
Worst case (arithmetic)0.45002.29Nothing. Every contributor is at its own worst limit and they all conspireSafety-critical assemblies, single builds, prototypes, and any stack where a failure cannot be sorted out afterwards
RSS (root sum of squares)0.19621.00Each contributor is normally distributed, centred on its own interval, independent of the others, and its stated tolerance equals ±3σVolume production with measured, centred, capable processes — and only when you can show all four assumptions hold
Bender’s inflated RSS (1.5 × RSS)0.29431.50The same, except that a real process’s stated tolerance corresponds to about ±2σ rather than ±3σA middle course when the processes are not characterised. Note that for one or two contributors it is WIDER than the worst case
Mean-shift model0.24701.26Each process runs off centre by a stated fraction of its tolerance; those shifts add arithmetically and only the remaining variation adds in quadratureThe honest default when you know the processes drift but not by how much. Published practice puts the shift at 10 to 30 per cent
Same six numbers, four answers, a factor of 2.3 between the extremes. The column that matters is the fourth, because the method is not a preference — it is a claim about your processes, and the claim is either true or it is not. RSS is not “the realistic one”: it is the answer that follows IF every contributor is centred, independent, normal and capable to ±3σ, and it promises that only 2700 assemblies in a million fall outside it. Break the centring and that promise fails quickly. Simulating this stack with every process running 20 per cent off centre puts about five per cent of assemblies outside the RSS answer — nearly twenty times what it claims — and at 30 per cent off centre it is eighteen per cent. That simulation is the reason the mean-shift row exists. This is a first-pass calculation on an idealised part — uniform section, static load, no stress raisers beyond those stated, and room-temperature material properties. Real parts have fillets, keyways, surface finish and duty cycles that a closed-form answer cannot see.

n contributors of ±0.1 mm each — where the methods cross and where they diverge

nWorst case (±mm)RSS (±mm)Bender 1.5 × RSS (±mm)Worst ÷ RSSIs Bender wider than the worst case?
10.1000.1000.1501.000yes
20.2000.1410.2121.414yes
30.3000.1730.2601.732no
40.4000.2000.3002.000no
60.6000.2450.3672.449no
80.8000.2830.4242.828no
121.2000.3460.5203.464no
202.0000.4470.6714.472no
The ratio in the fifth column is exactly √n for equal contributors, which is the cleanest way to remember the whole subject: the arithmetic stack grows with n and the statistical one with the square root of n, so the temptation to go statistical grows with the length of the chain. The last column is the part that is almost never printed. Bender’s factor of 1.5 makes the statistical answer WIDER than the worst case whenever 1.5·√n ≥ n, which is n ≤ 2.25 — so on a one- or two-part stack the “statistical” method is the conservative one and the arithmetic method is the optimistic one. Anyone who has been told that RSS is always the looser answer has been told something that is false for exactly the stacks that are easiest to check.

What a stack-up cannot do, and what to do instead

The caseWhy the arithmetic here does not cover itWhat to do
A clearance that can only go one wayA hole-to-pin clearance is not a ± contributor. Its nominal is zero and it can only open, so its distribution is one-sided and its mean is not its nominal. Putting half the clearance in as a ± tolerance is wrong in both directions: it lets the stack close up by an amount that cannot happen, and it understates the openingSplit it. Move the mean of the clearance into the nominal dimension of the stack, and enter only the VARIATION about that mean as the contributor. For a pin in a hole with a clearance range of 0 to 0.1 mm, add 0.05 to the nominal and enter ±0.05 here
A fixed offset or a biasA constant is not a tolerance. It shifts the assembly’s nominal and contributes nothing to its variation, and entering it here would inflate every one of the four answersPut it in the nominal. The stack-up computes the VARIATION; the nominal dimension chain is a separate and simpler sum that this page does not attempt
An asymmetric tolerance, such as +0.2 / −0.05Every method here assumes the contributor is symmetric about its nominal. An asymmetric one has a mean that is not its nominal, which breaks both the arithmetic and the statistical answerRe-centre it first. Shift the nominal by half the difference (here +0.075) and enter half the total band (±0.125). Then the nominal chain and the variation chain are both right
Contributors that are not independentTwo features machined in one setup, or two dimensions taken from the same datum, share their error. RSS assumes independence and is simply wrong when they are correlated — and it errs unconservatively, because correlated errors add arithmeticallyTreat a correlated group as ONE contributor with the arithmetically summed tolerance, then RSS the groups. Or drop to the worst case for that part of the chain
A stack that is not a straight lineEverything here has a sensitivity of one: a millimetre of contributor gives a millimetre of assembly. An angled joint, a taper, a lever or a cam does notMultiply each contributor by its own sensitivity — the partial derivative of the assembly dimension with respect to it — before entering it. That is what the a_i coefficients in the published formulation are for, and this page assumes they are all one
Deciding whether the process is capable at allA stack-up takes the tolerances as given. Whether a process can hold them is a different question with a different answerThe IT grade tolerance calculator says which process holds which grade. The go / no-go gauge tolerance calculator says how much of the band the inspection itself takes
The first three rows are the ones this page refuses to guess at, and the refusal is deliberate: each of them needs a decision about the NOMINAL chain that only the person who drew the assembly can make, and making it silently would give a confident wrong answer. The fourth is the one that catches experienced people, because correlation is invisible on a drawing and obvious on a shop floor. This is a first-pass calculation on an idealised part — uniform section, static load, no stress raisers beyond those stated, and room-temperature material properties. Real parts have fillets, keyways, surface finish and duty cycles that a closed-form answer cannot see.

Certain against probable, and what the probable answer assumes

Two answers, and the gap between them widens with every part you add. The worst case is the arithmetic sum of the contributors: it is certain, it holds for every assembly ever built, and it requires every part to be at the same end of its band at the same time. The statistical answer is the root of the sum of squares, and for n equal contributors it is exactly √n times smaller — so two parts differ by 1.41, six by 2.45 and twenty by 4.47. The temptation to go statistical therefore grows with the length of the chain, which is precisely when the assumptions underneath it are hardest to defend.

What RSS actually assumes, stated plainly. Four things: that each contributor is normally distributed; that it is CENTRED on its own interval; that it is INDEPENDENT of every other; and that its stated tolerance corresponds to a ±3σ spread. Under all four, the RSS answer brackets all but 2700 assemblies in a million. Break the centring and it fails quickly: simulate the six default contributors on this page with every process running 20 per cent off centre and about five per cent of assemblies fall outside the RSS answer — nearly twenty times what it claims — and at 30 per cent off centre about eighteen per cent do. Break the independence and it fails in the unsafe direction too, because correlated errors add arithmetically: two features machined in one setup are one contributor, not two.

So the page carries a third answer, which is the honest default. A mean shift is not random, so it cannot be added in quadrature. Published practice is to add the shifts arithmetically and the remaining variation in quadrature, which for a common shift fraction η gives η·Σ T_i + (1−η)·√(Σ T_i²). It reduces exactly to RSS at η = 0 and exactly to the worst case at η = 1, which is the check that it is the right interpolation rather than an arbitrary blend, and published practice puts real processes at 10 to 30 per cent. Bender’s older fix — multiply RSS by 1.5, on the argument that a stated tolerance is really about ±2σ — is also here, and it has a property nobody prints: 1.5·√n exceeds n until n = 2.25, so on a one- or two-part stack Bender’s statistical answer is WIDER than the worst case.

The reverse is the question designers actually have. Given an assembly tolerance you must hit, what may each part have? Shared equally, it is T/n on the worst case and T/√n on RSS — a factor of √n more generous, which on a six-part chain is two and a half times the tolerance per part and a completely different drawing. Weighting by cost or difficulty works the same way: allocate in proportion to the weights and scale so the total comes out right, which this page does for the equal case and which is a two-line calculation for any other. What matters is that the three numbers are three different prices for the same requirement, and the choice between them is a claim about your processes rather than a preference.

What a stack-up cannot do. A clearance that can only open, a fixed offset and an asymmetric tolerance all break the symmetry every method here assumes, and this page refuses to guess: each needs a decision about the NOMINAL chain that only the person who drew the assembly can make. The table on this page says exactly how to re-centre each one. A stack that is not a straight line needs a sensitivity coefficient on every contributor, and this page assumes they are all unity. And a stack-up takes the tolerances as given: whether a process can hold them is the IT grade tolerance calculator‘s question, and how much of each band the inspection itself consumes is the go / no-go gauge tolerance calculator‘s.

Advertisement

Frequently asked questions

Should I use worst case or RSS?

It is not a preference, it is a claim about your processes. Use the worst case when a failure cannot be sorted out afterwards, when the volume is low, when you have no capability data, or when the parts come from a supplier you cannot measure. Use RSS only when you can show that every contributor is centred, independent, normally distributed and capable to ±3σ — and remember that it makes a claim about a POPULATION and says nothing about any individual assembly. If you are somewhere in between, which is usual, the mean-shift model with η between 0.1 and 0.3 is the defensible answer.

Why is RSS smaller than the worst case?

Because it counts the chance that errors cancel. For n equal contributors the ratio is exactly √n: six contributors of ±0.1 mm give ±0.6 worst case and ±0.245 RSS. The worst case requires all six parts to be at the same end of their bands simultaneously, which for independent processes is extremely unlikely — but “unlikely” is not “impossible”, and the worst case is the only answer that is certain rather than probable.

What happens if my process is not centred?

RSS under-predicts, and not by a little. A mean shift is not random, so it does not benefit from cancellation at all — the shifts add arithmetically. Simulating the six default contributors on this page with every process 20 per cent off centre puts about five per cent of assemblies outside the RSS answer against the 0.27 per cent it promises, and 30 per cent off centre puts eighteen per cent outside. The mean-shift figure on this page handles it properly: it adds the shifts arithmetically and only the residual variation in quadrature.

How do I handle a clearance that can only go one way?

Split it into a nominal and a variation, and this page will not do that for you on purpose. A pin in a hole with a clearance range of 0 to 0.1 mm has a mean clearance of 0.05 and a variation of ±0.05. Add the 0.05 to the assembly’s NOMINAL dimension chain and enter ±0.05 as the contributor here. Entering ±0.05 alone loses the offset; entering ±0.1 pretends the stack can close by 0.1 mm, which it cannot. The same treatment fixes an asymmetric tolerance and a fixed bias.

Can Bender’s 1.5 factor ever be more conservative than the worst case?

Yes, and this is worth knowing because it is almost never mentioned. Bender’s answer is 1.5·√n times a single tolerance and the worst case is n times it, so Bender’s is larger whenever 1.5·√n ≥ n — that is, for n up to 2.25. On a one- or two-contributor stack the “statistical” method gives the WIDER answer. If 1.5 × RSS is a house rule where you work, it stops making sense below three contributors.

How do I allocate a given assembly tolerance to the parts?

Equally, it is T/n on the worst case and T/√n on RSS, and this page gives both plus the mean-shift figure between them. Weighted, allocate in proportion to whatever weight expresses cost or difficulty and scale so the total comes out right: for the worst case divide by the sum of the weights, for RSS by the root of the sum of their squares. In practice the most useful weighting is the inverse of how hard each feature is, so the expensive one gets the slack — and in an RSS stack it is worth remembering that the largest contributor counts squared, so it is the one worth buying down.

Does the number of contributors change which method I should use?

It changes how much is at stake, not what is true. At two contributors the two answers differ by 41 per cent and the worst case is cheap to accept; at twelve they differ by a factor of 3.5 and the worst case may be unbuildable. So long chains push you towards statistics, and long chains are also where correlation between contributors is most likely and hardest to spot. The best move on a long chain is usually not a better statistical model — it is to shorten the chain by re-datuming, or to put an adjustment in it.

Related calculators

References

  1. F. Scholz. Tolerance Stack Analysis Methods. Boeing Information & Support Services, Research and Technology, December 1995. The source for everything statistical on this page and the reason the page is honest rather than optimistic. Its equation (2) is the arithmetic stack, (3) the root-sum-square stack, (4) Bender’s inflated RSS and (8)–(9) the mean-shift model this page uses for an off-centre process. It states the four assumptions RSS rests on explicitly — that each contributor is normal, centred on its own interval, independent of the others, and that its stated tolerance corresponds to a ±3σ spread — and it states what the worst case really is: a devil’s-advocate bound that is certain rather than probable, and “a rather unlikely proposition”.
  2. A. Bender, “Benderizing tolerances — a simple practical probability method of handling tolerances for limit stack ups”, Graphic Science, 1962, as reported and used in Scholz’s report above. The origin of the 1.5 inflation factor on RSS: Bender’s reasoning is that a real process’s stated tolerance corresponds to about ±2σ rather than ±3σ, so the RSS figure is too small by 3/2. The consequence nobody prints is that for one or two contributors 1.5·√n exceeds n, so Bender’s “statistical” answer is WIDER than the worst case; the crossover is at n = 2.25.
  3. ASME Y14.5-2018, Dimensioning and Tolerancing. Cited by number and clause; copyrighted and not reproduced. What this page takes from it is geometry, not tables: that a position tolerance is a cylindrical zone specified by its DIAMETER, that the bonus tolerance is the departure of the actual mating envelope from the material condition invoked, that the virtual condition is the constant boundary a functional gauge is made to, and Rule #1 — the envelope requirement — which makes the size limits of a feature control its form by default.
  4. ISO 2768-1:1989, General tolerances — Part 1: Tolerances for linear and angular dimensions without individual tolerance indications. Cited by number. Status checked during this batch on ISO’s own catalogue entry: still PUBLISHED, confirmed, and flagged for revision. It is Part 2 that has gone.