← Back to 05 · Engineering Drawings & GD&T
05.3 · Engineering Drawings & GD&T

MMC, LMC & Bonus Tolerance

This is the most powerful — and most misunderstood — concept in GD&T. MMC (Maximum Material Condition) allows you to get extra tolerance on location when your feature is larger (for a hole) or smaller (for a shaft) than its maximum material size. It means more parts pass inspection without sacrificing assembly. Understanding this will change how you read drawings and how you program holes.

What Does "Maximum Material" Mean?

"Maximum material" = the feature contains the most possible material. Think about it physically:

Feature typeMMC conditionLMC condition
External (shaft, boss)Largest diameter (most material)Smallest diameter (least material)
Internal (hole, slot)Smallest diameter (most material left around hole)Largest diameter (least material left)

Example: a ⌀10 ±0.2 hole.
- MMC size = ⌀9.8 (smallest hole = most material in the part)
- LMC size = ⌀10.2 (largest hole = least material in the part)

Example: a ⌀10 ±0.2 shaft.
- MMC size = ⌀10.2 (largest shaft = most material)
- LMC size = ⌀9.8 (smallest shaft = least material)

The Three Modifiers

ModifierSymbolMeaningWhen tolerance applies
MMCⒹ (circled M)Geometric tolerance applies at MMC sizeTolerance grows as feature deviates from MMC (bonus tolerance)
LMCⓁ (circled L)Geometric tolerance applies at LMC sizeTolerance grows as feature deviates from LMC (rare; used for wall thickness control)
RFS(no symbol)Regardless of Feature SizeGeometric tolerance is the same at every size within the range. Default in older standards.

Modern default: In ASME Y14.5-2009 and later, position tolerances default to MMC for features that are assembled (holes, pins). RFS must be explicitly stated. If you see Ⓓ, bonus tolerance applies.

Bonus Tolerance — How It Works

When a position tolerance is applied at MMC, the actual geometric tolerance grows when the actual feature size deviates from MMC. The extra is called bonus tolerance.

Bonus Tolerance = | Actual Feature Size − MMC Size |

Total Position Tolerance = Specified Tolerance + Bonus Tolerance

Worked example:
Drawing calls out: Hole ⌀10 +0.2/0, position ⌀0.15 Ⓓ relative to datums A|B|C.

Step 1 — Find MMC size:
Hole is internal, so MMC = smallest size = ⌀10.0 (the lower limit).

Step 2 — Check the actual hole size after machining:

Actual hole sizeBonus toleranceTotal position tolerance allowed
⌀10.0 (at MMC)0.00⌀0.15
⌀10.10.10⌀0.25
⌀10.2 (at LMC)0.20⌀0.35

So if you drill the hole a bit oversize (within the ⌀10–10.2 size tolerance), you get extra position tolerance for free. This makes functional sense: a bigger hole is easier to assemble a bolt into, so you can allow more location error.

Virtual Condition

The virtual condition (VC) is the boundary that the mating part cannot violate. It's the effective worst-case size of the feature after considering both size tolerance and geometric tolerance.

External feature (shaft) at MMC:
VC = MMC size + Geometric tolerance (at MMC)

Internal feature (hole) at MMC:
VC = MMC size − Geometric tolerance (at MMC)

Example: Hole ⌀10 +0.2/0, position ⌀0.15 Ⓓ.
MMC = ⌀10.0
VC = 10.0 − 0.15 = ⌀9.85

This means the smallest boundary the hole must provide is ⌀9.85. Any bolt smaller than ⌀9.85 will always assemble, regardless of how the hole drifts within its position tolerance. This is the functional "go" boundary that a go/no-go gauge checks.

Datum Shift

When a datum feature is referenced at MMC, the datum itself can shift within its tolerance zone. This is called datum shift — and it gives you even more effective tolerance.

Example: Datum B is a ⌀8 ±0.1 hole referenced at MMC. When the datum hole is actually ⌀8.1 (larger than MMC of ⌀7.9), the datum feature simulator (the gage pin) can "float" up to 0.2 off nominal. This shift can compensate for position errors in other features — more parts assemble, even if individual holes aren't perfectly located.

Shop floor reality: datum shift is why CMM programs that measure holes at perfect nominal positions can report "out of tolerance" while the parts actually assemble fine. Functional gauges (go/no-go pins) account for MMC and datum shift automatically. CMM programs must be programmed with MMC bonus tolerance calculations to match.

Basic Dimensions

A basic dimension is shown in a rectangle (e.g., ⌈50⌉) and is theoretically exact. It has no tolerance of its own — all the tolerance comes from the GD&T control frame. If you see a dimension in a rectangle, it's the "true position" from which position tolerance is measured.

TypeAppearanceTolerance
Regular dimension50 ±0.1±0.1 on the dimension itself
Basic dimension⌈50⌉None — controlled by GD&T position/profile tolerance

Composite Position Tolerancing

On complex hole patterns (e.g., a bolt circle with multiple hole groups), a single position tolerance may be too loose for hole-to-hole spacing but too tight for pattern-to-datum location. Composite position splits this into two zones:

◉ 0.30 A B C 0.10 A B Upper: pattern location vs datums (looser) Lower: hole-to-hole within pattern (tighter)

How This Affects CNC Machining

Programming implications:

Quick Decision Guide

Drawing calloutWhat it means for you
◉ ⌀0.1 A B C (no Ⓓ)RFS — position tolerance is fixed at any hole size. Program accurately.
◉ ⌀0.1 Ⓓ A B CMMC — if hole is oversize, you get bonus tolerance. Check actual hole size before condemning.
◉ ⌀0.1 Ⓛ A B CLMC — rare. Used to control minimum wall thickness. Bonus when hole is undersize.
⌈25⌉ in a boxBasic dimension — don't dimension from it directly; it's the true position.

Related tools: see how tolerance stacks up across multiple features — Tolerance Stack-Up Calculator. For fits and hole/shaft relationships — Basic Fit Reference.