- Room 1807, Unit 9, Building 2, Shangxing Commercial Street, Shangde Road, Shangxing Community, Xinqiao Subdistrict, Bao'an District, Shenzhen City, China




Contact Us
Our team is on stand by, waiting toassist you.
Videos
A large collection of educational videos and tutorials.
About Us
Learn about our company, leadership, and mission totransform manufacturing.
Privacy Policy
Applies to all personal information collected through and/or processed in connection.

Aerospace & UAV
WJ Prototypes is your 3D manufacturing partner from prototype to large scale production.
Consumer Electronics
New Product Introduction Solutions for Consumer Electronics.

Robotics & Automation
Need some assistance bringing your robotic device or parts from the sketch-board to reality?
Medical Devices
The medical industry needs high quality, dependable and safe parts and products.
Automotive
New Product Introduction Solutions for Automotive
Industrial Machinery
The main purpose of industrial prototyping is to take the product from drawings into the real world.


A tolerance stack up predicts how individual part tolerances combine across an assembly to determine whether it meets a functional gap, interference, or alignment requirement. Pick your method by risk and volume: use worst-case (arithmetic) for safety-critical or low-volume parts where every unit must fit, use RSS or Modified RSS for cost-sensitive production runs with capable, well-understood processes, and use Monte Carlo simulation when your geometry is nonlinear or your distributions don't behave the way RSS assumes.
Three references anchor almost every credible discussion of this topic: ASME Y14.5 for geometric tolerancing rules, Cpk for process capability data that justifies statistical stacking, and the classic Scholz (1995) taxonomy of stacking methods.
Quick reference: a tolerance analysis that only checks worst-case fit tells you if an assembly can fail. RSS and Monte Carlo tell you how often.
Choosing the right tolerance stack up method, worst-case for guaranteed fit, RSS for capable production, Monte Carlo for nonlinear or non-normal cases, matters more than any single formula.
| Point | Details |
|---|---|
| Match method to risk | Use worst-case for safety-critical or low-volume parts, RSS or MRSS for capable production runs. |
| Watch the dominant contributor | Rank contributors by variance share (Ti² / ΣTi²) and tighten the single biggest driver first. |
| Validate assumptions with real data | Confirm independence, normality, and Cpk against actual inspection data before trusting RSS. |
| Use Monte Carlo for nonlinear stacks | Switch to simulation when geometry or distributions break RSS's linear, normal assumptions. |
| Verify with pilot parts | Order pilot runs from a partner like WJ Prototypes to confirm the stack before full release. |
Tolerance stack up analysis is the calculation of how the individual dimensional tolerances on mating parts combine to produce variation in an assembly-level output, such as a gap, an overlap, or the alignment of two features. That output is usually tied to a functional requirement: a connector needs 0.2mm of clearance to seat, a bracket needs to sit flush within 0.1mm, a bearing bore needs enough interference to stay press-fit but not so much that it cracks the housing.
Engineers model this with a vector loop: a chain of dimensions traced from a fixed reference point, through each part in the assembly, back to the feature you care about. For a simple 1D stack, you draw an arrow for each contributing dimension, assign it a positive or negative sign based on direction, and sum the chain. The final vector's length and tolerance band is your predicted gap or interference, with its own accumulated uncertainty. Picture three plates bolted end to end inside a housing; the gap at the far end depends on the length of every plate plus the housing's internal length, each with its own tolerance riding along for the trip.
Get this wrong and the consequences show up fast, and they compound:
The Tolerance Analysis overview on Wikipedia frames this well: worst-case analysis guarantees fit, while statistical methods predict the distribution of outcomes, including what percentage of assemblies will actually pass. Those are different questions, and conflating them is where a lot of tolerance stack up mistakes start.
Pro Tip: Before you calculate anything, write the functional requirement as a single number with a tolerance, like "gap = 0.5mm ± 0.15mm." If you can't state it that cleanly, you haven't finished defining the problem yet, and no stacking method will fix that.
Four methods dominate practice, and each one trades accuracy assumptions for tolerance relief. The tighter your assumptions, the more tolerance you can hand each part, and the more exposure you take on if those assumptions are wrong.
Worst-case (arithmetic) stacking sums the absolute value of every contributing tolerance: Σ|Ti|. It assumes every part could simultaneously land at its worst allowable dimension, which is a pessimistic but bulletproof assumption. It's the right call for a one-off aerospace bracket or a medical device fixture where a single failed unit is unacceptable, and it's simple enough to check by hand.
RSS (root-sum-square) stacking combines tolerances as √(ΣTi²), treating each contributor as an independent, normally distributed random variable centered on nominal. Because you're summing variances instead of raw magnitudes, RSS almost always predicts a smaller total variation than worst-case for the same set of parts, which is exactly why production teams like it: it lets you open up individual part tolerances without sacrificing yield, as long as your process is actually capable and centered.
Modified RSS (MRSS) applies an inflation factor, commonly around 1.5, to the RSS result to compensate for mean shifts and nonideal distributions that pure RSS ignores. It's a pragmatic middle ground; you get most of RSS's tolerance relief without pretending every process stays perfectly centered forever.
Monte Carlo simulation draws thousands of random samples from each dimension's actual (or assumed) distribution, runs them through the real assembly equation, and reports the resulting distribution of outcomes. It's the only method here that doesn't require the stack to be linear, which matters the moment your assembly involves angles, radii, or trigonometric relationships that RSS's simple square-root math can't capture.
| Method | Core assumption | Strengths | Weaknesses | Best used for |
|---|---|---|---|---|
| Worst-case | Every part at tolerance limit simultaneously | Guarantees fit, simple math | Overly conservative, forces tight tolerances | Low-volume, safety-critical, first builds |
| RSS | Independent, normal, centered distributions | Realistic yield prediction, wider part tolerances | Optimistic if assumptions break | High-volume, capable, centered processes |
| Modified RSS | RSS plus an inflation factor for mean shift | Balances relief with real-world drift | Inflation factor is a judgment call | Production with some known process drift |
| Monte Carlo | Any distribution, any geometry | Handles nonlinear stacks and mixed distributions | Needs more setup and sample data | Complex or nonlinear assemblies |
Scholz (1995) lays out this exact progression: arithmetic, RSS, RSS with inflation, mean-shift stacking, and hybrid combinations, and stresses that the method you choose should match the assumptions you're actually willing to defend, not the ones that are most convenient.
Run the numbers on a real chain, and the differences between methods stop being abstract. Take a simple bracket assembly with three linear dimensions contributing to a final gap.
Contributors:
The nominal gap is 50.00 minus (25.00 + 10.00 + 15.00) = 0.00mm... except the design intends a 0.5mm running clearance, so the true nominal gap target is 0.50mm, achieved by design offset elsewhere in the drawing. For clarity, we'll just stack the tolerance contributions.
Sum the absolute tolerances: Σ|Ti| = 0.10 + 0.05 + 0.08 + 0.12 = ±0.35mm.
That means the gap could realistically swing between 0.15mm and 0.85mm if every part landed at its worst allowable limit simultaneously. If your functional requirement is a gap no smaller than 0.20mm, this stack fails worst-case, even though any individual part is perfectly in spec.
Square each tolerance, sum them, take the square root: √(0.10² + 0.05² + 0.08² + 0.12²) = √(0.01 + 0.0025 + 0.0064 + 0.0144) = √0.0333 = ±0.182mm.

