Tolerance stack up analysis

Tolerance Analysis Methods

Tolerance analysis is an important part of mechanical design.  It has an impact on cost, performance, and quality which requires a requisite amount of study to ensure tolerances result in a successful design that can be effectively manufactured.  In this article we will look at tolerance analysis methods, and their pros and cons.  We will also cover different use cases for tolerance analysis.


  • Tolerance analysis methods.
  • Worst case analysis.
  • Statistical analysis.
    • Root sum squared.
    • Monte Carlo simulation.
  • Modeling assembly component dimensions.

Tolerance Analysis Methods

Tolerance analysis entails determining an acceptable rejection rate based on the tolerances for each part.  This can be an iterative process where tolerances are allocated to each part partly on restrictions in the manufacturing of each component and partly on performance and quality requirements.  For example, a loose fitting joint may not work properly or give an impression of poor quality.  Then a tolerance analysis is conducted to verify that a large percentage of assemblies will not have assembly problems.  This process is repeated until a balance of performance and cost is achieved.  Tolerance analysis methods generally fall into two categories:

  • Worst case analysis
  • Statistical methods

Within the statistical methods category there are various methods that can be employed.  We will focus on two methods:

  • Root sum squared
  • Monte Carlo method

Worst Case Analysis

Worst case analysis, for the most part, guarantees that all parts will fit.  This comes at a cost that we will discuss later.  In worst case analysis we are simply using either maximum or minimum material condition to set tolerances so that they always fit.  Of course this assumes that all parts are within their individual tolerances.  We may add additional clearance to account for the fact that some parts may not be within tolerance.

Consider the assembly shown below.  Parts A and B must fit within part C, and the assembly is held together with a pin.  Note that the clearances are greatly exaggerated.

Parts A & B nominal heights are 1 inch.  Their tolerances are +/- 0.010".  We are going to set the internal height tolerance of part C to +/- 0.015".  To determine the nominal internal height of part C we make sure that the minimum material condition of part C is greater than the maximum material conditions of parts A & B.

Maximum material condition of A & B = 1 + .010 = 1.010"

Minimum material condition of C = nominal internal height - .015 >= 2*1.010

Solving for nominal internal height of part C = 2.035"

Considerations for Using Worst Case Analysis

Worst case analysis is the most conservative tolerance analysis method.  If all parts are within tolerance, the assembly will fit.  This does not come without consequences.  Either cost or performance may be affected.  If part tolerances must be tightened to allow for satisfactory performance, cost will increase to allow for tighter part tolerances.  If tolerances are not tightened, the loose fit may result in poor performance.

Statistical Analysis

In worst-case analysis we assumed nothing about dimensional variation other than it is in the tolerance range.  Statistical analysis makes assumptions that the dimensional variation follows a probability distribution.  These methods allow for more relaxed tolerances (or tighter fits) while allowing for a certain percentage of assemblies to not fit together.  This is less conservative, but we also take into account that most of the time parts are not at their maximum or minimum material conditions.  Statistical methods also allow for the possibility that some parts are above their nominal dimension and others are below their nominal dimension, therefore cancelling out each one's variation to some degree.  We will discuss two methods: Root sum squared (RSS) and Monte Carlo simulation.

Both of these methods require that we fully specify the probability distribution and the parameters of the distribution.  To do this, we either need to have a batch of parts and measure dimensions or we need to have knowledge of the manufacturing process to specify parameters.  Let's use an example for both of these situations where we assume the dimension in question follows a normal distribution.  Standard deviation (sigma) is governed by whatever process, equipment, etc. that is used to make the part.  Therefore we need data on the process.

Measure Parts

We could do a test run of x parts to determine the standard deviation of the dimension.  We use the nominal dimension as mean, although this needs to be verified that the mean of the samples are the same as well.  There may be a bias present where the mean has shifted from the nominal dimension.

Knowledge of the Manufacturing Process

If we have historical data of similar manufacturing operations, we can estimate standard deviation by measuring existing part dimensions of similar nature.  It's important that the part features being measured are manufactured in the same way as the dimension we are trying to estimate.

Use Cases

With statistical methods, there are two use cases that apply:

  • Specify a rejection rate and find the resulting nominal dimension.
  • Specify all nominal dimensions and find the rejection rate.

Which one to use depends on the objective.  If performance is not an issue, we want to specify a low rejection rate that doesn't waste parts and cause rework.  If performance is of primary importance, we need to specify dimensions that work, and then determine the resulting rejection rate.  If the rejection rate is too high, we may have to tighten part tolerances to balance assembly rejection.

Root Sum Squared Analysis

Root sum squared analysis (RSS) is a method that uses limiting assumptions to perform mathematical operations on parts whose dimensions are random variables.

To do this we must make a couple of assumptions:

  • The dimensions of each part are normally distributed.
  • We know the standard deviation (sigma) of the dimensions.

To specify the normal probability distribution we need to have a mean value and sigma.  The mean value is the nominal dimension.  Sigma is governed by the manufacturing process used to create the part as described earlier.

Let's also consider the following properties of the normal distribution:

  • 68.3% of parts fall within +/- one sigma from the mean.
  • 95.5% of parts fall within +/- two sigma from the mean.
  • 99.7% of parts fall within +/- three sigma from the mean.

Knowing the sigma of our manufacturing process, we can set the tolerance to an allowable level of rejection.  If we set the part tolerance to +/- 3 sigma, we would expect 99.7% of the parts to be good for a given dimension.

When we add or subtract normally distributed variables, we can add or subtract the means.  To get the nominal dimension of our tolerance stack we simply add the means.

We cannot add or subtract the standard deviations, but we can add the variances.  Remember that variance is the square of standard deviation.  This is where the root sum squared name comes in.  Note that when subtracting one normal random variable from another, the variances are still added.  To get the standard deviation of the tolerance stack we sum the square of each standard deviation to get the total variance.  We then take the square root of the stack variance to get the standard deviation.

