# CNC Tolerance Stack-Up: Why Your Part Did Not Fit

> A tolerance stack is where the assembly stops fitting. How to run the worst-case and RSS calculations, which fit to use where, and what each machining process can actually hold.

https://www.sinbo-machining.com/blog/tolerance-stack-up/

---

## On This Page

- CNC Tolerance Stack-Up: Why Your Part Did Not Fit
- What Tolerance Stack-Up Actually Is
- Why Your Part Did Not Fit: Six Causes
- Running the Stack: Worst Case and Root Sum Square
- ISO 2768: The General Tolerance That Should Cover Most of Your Drawing
- Fits: Clearance, Transition and Interference
- What Each Process Can Actually Hold
- How to Fix the Stack Before It Reaches the Shop
- Sources
- Frequently Asked Questions
- Related Articles
- Send Us the Drawing and the Assembly

Quality Assurance
# CNC Tolerance Stack-Up: Why Your Part Did Not Fit
October 28, 2026 | 10 min read
## CNC Tolerance Stack-Up: Why Your Part Did Not Fit
A tolerance stack-up is the arithmetic that decides whether an assembly fits, and almost every "the part did not fit" complaint is a stack that was never calculated. Each dimension in a chain contributes its own tolerance, and the result is the sum of those tolerances — three plates at 10.0 ±0.1 mm stack to ±0.3 mm, not ±0.1 mm. A part can be perfectly manufactured to its own drawing and still be wrong, because the drawing never accounted for how the tolerances add up.
## What Tolerance Stack-Up Actually Is
The rule is simple and unforgiving: the tolerance on an assembled dimension is the sum of the tolerances of everything in the chain. Nothing else changes it. A chain of five parts at ±0.1 mm each stacks to ±0.5 mm, no matter how carefully each part was made. There are two ways to run the arithmetic, and they answer different questions.
|  Method |  Calculation |  Total stack |  Result
|  Worst case |  0.1 + 0.1 + 0.1 |  ±0.3 mm |  Nominal 30.0 mm, range 29.7–30.3 mm
|  Root sum square |  √(0.01 + 0.01 + 0.01) |  ±0.173 mm |  Nominal 30.0 mm, range 29.83–30.17 mm
 [Horizontal band chart comparing the worst-case, root-sum-square and target tolerance bands around a 30.0 mm nominal] Three plates at 10.0 ±0.1 mm: the worst-case band is 29.7-30.3 mm, RSS is 29.827-30.173 mm and a 30.0 ±0.15 mm requirement is 29.85-30.15 mm. Worst case is the method that guarantees fit on every single unit, because it assumes every dimension lands at its limit simultaneously. Root sum square is the statistical method: it assumes the errors are random and independent, so the extremes rarely coincide. RSS is what you use to describe a population of thousands of parts. Worst case is what you use to guarantee that one part will fit.  [Precision turned shafts and CNC lathe components] Turned shafts and lathe components: fits and tolerance bands are decided at the drawing stage, not on the shop floor.
## Why Your Part Did Not Fit: Six Causes
These six account for most of the fit failures that come back through a quality department. All six are drawing problems, not manufacturing problems.
|  # |  Cause |  What goes wrong |  The fix
|  1 |  General tolerance used on a bearing fit |  ISO 2768-m at 50 mm is ±0.3 mm, while a bearing seat needs ±0.01 mm or tighter |  Specify the fit directly, such as H7/k6 or H7/p6
|  2 |  No worst-case stack calculated |  Five parts each at ±0.1 mm stack to ±0.5 mm and the assembly no longer closes |  Calculate the stack and tighten one dimension
|  3 |  Tight tolerance on a thin wall |  A 1 mm wall deflects during machining, so ±0.01 mm is impossible however the drawing reads |  Wall at least 1.5 mm in aluminum and 1.0 mm in steel
|  4 |  No ISO 2768 note at all |  The shop has no default, so every ambiguous dimension becomes a query and an assumption |  Put ISO 2768-mK in the title block
|  5 |  Interference fit with a coarse surface finish |  Surface peaks are crushed during assembly and the calculated interference disappears |  Ra 0.8 µm or better, and Ra 0.4 µm grinding is recommended
|  6 |  GD&T applied without datums |  The feature control frame has no reference, so the shop picks one and the result varies |  Define clear datum references on the drawing
 [Grade 5 titanium CNC machined components] Grade 5 titanium components: tight fits in a difficult material are where a stack error shows up first, because there is no room to absorb it. Causes 3 and 6 deserve special attention. A thin wall cannot hold ±0.01 mm regardless of what the drawing says — the part deflects while it is being cut, and the dimension moves after the cutter leaves. And a positional tolerance without a datum reference is not a specification, it is a request for the shop to choose.
