Tolerance Stack-Up Calculator

Build a 1D dimension chain, get the resulting gap by worst case, RSS, MRSS and Monte Carlo simulation, see which tolerance drives the result, and print a calculation report.

Add every dimension between the two faces you care about. Give it a direction+ if it opens the gap (a housing length, a bore depth), if it closes it (a part being installed, a shoulder, a spacer) — and its deviations exactly as drawn, or type an ISO 286 code like H7 or g6 and let the calculator fill them in from the same ISO 286 tables used by the tolerance & fit calculator.

All four methods run on the same chain at once. Set a minimum and/or maximum required gap to get a pass/fail verdict per method, plus Cp/Cpk and out-of-spec rate — predicted analytically by RSS and observed by the Monte Carlo simulation. Turn on process settings to give each row its own distribution, Cp and mean shift.

Dimension chain

Deviations in mm, as drawn (e.g. +0.021 / 0). Type an ISO 286 code to auto-fill them for the row's nominal size; clear it to edit deviations by hand.

# Dimension Dir. Nominal (mm) ISO 286 Upper dev. (mm) Lower dev. (mm) Distribution Cp Mean shift (mm) Actions
Examples:

Requirement & settings

Monte Carlo samples
Report details (printed on the PDF)
Results
Nominal gap0.200 mm
Mean gap0.343 mm
Mean shift+0.143 mmfrom asymmetric deviations

Worst case

Clearance

Every dimension at its drawn limit, same time. Nothing can fall outside this band.

Min gap0.150 mm
Max gap0.536 mm
Band (±)±0.193 mm
Violates requirement
Margin to min+0.100 mm
Margin to max−0.036 mm

RSS (statistical)

Clearance

Root sum square of each row’s σ (from its distribution and Cp; default normal, ±tol = ±3σ). Band = ±3σ of the gap.

Min gap0.242 mm
Max gap0.444 mm
Band (±)±0.101 mm
σ of gap0.034 mm
Cp / Cpk2.22 / 1.55
Out of spec1.6 ppm
Yield99.9998%
Meets requirement
Margin to min+0.192 mm
Margin to max+0.056 mm

MRSS (Bender)

Clearance

RSS × 1.5. Empirical correction for real processes that drift off centre.

Min gap0.191 mm
Max gap0.495 mm
Band (±)±0.152 mm
Meets requirement
Margin to min+0.141 mm
Margin to max+0.005 mm

Monte Carlo

Clearance

20,000 simulated assemblies, each row sampled from its own distribution. Fixed seed, so the numbers are repeatable.

Min gap0.242 mm
Max gap0.444 mm
99.73% band±0.101 mm
Observed range0.224 … 0.471 mm
σ of gap0.033 mm
Cp / Cpk2.25 / 1.57
Out of spec (observed)< 0.01 ppm
Yield100.0000%
Meets requirement
Margin to min+0.192 mm
Margin to max+0.056 mm

Distribution of the gap (Monte Carlo)

Bars: simulated assemblies. Dark line: the normal curve RSS assumes, at the same mean and σ. Red dashed: your requirement. If the bars are wider, skewed or shifted relative to the line, RSS is underestimating the risk.

0.10.20.30.40.5050010001500min 0.050max 0.500Gap (mm)AssembliesMonte CarloRSS normalRequirement

Which tolerance drives the result?

Worst-case share is each half tolerance over the sum; RSS share is each squared half tolerance over the sum of squares — the share of the gap's variance. Tightening the top RSS contributor is where a tolerance change pays off most.

Largest contributor: Bearing A width — 35.2% of the gap variance, 31.1% of the worst-case band.

# Dimension Dir. Nominal (mm) Deviations (mm) ± tol (mm) σ (mm) Process Worst-case share Variance share
1 Bearing A width 15.000 0.000 / −0.120 ±0.060 0.0200 Normal
31.1%
35.2%
2 Bearing B width 15.000 0.000 / −0.120 ±0.060 0.0200 Normal
31.1%
35.2%
3 Spacer sleeve 29.800 +0.050 / −0.050 ±0.050 0.0167 Normal
25.9%
24.4%
4 Housing bore length + 60.000 +0.046 / 0.000 ±0.023 0.0077 Normal
11.9%
5.2%

How the four methods work

Every row is first reduced to its mean (nominal + (upper + lower)/2) and its half tolerance ((upper − lower)/2). The gap's mean is the signed sum of the row means — that is why a unilateral tolerance shifts the expected gap away from the nominal. Each row's σ follows from its distribution: T/(3·Cp) for normal, T/√3 for uniform, T/√6 for triangular. The methods differ in how the rows combine:

Worst case

Tgap = Σ Ti

Arithmetic sum. Every part at its limit in the unfavourable direction, all at once. Guaranteed, but pessimistic — on a chain of four or more features it is often twice the realistic spread.

RSS

σgap = √(Σ σi²), Tgap = 3σgap

Root sum square of independent rows. With the defaults (normal, Cp = 1) this is the textbook √ΣTi². The band is centred on the process mean gap, so per-row mean shifts move it. Cp/Cpk and ppm come from σgap.

MRSS

Tgap = Cf · 3σgap

Modified RSS. Bender's correction factor Cf = 1.5 (1.4–1.8 in the literature) accounts for processes that drift and are not perfectly normal. Never larger than worst case.

Monte Carlo

gapk = Σ diri · xi,k, k = 1…N

Each row is sampled N times from its own distribution (Box–Muller for normal, sum of two uniforms for triangular) and the gap is rebuilt each time. Reported band = the 0.135–99.865 percentiles, the empirical equivalent of ±3σ, so pass/fail means the same as for RSS.

Not modelled: angled contributors, bonus tolerance at MMC, datum shift, and correlated dimensions (parts machined in one setup).

Glossary

Gap
The resulting distance between the two faces the chain connects. Positive = clearance, negative = interference, by convention of this calculator.
Direction (+ / −)
Sign of a dimension in the vector loop. + opens the gap, − closes it. Walking the loop from one face to the other, dimensions traversed "forward" are +, those traversed "backward" are −.
Mean shift
Difference between the mean gap and the nominal gap, caused by asymmetric or unilateral deviations. A stack of ±T values around nominal misses this.
Cp / Cpk
Process capability indices of the gap against the requirement. Cp compares the requirement width to 6σ; Cpk also accounts for how far the mean sits from the nearer limit. 1.33 is a common minimum, 1.67 for critical features.
ppm out of spec
Predicted assemblies per million falling outside the requirement, under the RSS (normal) assumption. ±3σ exactly filling the band gives about 2,700 ppm.
Contribution
How much each row is responsible for the gap's variation — as a share of the arithmetic band (worst case) or of the variance (RSS and Monte Carlo).
Distribution (normal / uniform / triangular)
Shape of the scatter of a dimension inside its band. Normal: bell curve, σ = T/(3·Cp). Uniform: any value equally likely, σ = T/√3. Triangular: peaked at the centre, σ = T/√6.
Mean shift (per row)
Distance between where a process actually centres and the middle of the drawn band. Shifts the RSS/MRSS/Monte Carlo results but not the worst case, which is about drawn limits.

Frequently asked questions

What is a tolerance stack-up?

A tolerance stack-up (or stack) is the analysis of how the tolerances of several dimensions in an assembly add up to affect a resulting gap, clearance or interference. Each dimension in the chain can be anywhere within its tolerance band, so the gap has a range too — the stack-up tells you how wide that range is and whether the assembly still works at its extremes.

When should I use worst case instead of RSS?

Use worst case when a failure is unacceptable: safety-critical fits, low production volumes, unproven suppliers, or a chain of only two or three dimensions (too few for the statistics to average out). Use RSS when parts are made in volume by stable, capable processes and a small predicted reject rate is acceptable. Many teams do both: worst case to prove feasibility, RSS to avoid over-tightening tolerances that cost money.

What is the MRSS "Bender factor" of 1.5?

Arthur Bender compared RSS predictions with measured assemblies and found that real processes — which drift, are not perfectly centred and are not perfectly normal — produce about 50% more variation than pure RSS predicts. Multiplying the RSS band by 1.5 (values from 1.4 to 1.8 appear in the literature) is a widely used practical correction. The calculator caps MRSS at the worst-case band, which it can never physically exceed.

How do I handle a unilateral tolerance like 15 0/−0.12?

Enter the deviations exactly as drawn: upper 0, lower −0.120. The calculator converts each band to its mean (14.940) and half tolerance (±0.060) internally, so the resulting gap is centred on the real expected value, not on the nominal. The "mean shift" figure in the results tells you how far the asymmetric deviations move the expected gap.

How do I model an interference or installation check?