That's roughly half the worst-case spread, and it represents the ±3σ band if each tolerance was specified at 3σ to begin with. So the same assembly that "fails" worst-case comfortably clears a 0.20mm minimum gap requirement under RSS, assuming your processes are centered and genuinely normal.
Breaking down each contributor's share of the total variance (Ti² / ΣTi²) shows where the risk actually concentrates:
That's the number you'd hand to a supplier if you needed to tighten one dimension for maximum benefit instead of tightening all four, which practitioner data backs up: a single dominant feature commonly drives more than 75% of assembly variation in real production stacks, so ranking contributors before touching tolerances almost always beats an across-the-board tightening pass.
When the gap depends on an angle, a radius, or several features whose relationship isn't simply additive, RSS's square-root shortcut breaks down, and Monte Carlo takes over.
You can build this in Excel with the RAND() and NORM.INV() functions across a few thousand rows, in Python with numpy.random.normal(), or inside a CAD-integrated solver that automates the sampling and reports Cpk directly. A basic spreadsheet template needs one column per contributor, a formula column computing the assembly output per row, and a summary block calculating mean, standard deviation, and the percentage of rows failing spec.
Pro Tip: Run your Monte Carlo simulation twice, once with your specified tolerances and once with actual measured Cpk data from a pilot run. The gap between those two results tells you how much you're trusting the drawing versus reality, and it's often bigger than engineers expect.

