Tolerance Stack-Up Calculator (Worst Case, RSS, Monte Carlo)
Enter each dimension in a one-dimensional loop with its nominal, tolerance and direction. The calculator gives the gap by worst case, RSS and Monte Carlo, in mm or inches.
Inputs
- Bonus
Position only
- Bonus
Position only
- Bonus
Position only
Results
Worst case
- Nominal gap
- 10.000 mm
- Min
- 9.800 mm
- Max
- 10.200 mm
- Half width
- ± 0.200 mm
RSS
- Min
- 9.878 mm
- Max
- 10.122 mm
- Half width
- ± 0.122 mm
- Sigma
- 0.041 mm
Bender factor 1.0
Monte Carlo histogram
Loop diagram
Method
What it returns. For the stack entered, the calculator gives the nominal gap, the worst case limits, the RSS limits and a seeded Monte Carlo distribution with the yield against an optional target. Values are in millimetres by default, with an inch toggle. The stack is stored in the page URL so it can be shared, exported as CSV or printed as a report.
Equal-bilateral conversion. Each contributor is first converted to a mean and an equal-bilateral half width. For a plus/minus tolerance, mean = nominal + (plus - minus) / 2 and half width = (plus + minus) / 2, so 10 +0.2/-0.1 becomes 10.05 ± 0.15. A GD&T position tolerance of zone T with bonus B at MMC (maximum material condition) becomes nominal ± (T + B) / 2. A profile tolerance of zone T becomes nominal ± T / 2 (Fischer 2011, ASME Y14.5-2018).
Worst case. The nominal gap is the signed sum of the contributor means, with positive contributors in the loop direction and negative ones against it. The worst case half width is the plain sum of all half widths, and the limits are the nominal gap minus and plus that sum. It assumes every part is at its limit at the same time, so the result is conservative.
Root sum square (RSS). The RSS half width is the square root of the sum of the squared half widths, multiplied by the Bender factor. A factor of 1.0 gives the textbook RSS. A factor of 1.5 is the inflation Bender proposed to cover mean shifts and non-normal processes seen in production (Bender, Graphic Science, 1962). The reported sigma is the root sum square of the contributor sigmas.
Monte Carlo. Each sample draws every contributor from its distribution and adds the draws with their signs. A normal contributor has sigma = half width / k, where k is the sigma multiplier (default 3, so the tolerance equals 3 sigma). A uniform contributor is drawn evenly across its full tolerance, with sigma = half width / √3. The generator is seeded (mulberry32, Box-Muller), so the same inputs and seed always give the same result. Percentiles use linear interpolation on the sorted samples (Creveling 1997).
Assumptions
- The stack is one-dimensional and linear: every contributor adds or subtracts directly along one axis, with a sensitivity of +1 or -1.
- Contributors are statistically independent.
- A normal tolerance equals k sigma of the process, with k = 3 by default.
- GD&T position and profile tolerances are converted to equal-bilateral values on the nominal. Datum shift, datum simulation and form variation are not modelled.
- No thermal expansion, deflection under load or assembly shift is included.
- All lengths in one stack use one unit.
Standards and references
| Standard | Note |
|---|---|
| ASME Y14.5-2018, Dimensioning and Tolerancing | GD&T terms, position and profile zones, bonus tolerance at MMC. |
| Bender, A., Benderizing tolerances: a simple practical probability method of handling tolerances for limit stack-ups, Graphic Science, December 1962 | Source of the 1.5 inflation factor on the RSS result. |
| Bender, A., Statistical tolerancing as it relates to quality control and the designer, SAE Technical Paper 680490, 1968 | Later paper by the same author on statistical tolerancing for the designer. |
| Fischer, B. R., Mechanical Tolerance Stackup and Analysis, 2nd ed., CRC Press, 2011 | Loop diagram, sign convention, equal-bilateral conversion, worst case and RSS method. |
| Creveling, C. M., Tolerance Design, Addison-Wesley, 1997 | Statistical tolerancing and Monte Carlo simulation of assemblies. |
Worked example: tolerance stack-up for a three-part linear stack
A 25 ± 0.1 mm housing bore contains a 10 ± 0.05 mm spacer and a 5 ± 0.05 mm bush. The gap is 25 - 10 - 5. All three are normal with k = 3, Bender factor 1.0. This is the default stack loaded in the calculator.
| Result | Value |
|---|---|
| Nominal gap | 10.000 mm |
| Worst case | 9.800 to 10.200 mm (± 0.200) |
| RSS | 9.878 to 10.122 mm (± 0.122), sigma 0.041 mm |
| Monte Carlo, seed 1, 20,000 samples | mean 10.000 mm, sigma 0.041 mm |
Frequently asked questions
When should I use RSS instead of worst case?
Use worst case when every assembly must fit, the part count is small, or failure is safety critical. Use RSS when there are several independent contributors from capable processes and a small reject rate is acceptable. RSS gives a tighter band because all parts rarely sit at their limits together.
What is the Bender factor?
It is a multiplier on the RSS half width. Bender (Graphic Science, December 1962) proposed 1.5 to allow for process mean shifts and distributions that are not centred normals. Use 1.0 for textbook RSS and 1.5 for a more conservative statistical result.
How is bonus tolerance at MMC applied?
For a position tolerance, set the zone T and the bonus you expect from the feature departing from MMC. The contributor becomes nominal ± (T + bonus) / 2. For example T 0.2 mm with 0.1 mm bonus gives ± 0.15 mm. Bonus is only offered for position.
Why does the Monte Carlo sigma differ slightly from the RSS sigma?
Monte Carlo estimates sigma from a finite random sample, so it carries sampling error of roughly 1 percent at 20,000 samples. The default stack gives 0.041 mm from both methods. Larger sample counts reduce the difference. A different seed gives a slightly different estimate.
Can I mix millimetres and inches in one stack?
No. One stack uses one unit. The toggle converts every displayed value between mm and inches. The calculation itself is the same.
How do I share or save a stack?
The whole stack is encoded in the page URL after #s=. Use Copy link and send the address. Opening it restores every row and setting. Export CSV saves the contributor table, and Download report prints the inputs, results and method.
What sign should each contributor have?
Draw the loop from one side of the gap to the other. Dimensions that go in the positive direction are +, those that come back are -. The nominal gap is the signed sum.
Changelog
| Date | Change |
|---|---|
| Corrected the Bender citation: the 1.5 factor is from Graphic Science, December 1962, not an SAE paper of that year. Added the 1968 SAE paper 680490. Shortened the introduction. | |
| First published. |