← Back to the Library
Quick Reference · Calculators

Tolerance Stack-Up Calculator —
Worst-Case and Statistical (RSS) Analysis of a Dimension Chain

By C&W Engineering Team
Enter the dimensions in a chain, each with its tolerance and direction, and get the resulting gap or overall size three ways: nominal, worst-case, and statistical (root sum square). The calculator handles unequal plus and minus tolerances, shows which dimension drives the result, and checks the answer against a target range if you give it one. Inch or millimetre, up to twelve dimensions.[1][2]
Stack-up calculator
Direction is the sign of each dimension along the chain: "+" adds to the resultant, "−" subtracts. Enter tolerances as positive numbers; a plus of 0.005 and a minus of 0.002 means +0.005 / −0.002. Leave the target blank if you only want the numbers.
#DimensionDir.Nominal+ tol− tol

What a Tolerance Stack-Up Is

Every assembly has dimensions that nobody draws directly: the gap between a shaft shoulder and a housing face, the overall length of three parts bolted together, the clearance left for a snap ring. Each of those is the result of several toleranced dimensions added and subtracted along a chain, and its variation is the accumulated variation of everything in the chain. A stack-up is the arithmetic that predicts that result before parts are made, so the drawing tolerances can be set to guarantee the assembly works.[1]

The chain is written as a loop: start at one face of the gap, walk through the parts to the other face, and record every dimension crossed with a sign. Dimensions that walk toward the far side of the gap are positive; those that walk back are negative. The resultant is the signed sum of the nominals, and the two analysis methods differ only in how they add the tolerances.

Worst-Case vs Statistical (RSS)

Worst-caseStatistical (RSS)
Tolerance of the resultSum of every tolerance: T = Σ tiRoot of the sum of squares: T = √(Σ ti²)
AssumesEvery part is at its limit in the worst direction at the same timeEach dimension varies independently and is normally distributed, centred, with the tolerance at ±3σ
ResultGuaranteed: 100% of assemblies fit if parts are in toleranceAbout 99.73% of assemblies fit (3σ); a few in a thousand can stack outside
Use it forSafety-critical fits, low volumes, hand-fitted assemblies, anything where one interference is unacceptableHigh-volume production from capable, independent processes where a tiny reject rate is cheaper than tighter tolerances
Effect on drawing tolerancesTighter, more expensive partsLooser part tolerances for the same assembly tolerance, by a factor of about √n for n equal contributors

The RSS gain is real but conditional. It only holds when the dimensions come from different, independent processes; two features cut in the same setup with the same tool move together and should be treated as one contributor. It also assumes centred distributions, which a shop running to the top of the tolerance to protect a fit will violate. When in doubt, quote the worst-case number and use RSS as the argument for relaxing a tolerance that worst-case says is too tight.[2]

Unequal Plus and Minus Tolerances

A dimension toleranced +0.005 / −0.001 is really a dimension whose mean sits 0.002 above the nominal with an equal-bilateral tolerance of ±0.003. The calculator converts every entry that way before adding: the resultant nominal uses the drawn nominals, the worst-case limits use the actual upper and lower limits in each direction, and the RSS band is centred on the mean-shifted resultant with half-ranges of (plus + minus) / 2. That is why an unequal tolerance can move the RSS band without changing the nominal.

Worked Example: Shaft End Play

A shaft assembly has to leave end play between a shoulder and a housing face. Walking the loop from the housing face: the housing bore depth is 2.000 ±0.005 (positive), then back through two washers at 0.062 ±0.003 each (negative) and the shaft shoulder length of 1.850 ±0.004 (negative).

DimensionDirectionNominal (in)Tolerance (in)
Housing bore depth+2.000±0.005
Washer 10.062±0.003
Washer 20.062±0.003
Shaft shoulder1.850±0.004
End play (resultant)0.026Worst-case ±0.015 (0.011 to 0.041) · RSS ±0.0077 (0.018 to 0.034)

If the design needs at least 0.015 of end play, worst-case says it can fail (minimum 0.011) while RSS says it passes with margin (minimum 0.018). That disagreement is the whole conversation: either tighten the housing depth, which is the largest contributor at a third of the worst-case tolerance, accept a statistical risk of a few assemblies in a thousand, or add a selective-fit washer. The calculator's contribution bars show which dimension to attack first.

Stack-Ups and GD&T

This calculator handles one-dimensional chains of plus/minus dimensions, which covers most shaft, spacer, and housing problems. Position tolerances, datum shift, and features at MMC add bonus tolerance and geometric contributions that need a proper GD&T stack per ASME Y14.5, where each geometric tolerance enters the chain as a ± half-value at the feature's location. The arithmetic is the same; the bookkeeping of what enters the loop is what changes.[3]

In plain terms
Worst-case is the promise; RSS is the bet. A shop can only hold the tolerances on the drawing, so the drawing has to be built from a stack-up that already decided which one you are making.

Tolerances that were checked before the PO

C&W reviews stack-critical dimensions at quote time and will tell you when a tolerance is tighter than the assembly needs, or looser than it can afford.

Request a Quote
Sources & References
[1]Bryan R. Fischer, Mechanical Tolerance Stackup and Analysis, 2nd ed. (CRC Press): loop construction, worst-case and statistical methods, unequal-bilateral conversion.
[2]Machinery's Handbook, 31st ed., "Tolerance Accumulation" and statistical tolerancing notes; the RSS method assumes independent, normally distributed contributors with tolerances at ±3σ, giving about 99.73% conformance.
[3]ASME Y14.5-2018, Dimensioning and Tolerancing: geometric tolerances, material condition modifiers, and bonus tolerance that enter a GD&T stack.