## Running the Stack: Worst Case and Root Sum Square
The order of work matters. Run the worst-case stack first, because it is the only method that guarantees fit on every unit, and only then use RSS for volume production. A designer who starts with RSS has already assumed away the problem. The three-plate example is the reference case. Three plates at 10.0 ±0.1 mm, stacked: - Worst case: 0.1 + 0.1 + 0.1 = ±0.3 mm, so the assembled length is 30.0 mm nominal and runs from 29.7 to 30.3 mm.
- Root sum square: √(0.01 + 0.01 + 0.01) = ±0.173 mm, so the same assembly runs from 29.83 to 30.17 mm.
- Requirement: if the assembly must hold 30.0 ±0.15 mm, the worst case fails, because 0.3 is greater than 0.15. RSS does not rescue you either, because some units still hit worst case.
When the stack fails, there are exactly four moves, and only one of them costs money on the part itself.
|  Option |  Effect on the stack |  What it costs
|  Tighten one tolerance |  Removes that dimension's share from the stack |  +30–150% on that feature
|  Add a shim |  Absorbs the variation at assembly time |  An extra assembly step, no part cost
|  Redesign the chain |  Removes a dimension from the stack entirely |  Engineering time only
|  Switch to RSS |  ±0.3 becomes ±0.173 mm |  Free, but no guarantee on any single unit
Redesigning is usually the right answer when the offending dimension can be taken out of the chain. A shim is the right answer when the interface is already designed to accept one. Tightening a tolerance is the right answer only when the dimension genuinely has to be tight, and it is the most expensive of the three.
## ISO 2768: The General Tolerance That Should Cover Most of Your Drawing
ISO 2768 is what makes a drawing readable. One note in the title block covers every dimension that does not drive function, which is typically 80% of them, and stops the shop from guessing at the rest.
|  Class |  Precision level |  Typical use |  Cost impact
|  f (fine) |  Highest general |  Precision parts, mating surfaces not needing a specific fit, tight cosmetic requirements |  +15–30% vs medium
|  m (medium) |  Standard CNC |  General CNC machined parts, the most widely used class |  Baseline
|  c (coarse) |  Relaxed |  Sheet metal parts, structural weldments, non-critical castings, large assemblies |  -10–20% vs medium
|  v (very coarse) |  Most relaxed |  Welded structures, rough castings, very large dimensions |  -20–35% vs medium
The letter before the hyphen sets the linear class. The letter after the hyphen sets the geometrical class, so ISO 2768-mK means linear class m plus geometrical class K, and leaving the second letter off means no general geometrical tolerances are specified at all. The linear tolerance depends on the nominal size, so the band your dimension falls into changes the number.
|  Nominal size range (mm) |  ISO 2768-f |  ISO 2768-m |  ISO 2768-c |  ISO 2768-v
|  0.5–3 |  ±0.05 |  ±0.1 |  ±0.2 |  —
|  3–6 |  ±0.05 |  ±0.1 |  ±0.3 |  ±0.5
|  6–30 |  ±0.1 |  ±0.2 |  ±0.5 |  ±1.0
|  30–120 |  ±0.15 |  ±0.3 |  ±0.8 |  ±1.5
|  120–400 |  ±0.2 |  ±0.5 |  ±1.2 |  ±2.5
 [Bar chart comparing the linear tolerance of ISO 2768 classes f, m, c and v at the 30–120 mm size band] At 30–120 mm the linear tolerance is ±0.15 for class f, ±0.3 for class m, ±0.8 for class c and ±1.5 for class v. ISO 2768 has clear limits, and using it where a specific fit is needed is the most common way it causes trouble. Pull a feature out of the general class whenever the drawing shows what happens if the dimension lands at its limit.
|  Scenario |  Recommended tolerance |  Why |  Typical IT grade
|  Shaft in bearing bore |  Individual fit, such as H7/k6 |  Bearing life depends on correct interference or clearance |  IT6–IT7
|  Seal groove diameter |  ±0.025 mm or tighter |  An O-ring leaks if the groove is too wide or too deep |  IT7–IT8
|  Bolt hole pattern |  ±0.1 mm positional |  Bolts must align through mating flanges |  IT9–IT10
|  Locating dowel pins |  H7/m6 or tighter |  Dowels must be press-fit for repeatable location |  IT6–IT7
|  Hydraulic cylinder bore |  ±0.005–0.01 mm plus roundness |  Fluid leaks past the piston if the bore is out of round or oversized |  IT5–IT7
|  Mating gear center distance |  ±0.02–0.05 mm |  Backlash and noise depend on the center distance |  IT6–IT8