Every stacking method rests on assumptions that are easy to state and easy to forget under deadline pressure. Get one wrong and your "passing" stack up ships defects anyway.
A few decision rules keep these assumptions honest. Don't trust RSS on a process with a Cpk below roughly 1.33 without adding an inflation factor or switching to Modified RSS; a low Cpk is a direct signal that the "centered and normal" assumption is shaky. Sample sizes matter too: pulling a handful of parts and calling the distribution "normal" is a common shortcut that quietly invalidates the whole RSS calculation. And prefer Monte Carlo or a hybrid stack the moment more than one or two contributors show correlated variation, since RSS's independence assumption falls apart fast once two dimensions move together.
Watch for these failure modes: correlated features (two dimensions machined from the same fixture that drift together), nonnormal distributions (anything produced by a process with a hard physical limit, like a stamped edge), and datum misapplication, where the analysis loop doesn't actually match how the part gets measured or assembled on the floor.
A 1D stack is a straight-line chain of dimensions, like the bracket example above, and it's the easiest to model by hand or in a spreadsheet. A 2D stack adds a second axis, common in planar assemblies where features shift in both X and Y, like a bolt pattern that needs to clear a mating hole pattern in two directions simultaneously. A 3D stack models the full spatial relationship, common in castings, sheet metal brackets with formed flanges, or any assembly where features aren't conveniently aligned to a single axis.
The vector loop concept scales up cleanly: instead of arrows along one line, you're now summing vector components along X, Y, and sometimes Z, then combining the resultant magnitude. The ADCATS teaching material from BYU documents these loop rules in detail, including how to handle rotational contributors and closed-loop assemblies where the chain returns to its starting point.
Geometric dimensioning and tolerancing (per ASME Y14.5) changes the math directly, not just the drawing style:
Pro Tip: Sketch the vector loop on the actual drawing before you open a spreadsheet. Half of stack up errors trace back to a loop that skipped a feature or grabbed the wrong datum, not to a math mistake.
You don't need enterprise software to catch most stack up problems, but you do need to match the tool to the complexity of the assembly.
Quick tier: a spreadsheet with columns for each contributor's nominal, plus and minus tolerance, and formulas for Σ|Ti| and √ΣTi² handles the vast majority of linear 1D stacks. This is where most engineers should start, and it's often enough for design review.
Intermediate tier: Python with numpy and pandas lets you script a Monte Carlo simulation in under fifty lines, sampling from real distributions and plotting results with matplotlib. This tier is where you go once a stack involves nonlinear geometry or you need to run the same analysis repeatedly as tolerances get revised.
Enterprise tier: CAD-integrated solvers connect the tolerance model directly to the 3D geometry, so changes to the design automatically update the stack. PTC's tolerance analysis tools inside Creo support both worst-case and statistical analysis linked to the live model, catching assembly problems before a single prototype gets cut. Sigmetrix is the name that comes up repeatedly in this space, offering dedicated tolerance analysis modules (including CETOL) that plug into major CAD platforms and handle full 3D stacks with GD&T-aware calculations, useful when a stack involves dozens of contributors and manual vector loops become impractical. Standalone calculators like TolStack Pro also cover worst-case, RSS, MRSS, Cpk analysis, and Monte Carlo in one package, with a loop diagram engine that helps visualize the chain.
Whichever tier you pick, validate the tool's output against a hand-calculated worst-case number for at least one contributor set. If a solver's RSS result doesn't roughly match your spreadsheet's √ΣTi² for the same inputs, something in the model, not the software, is wrong.
Pro Tip: Feed real inspection data and measured Cpk values into your statistical stack instead of assumed tolerances. A process that's been running for six months has a known mean and spread that almost always differs from the drawing's stated tolerance band, sometimes enough to flip a marginal pass into a fail.
Gather the inputs before you touch a formula, because a beautifully executed calculation on incomplete data still produces a wrong answer.
Required inputs:
With that in hand, the workflow runs in a predictable sequence:
Verification is not optional. A stack up that's never checked against real parts is a hypothesis, not an engineering conclusion. If your design still allows adjustment during prototyping, that pilot stage is exactly when you want to catch a bad assumption, not after tooling is locked for production.
The instinct when a stack up fails is to tighten every tolerance in the chain. Resist it. Tightening tolerances raises manufacturing cost nonlinearly. A dimension that costs $2 to hold at ±0.05mm can cost $8 or more to hold at ±0.02mm once you're forcing a process near its natural capability limit, and that cost multiplier only gets worse as you approach a process's physical floor.
Better options, roughly in order of cost:
A bracket assembly that fails worst-case by 0.15mm often gets solved for the price of a $200 spacer redesign; the same fix attempted by tightening four separate part tolerances can trigger new tooling and a supplier requalification that costs weeks and thousands of dollars. Look for the cheap fix first.
Pro Tip: When a stack up fails, ask "which single dimension, if tightened, fixes this?" before asking "how do I make every dimension tighter?" The variance breakdown from your RSS calculation already has the answer.
Production data has a habit of surprising engineers who only ever worked from drawing tolerances. A process that's supposedly centered on nominal can drift 0.03mm over a tool's wear life, and a fixture that clamps a part slightly off-center introduces a consistent bias that no amount of RSS math will catch, because RSS assumes centered, independent variation, not a systematic offset baked into the tooling.
Before trusting RSS on a new part, run this checklist:
Pro Tip: A quick correlation check needs no statistics software: plot two suspect dimensions against each other from the same sample set. If the points trend in a visible line instead of scattering randomly, you've found correlated variation that RSS will misrepresent.
I've seen more failed launches caused by over-tightened tolerances than by loose ones. Engineers who don't trust their RSS math default to worst-case everywhere, which drives up cost without buying real reliability, while the actual risk sits in an ignored datum or an assumption nobody validated against real parts.
Three priorities matter more than the formula you pick:
Running the math is half the job. Confirming it against real parts, cut to the tolerances your calculation says will work, is the other half, and it's where a lot of good analysis stalls out waiting on a slow domestic quote. WJ Prototypes runs CNC machining, sheet metal fabrication, and low-volume production with ISO-certified process controls, so you get inspection reports back fast enough to feed real Cpk data into your next Monte Carlo run instead of guessing.
To get an accurate quote on validation parts, send drawings showing the critical stack (with your chosen tolerance zones called out), your target yield or Cpk, the processes you want considered, and any existing inspection data from prior runs. That last piece matters more than engineers expect: real measured distributions beat assumed ones every time you tighten a design. Start with the CNC machining materials guide to confirm which material and process fits your tolerance requirements, then request a CNC machining quote to get pilot parts moving.
Tolerance stack-up is the accumulated variation that results when the individual tolerances of mating parts combine to affect an assembly-level dimension, like a gap or an alignment. It determines whether an assembly meets its functional requirement even when every individual part is within spec.
For worst-case, sum the absolute value of each contributor's tolerance (Σ|Ti|). For RSS, take the square root of the sum of each tolerance squared (√ΣTi²), which typically predicts a smaller, more realistic total variation for independent, normally distributed contributors.
RSS (root-sum-square) tolerance stack-up combines contributor tolerances statistically rather than additively, assuming each is independent and normally distributed around nominal. It's typically read as a ±3σ prediction of the assembly output's spread, and it usually yields a smaller total variation than worst-case for the same set of parts.
The main types are worst-case (arithmetic), RSS (statistical), Modified RSS with an inflation factor for mean shift, and Monte Carlo simulation for nonlinear or non-normal cases. Each trades stricter assumptions for tighter, more cost-effective part tolerances.
Order pilot parts once your calculation predicts a passing result, so you can confirm the prediction against real inspection data before committing to full production tooling. WJ Prototypes supports this stage with CNC machining and low-volume runs that return measurable parts fast enough to feed back into your analysis.
Tolerance In Prototyping: Boost Precision And Efficiency
What Is Tolerance in Machining: A Practical Guide
Explaining Tolerance in Manufacturing: Engineer's Guide
How to Prevent Micro-Porosity in High-Volume Chinese Die Casting Projects