NPDTools · TolStack

Module 1

What Are Tolerances?

Here's the reality of manufacturing: no part is ever made perfectly. Every machine, every tool, every process introduces small variations. A shaft drawn at Ø1.000 in might come off the lathe at 0.9994 or 1.0005.

A tolerance is the amount of variation you're willing to accept on a dimension. It's your way of telling the shop: "I need this to be close to 1.000 in, but here's how much wiggle room you have."

Why does this matter? If you don't specify tolerances, the machinist decides for you. And their definition of "close enough" might not match yours when your pin doesn't fit in the hole.

Let's look at how tolerances are written on a drawing.

Reading a Tolerance Callout

The most common format is bilateral tolerance — a nominal size with equal variation in both directions:

Ø 1.000 ± 0.002

This means the actual part can be anywhere from 0.998 to 1.002 in. Both are acceptable. Anything outside that range gets scrapped or reworked.

The tolerance band is the total range: 1.002 − 0.998 = 0.004 in.

Common mistake: Confusing the tolerance (±0.002) with the tolerance band (0.004). The band is always twice the bilateral value. Check your drawings carefully — some callouts use asymmetric tolerances like +0.004/−0.001.

Your Turn — Calculate Min & Max

A drawing calls out this pin diameter:

Ø 0.990 ± 0.002
in
in
Min = nominal − tolerance. Max = nominal + tolerance.
Module 2

Two Parts, Two Drawings

Now we have a real assembly problem. You've got two parts, each from a different drawing:

Drawing A — The Hole (Housing)

Ø 1.000 ± 0.002

Min: 0.998  |  Max: 1.002 in

Drawing B — The Pin (Shaft)

Ø 0.990 ± 0.002

Min: 0.988  |  Max: 0.992 in

Look at the cross-section on the right. The purple ring is the hole, the blue circle is the pin, and the gap between them is your clearance.

The question every tolerance stack answers: In the worst case — when both parts are at their extreme limits — will this assembly still work?

Think About the Extremes

For a pin-in-hole, the tightest fit happens when:

  • The hole is at its smallest (0.998)
  • The pin is at its largest (0.992)

And the loosest fit happens when:

  • The hole is at its largest (1.002)
  • The pin is at its smallest (0.988)
in
in
Min clearance = smallest hole − largest pin. Max clearance = largest hole − smallest pin.
Module 3

Building a Tolerance Stack

What you just did — calculating worst-case clearance — is the core of a tolerance stack analysis. Let's formalize the process so you can apply it to any assembly, not just a simple two-part problem.

Step 1: Identify the critical gap.
What are you trying to control? In our case, it's the diametral clearance between pin and hole.

Step 2: List every dimension in the chain.
Walk from one side of the gap, through the parts, to the other side. Each dimension that contributes gets listed.

Step 3: Assign direction.
Dimensions that increase the gap are positive (+). Dimensions that decrease the gap are negative (−).

Step 4: Stack them up.

DimensionNominalTolMinMaxDir
Hole Ø 1.000±0.0020.9981.002 +
Pin Ø 0.990±0.0020.9880.992
Clearance 0.010±0.004 0.0060.014
Result: Worst-case minimum clearance = 0.006 in. The pin will ALWAYS fit. This is a clearance fit.

What If the Tolerances Were Tighter?

Let's say the pin tolerance was ±0.004 instead of ±0.002. Now the pin could be as large as 0.994 in.

Worst-case clearance: 0.998 − 0.994 = 0.004 in. Still fits, but barely.

And if the pin nominal was 1.000 ±0.004? Max pin = 1.004. Min clearance = 0.998 − 1.004 = −0.006 in.

Negative clearance = interference. The pin physically cannot fit into the hole at worst case. Parts get scrapped, assembly stops, and someone has a very bad day on the shop floor.

This is exactly why you do a tolerance stack before releasing drawings — not after parts arrive.

in
Min clearance = (hole_nom − hole_tol) − (pin_nom + pin_tol)
Module 4

Position Tolerance — It's Not Just About Size

So far we've only looked at how big the pin and hole are. But there's another problem: where is the hole?

Even if the hole is perfectly sized, if it's drilled 0.008 in off-center, the pin might not fit. This is where GD&T position tolerance comes in.