## Fits: Clearance, Transition and Interference
When two parts have to hold a relationship, a ± tolerance on each is not enough — the drawing needs a fit, which is a relationship between the hole and the shaft expressed as two ISO 286 designations.
|  Fit type |  Relationship |  Assembly |  Cost
|  Clearance |  The shaft is always smaller than the hole |  Hand assembly, the parts can move relative to each other |  Baseline
|  Transition |  Depends where the actual hole and shaft fall inside their bands |  Sometimes a small clearance, sometimes a small interference |  +15–30% over clearance
|  Interference |  The shaft is always larger than the hole |  Press or thermal methods |  The most expensive
Reading a designation is straightforward once you know the two halves.
|  Part |  Designation |  Deviation at 25 mm |  Meaning
|  Hole |  H7 |  +21 / 0 µm |  Fundamental deviation is zero, so the hole can only be equal to or larger than nominal
|  Shaft |  g6 |  -7 / -20 µm |  Always below nominal, so it can never exceed the hole
Letters a–h produce clearance fits, js–n produce transition fits and p–zc produce interference fits. The hole is conventionally one grade looser than the shaft, because it is harder to bore precisely than it is to turn precisely.  [Multi-axis CNC turned components] Multi-axis turned components: a shaft and bore pair that has to hold a fit, not just two independent dimensions. Choosing between them follows one rule: use the loosest fit that still does the job, and reserve interference fits for joints that must never separate.
|  Application |  Fit |  Why
|  Removable gear or pulley on a shaft |  H7/k6 transition, assembled with an arbor press |  Positioned with a controlled fit, and removable
|  Locating dowel pin in a hole |  H7/js6 transition |  Symmetric about nominal, so it locates precisely either way
|  Bearing outer race pressed into a housing |  H7/p6 interference |  The joint must never separate
|  Screw joint |  H7/h6 clearance |  Up to 34 µm of clearance at 25 mm, which is fine for a fastener
One detail catches people out on interference fits: the surface finish eats into the interference. Surface peaks are crushed during assembly, so the effective interference is smaller than the calculated value. At Ra 1.6 µm you lose roughly 13 µm across both surfaces, and at Ra 3.2 µm you lose about 25 µm. For H7/p6, whose interference at 25 mm is only 1–35 µm, that loss can consume the whole interference and the part comes loose. Specify Ra 0.8 µm or better, and treat Ra 0.4 µm grinding as the recommended finish for interference-fit surfaces.
## What Each Process Can Actually Hold
A tolerance the process cannot reach is not a tight tolerance, it is a rejection waiting to happen. Here is what each process holds as a standard, and what it holds when you pay for more.
|  Process |  Standard |  Precision |  Ultra-precision |  IT equivalent
|  CNC milling (3-axis) |  ±0.025 mm |  ±0.005 mm |  ±0.002 mm |  IT8 → IT5 → IT3
|  CNC milling (5-axis) |  ±0.010 mm |  ±0.005 mm |  ±0.002 mm |  IT7 → IT5 → IT3
|  CNC turning |  ±0.025 mm |  ±0.005 mm |  ±0.002 mm |  IT8 → IT5 → IT3
|  Swiss-type turning |  ±0.010 mm |  ±0.005 mm |  ±0.002 mm |  IT7 → IT5 → IT3
|  Surface grinding |  ±0.005 mm |  ±0.002 mm |  ±0.001 mm |  IT5 → IT3 → IT2
|  Jig boring |  ±0.010 mm |  ±0.005 mm |  ±0.002 mm |  IT7 → IT5 → IT3
|  Wire EDM |  ±0.010 mm |  ±0.003 mm |  ±0.001 mm |  IT7 → IT4 → IT2
|  Sinker EDM |  ±0.015 mm |  ±0.005 mm |  ±0.002 mm |  IT8 → IT5 → IT3
The IT grade scale is the common language between a drawing and a shop floor, and it is worth reading directly.
|  IT grade |  Tolerance at 50–80 mm |  Practical meaning
|  IT5 |  13 µm |  Gauge manufacturing
|  IT6 |  19 µm |  Precision machining
|  IT7 |  30 µm |  Precision fits for bearings and shafts
|  IT8 |  46 µm |  General precision machining
|  IT9 |  74 µm |  General machining, the ISO 2768-m equivalent
|  IT10 |  120 µm |  Medium precision
|  IT11 |  190 µm |  Loose machining
 [Bar chart of IT grade tolerance bands at the 50–80 mm nominal size range]  [CMM inspection of a CNC machined part] IT grade tolerance bands at 50–80 mm: IT5 is 13 µm, IT7 is 30 µm, IT9 is 74 µm and IT11 is 190 µm. CMM inspection: verifying the stack means measuring the features that carry the tolerance, not sampling the easy ones.