Define the loop so that a positive gap means clearance: dimensions that open the gap (housing length, bore, slot) get a + direction, dimensions that fill it (parts being installed, shoulders, spacers) get a −. If the resulting range is entirely negative the assembly is in interference, if it straddles zero it is a transition — the same vocabulary as the ISO 286 fit calculator. Add a minimum required gap (e.g. 0.05 mm) to get a pass/fail verdict per method.

What does the Monte Carlo simulation add over RSS?

RSS is an analytic shortcut that assumes every dimension is normally distributed and centred. Monte Carlo instead builds thousands of virtual assemblies, drawing each dimension from the distribution you assign it — normal with a given Cp, uniform, or triangular — and with any mean shift you expect from the process. The result is the actual shape of the gap distribution (the histogram), an observed reject rate, and a check of how far the RSS assumption is from reality. The seed is fixed, so the same chain always gives the same numbers.

Which distribution should I pick for a row?

Normal is the default and fits most machined features under statistical control; use Cp = 1.33 or 1.67 if the supplier guarantees that capability. Uniform is the conservative choice for a poorly controlled process or a setting that is adjusted anywhere within the band (e.g. shims, manual adjustment). Triangular sits in between and is often used for purchased parts where only the drawing limits are known. A mean shift models a process that runs deliberately or systematically off centre — for instance a turned diameter kept towards the upper limit to allow rework.

Can I include geometric tolerances (position, flatness, perpendicularity)?

In a 1D stack a geometric tolerance that acts along the stack direction is added as a row with nominal 0 and a symmetric deviation (e.g. ±0.05 for a 0.1 position tolerance). Tolerances acting at an angle, bonus tolerance at MMC and datum shift are not modelled here — those need a full 2D/3D analysis.

References & further reading

Carry this calculator in your pocket

MechaHandbook has the ISO 286 tolerance tables and more — thread charts, standard components and tightening torque — all offline, no internet required.

Download the app

Tolerance Stack-Up Report

Dimension chain

#DimensionDir.Nominal (mm)ISO 286Upper (mm)Lower (mm)Process
1 Housing bore length + 60.000 H8 +0.046 0.000 Normal
2 Bearing A width 15.000 0.000 −0.120 Normal
3 Spacer sleeve 29.800 +0.050 −0.050 Normal
4 Bearing B width 15.000 0.000 −0.120 Normal

Requirement on the gap: Min gap ≥ 0.050 mm · Max gap ≤ 0.500 mm · MRSS factor 1.5

Results

Nominal gap: 0.200 mm · Mean gap: 0.343 mm · Mean shift: +0.143 mm

MethodMin gap (mm)Max gap (mm)Band (±) (mm)TypeRequirement
Worst case 0.150 0.536 ±0.193 Clearance Violates requirement
RSS (statistical) 0.242 0.444 ±0.101 Clearance Meets requirement
MRSS (Bender) × 1.5 0.191 0.495 ±0.152 Clearance Meets requirement
Monte Carlo (99.73% band) 0.242 0.444 ±0.101 Clearance Meets requirement

RSS (statistical): σ of gap = 0.034 mm · Cp = 2.22 · Cpk = 1.55 · Out of spec: 1.6 ppm

Monte Carlo simulation

20,000 simulated assemblies, each row sampled from its own distribution. Fixed seed, so the numbers are repeatable. Mean gap = 0.343 mm · σ of gap = 0.033 mm · Observed range 0.224 … 0.471 mm · Cp = 2.25 · Cpk = 1.57 · Out of spec (observed): < 0.01 ppm · Yield 100.0000%

0.10.20.30.40.5050010001500min 0.050max 0.500Gap (mm)AssembliesMonte CarloRSS normalRequirement

Contribution analysis

Largest contributor: Bearing A width — 35.2% of the gap variance, 31.1% of the worst-case band.

# Dimension ± tol (mm) σ (mm) Process Worst-case share Variance share
1 Bearing A width ±0.060 0.0200 Normal
31.1%
35.2%
2 Bearing B width ±0.060 0.0200 Normal
31.1%
35.2%
3 Spacer sleeve ±0.050 0.0167 Normal
25.9%
24.4%
4 Housing bore length ±0.023 0.0077 Normal
11.9%
5.2%

Assumptions

1D linear stack. RSS/MRSS combine each row’s σ (normal: ±tol = ±3σ·Cp; uniform: tol/√3; triangular: tol/√6) assuming independent dimensions; Monte Carlo samples the same per-row models. Geometric tolerances at an angle, MMC bonus and datum shift are not modelled. Verify every figure before releasing a drawing.