Rejection Rate Specified, Find a Nominal Dimension

Let's continue with the previous example, where we were assembling parts A, B and C.  The part tolerances for A & B are .010" and the tolerance for the notch in C is .015".  The spreadsheet below shows how to arrive at the nominal dimension of C that allows for a clearance fit.

To determine the nominal gap opening in part C, we have to make an assumption about rejection rate.  We'll go with 0.135% of the time the parts won't fit.  The formula to calculate clearance is C - A+B ≥ 0 (cell B9).

To determine the sigma of C-A+B, we take the square root of the sum of variance A, variance B, and variance C (cell B10).

To determine the rejection rate we use Excel's normal distribution function and set x = 0 for zero clearance.  This determines the probability of clearance ≤ 0.

Finally, we use Solver to find the minimum dimension of C that results in a rejection rate of .00135.

Comparison to Worst-Case

Remember from the worst-case example, the nominal dimension of C was 2.035.  The nominal dimension for RSS is 2.021 which results in a tighter fit by .014.

All Dimensions Specified, Find Rejection Rate

Let's reverse the problem and find the rejection rate given all dimensions.  This time the nominal opening in C must be 2.015 for performance reasons, and we want to know the fraction of assemblies that the parts won't fit.

To calculate rejection rate, we change part C nominal dimension to 2.015 and calculate the worksheet.  The final rejection rate is 1.45%.

Monte Carlo Analysis

Monte Carlo analysis is a more general, and more powerful statistical method as we will see in a minute.  It's not limited to the normal distribution and we can truncate the tails of distributions to account for rejection of out of tolerance parts.  Each part dimension is treated as a random variable as was done in RSS.  A model of the stack-up is created and simulated repeatedly for thousands of trials.  Each simulation trial randomly samples a dimension for each part and calculates clearance or interference.  The percentage of trials that result in interference fit gives us an idea of the rejection rate.

Comparison to RSS

If you are assuming normally distributed dimensions, RSS is a more efficient way to go.  One simple calculation will give the same answer as tens of thousands of simulation trials so Monte Carlo simulation is not needed.  If the dimensions follow a probability distribution other than normal, Monte Carlo simulation shines.  We'll discuss truncated distributions later which is another advantage.

Basic Monte Carlo Simulation Example

Let's revisit the example assembly above.  A spreadsheet is set up to simulate.  Columns C and D have the nominal dimensions and standard deviations.  We simulate part dimensions by inserting random variable functions in column B that sample using mean and standard deviation.  The random variable functions are part of Simulation Master, not Excel.  The tolerances in column E are shown for reference and not used in the simulation.  The clearance is calculated in cell B9.

Once the spreadsheet is set up, we're ready to simulate.  The model was simulated for 250,000 trials and the output is shown below.  The probability of clearance ≤ 0 is 1.464%.  Note that this is very close to the result we got using RSS.

With RSS we determined a nominal dimension given a rejection rate, and also calculated rejection rate given all nominal dimensions.  With Monte Carlo simulation, all nominal dimensions must be specified and it determines rejection rate.  To find a desired dimension, the simulation would have to be iterated while changing the dimension each time until the target rejection rate is achieved.

Modeling Assembly Component Dimensions

To this point we haven't said much about out of tolerance parts that have made their way to assembly. For worst-case, the parts may or may not fit and we won't know how many assemblies will not work.  For statistical methods we have a little more to work with, but still have to make some assumptions.

Let's consider two extremes:  No inspection of parts and 100% inspection of parts.  100% inspection does not guarantee that all parts are within tolerance since there is measurement error involved in inspection, but we will assume all parts are good for this thought exercise.  In the case of no inspection, we assume a probability distribution of each dimension and proceed as described above for RSS and Monte Carlo simulation.  At the other end of the spectrum we have a probability distribution, but the areas of the distribution tails outside the tolerance zone are not used.  To model this scenario, we truncate the tails of the distribution at the tolerance limits.

A truncated distribution has one or both tails chopped off.  An example is shown below where the normal distribution is truncated at the tolerance limits and the simulator only draws samples from this range.

Truncated Distributions Example

If all parts are assumed to be within tolerance, the tails can be truncated at the tolerance limit.  This is true regardless of the probability distribution.  In this example, the normal distribution for each dimension is truncated at the tolerance limits.

The model was simulated for 250,000 trials and the output is shown below.  The probability of clearance ≤ 0 is 1.316%.  Note that this is slightly less than the previous simulation with pure distributions.  This is to be expected since there are no parts that are out of tolerance.

A Final Word on Part Modeling

The bottom line is an assumption must be made as to whether all parts are assumed to be in tolerance or if not, how to account for bad parts.  If we assume all parts are good, we can use a truncated distribution for parts.  If there is no inspection, we can assume all parts follow a pure distribution and model with untruncated distributions.

It gets murky in between these extremes.  If there is partial inspection, some bad parts may be caught and some not.  This isn't a pure distribution or a truncated distribution since some will fall outside the truncations.  The conservative approach would be to assume no inspection and use pure distributions.


We've covered worst-case, RSS and Monte Carlo simulation tolerance analysis.  We've also shown how making assumptions about part quality can affect how we conduct a tolerance analysis.  If you would like an additional example of Monte Carlo analysis, refer to this article.


Monte Carlo simulations performed using Simulation Master.


MEboost is our mechanical engineering add-in for Excel.  It simplifies worst-case, RSS, and Monte Carlo tolerance analysis.  To learn more about tolerance analysis using MEboost, check out this article.


Excel is a registered trademark of Microsoft Corporation.  Used with permission from Microsoft.