## How to Fix the Stack Before It Reaches the Shop
The fix is a short process, and it belongs before the drawing is released rather than after the first article arrives. 1- List every dimension in the assembly chain, in order, with its tolerance.
1- Run the worst-case stack: add the tolerances.
1- Compare the result with the requirement the assembly has to meet.
1- Where it fails, choose deliberately: tighten a tolerance, add a shim, or redesign the chain.
1- Put ISO 2768-mK in the title block for everything that is not called out individually.
1- Specify fits directly with the H7/k6 notation instead of two separate ± tolerances.
1- Check each tight tolerance against the process table, and confirm the wall can hold it.
1- State the surface finish on interference fits.
The three questions that catch almost everything are simple: what is the tightest tolerance in the chain, which dimension produces it, and can the process actually hold it. If a part did not fit, the answer is usually in one of those three, and it was on the drawing before the metal was cut.
## Sources
Every number on this page comes from our engineering wiki. - [Tolerance Design ](https://www.sinbo-machining.com/wiki/dfm/tolerance-design/)
- [Geometric Dimensioning & Tolerancing (GD&T) ](https://www.sinbo-machining.com/wiki/tolerances/gdt/)

## Frequently Asked Questions
Run the worst-case stack first — it is the only method that guarantees fit on every unit — then use the root-sum-square method for volume production. The example is three plates at 10.0 ±0.1 mm: worst case sums to ±0.3 mm, giving a nominal 30.0 mm and a range of 29.7 – 30.3 mm, while RSS gives ±0.173 mm and a range of 29.83 – 30.17 mm. If the assembly must hold 30.0 ±0.15 mm, the worst-case result fails because 0.3 is greater than 0.15, and RSS does not rescue you since some units still hit worst case. Fix it by tightening a tolerance, adding a shim, or redesigning. The difference is where the shaft sits relative to the hole. In a clearance fit the shaft is always smaller than the hole, so the parts assemble by hand and can move relative to each other. In a transition fit the result depends on where the actual hole and shaft fall inside their tolerance bands, so you may get either a small clearance or a small interference. In an interference fit the shaft is always larger than the hole, and assembly needs a press or thermal methods. Transition fits cost 15–30% more than clearance fits because both hole and shaft need tighter control, and interference fits cost the most. The system is built on the ISO 286 hole basis. The uppercase H means the hole: its fundamental deviation is zero, so the hole can only be equal to or larger than nominal. The lowercase g is the shaft. Letters a–h produce clearance fits, js–n produce transition fits, and p–zc produce interference fits. The numbers are the IT grades: IT7 on the hole gives +21 / 0 µm at 25 mm, and IT6 on the shaft gives -7 / -20 µm, so the shaft can never exceed the hole. The hole is conventionally one grade looser because it is harder to bore precisely than to turn precisely. Put ISO 2768-m in the title block as the default, and add a second letter only if you want the general geometrical tolerances to apply too. The letter before the hyphen is the linear class: f for precision work, priced at +15–30% above medium, m for standard CNC, c for sheet metal and structural weldments at -10–20% below medium, and v for welded structures and rough castings at -20–35%. The letter after the hyphen sets the geometrical class, so ISO 2768-mK means linear class m plus geometrical class K. Leave that second letter off and the standard specifies no geometrical tolerances at all.
## Related Articles
[What Is DFM in CNC Machining? A Buyer's Guide Read more → ](https://www.sinbo-machining.com/blog/dfm-guide/)[CNC Machining Services Read more → ](https://www.sinbo-machining.com/services/cnc-machining/)[Quality Assurance Services Read more → ](https://www.sinbo-machining.com/services/quality-assurance/)#tolerance #ISO 2768 #fits #GD&T #CNC machining [Back to Blog ](https://www.sinbo-machining.com/blog/)
## Send Us the Drawing and the Assembly
Our engineers will run the tolerance stack for you and tell you which dimension has to change before anything is cut. [Get Quote ](https://www.sinbo-machining.com/quote/)[Contact Us ](https://www.sinbo-machining.com/contact/)