On a drawing, a position callout looks like this:

Ø 0.008

Position | Ø0.008 tolerance zone | at MMC

This means the center of the hole must fall within a circular zone of Ø0.008 in, centered on the true position from the drawing.

Key insight: Position tolerance is diametral. A Ø0.008 position zone means the center can shift up to 0.004 in in any direction from nominal. This shift directly eats into your clearance.

Adding Position to the Stack

When the hole is off-position, you lose clearance on one side. In a worst-case stack, you subtract the position tolerance from the available clearance.

For a position of Ø0.008, the worst-case shift is 0.004 in radial (half the diametral zone). But since we're doing a diametral stack, we use the full Ø0.008.

DimensionNominalTolWorst MinWorst MaxDir
Hole Ø 1.000±0.0020.9981.002 +
Pin Ø 0.990±0.0020.9880.992
Hole Position 0.000Ø0.008shift up to 0.008
Clearance 0.010 −0.0020.014
Wait — negative clearance? With position tolerance added, worst case is now −0.002 in. At the absolute worst case (smallest hole, biggest pin, max position error), the pin won't fit. But hold on — this is where MMC saves us. Keep going.
Module 5

MMC Bonus Tolerance — Free Real Estate

Remember that Ⓜ symbol in the position callout? That's the Maximum Material Condition (MMC) modifier, and it's your best friend in tolerance stacking.

MMC for a hole = the smallest the hole can be (most material remaining) = 0.998 in

MMC for a pin = the largest the pin can be (most material) = 0.992 in

The MMC rule: The stated position tolerance (Ø0.008) applies when the feature is at MMC. As the feature departs from MMC (hole gets bigger, pin gets smaller), you get bonus tolerance — additional position tolerance equal to the departure.

How Bonus Tolerance Works

If the hole is produced at Ø1.000 (its nominal), that's 0.002 larger than MMC (0.998). You get 0.002 in of bonus added to your position tolerance:

Actual position tolerance = stated (0.008) + bonus (0.002) = Ø0.010

Instead of thinking about size and position separately, MMC lets you combine them into one concept: the Virtual Condition.

Virtual Condition (hole) = MMC − position tol = 0.998 − 0.008 = Ø0.990
Virtual Condition (pin) = MMC + position tol = 0.992 + 0.000 = Ø0.992

Virtual Condition is the worst-case boundary. If the pin's virtual condition is smaller than the hole's virtual condition, the assembly is guaranteed to work regardless of how size and position combine.

Worst-case clearance with MMC: 0.990 − 0.992 = −0.002 in... unless we also put position tolerance on the pin.

In our case, if the pin also has a position of Ø0.004 at MMC:

Pin VC = 0.992 + 0.004 = Ø0.996
Hole VC = 0.998 − 0.008 = Ø0.990
Worst-case clearance = 0.990 − 0.996 = −0.006 in — interference!

Hmm, still doesn't work. The fix? Either loosen the tolerances, increase the nominal gap, or reduce position tolerances. That's what the sandbox is for.

You've Completed the Lessons!

You now understand the building blocks:

  • Bilateral tolerances define the size range of each feature
  • Worst-case stacking answers "will it always assemble?"
  • Position tolerance accounts for location error
  • MMC bonus gives you extra position tolerance as features depart from MMC
Sandbox unlocked! Now you can experiment. Change the numbers, toggle position and MMC, and watch the cross-section update in real time. Try to make the assembly fail — then fix it.
Sandbox Mode

Experiment Freely

Adjust any value below and watch the cross-section and results update live.

Hole (Housing)

Nominal Ø 1.000
Tolerance ± 0.002

Pin (Shaft)

Nominal Ø 0.990
Tolerance ± 0.002

GD&T — Position

Enable position tolerance on hole
Position Ø 0.008
Apply MMC modifier (Ⓜ)
WHAT YOU'RE LOOKING AT — SIDE CUTAWAY PIN HOUSING GAP Cross-section below is looking DOWN into the hole ↓
HOUSING (hatched = material) HOLE Ø1.000 ±0.002 PIN Ø0.990 ±0.002 CLEARANCE (glowing green gap) PIN CROSS-SECTION VIEW