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 type | MMC condition | LMC 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
| Modifier | Symbol | Meaning | When tolerance applies |
|---|---|---|---|
| MMC | Ⓓ (circled M) | Geometric tolerance applies at MMC size | Tolerance grows as feature deviates from MMC (bonus tolerance) |
| LMC | Ⓛ (circled L) | Geometric tolerance applies at LMC size | Tolerance grows as feature deviates from LMC (rare; used for wall thickness control) |
| RFS | (no symbol) | Regardless of Feature Size | Geometric 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 size | Bonus tolerance | Total position tolerance allowed |
|---|---|---|
| ⌀10.0 (at MMC) | 0.00 | ⌀0.15 |
| ⌀10.1 | 0.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.
| Type | Appearance | Tolerance |
|---|---|---|
| Regular dimension | 50 ±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:
- Upper line (pattern-locating tolerance): controls the whole pattern's location relative to datums — usually looser.
- Lower line (feature-relating tolerance): controls hole-to-hole spacing within the pattern — usually tighter.
How This Affects CNC Machining
Programming implications:
- When drilling holes with a position Ⓓ callout, you don't need to hit perfect nominal — the MMC bonus tolerance gives you room. But you must control the hole size (drill reamer size) to maximize bonus.
- If you're at the MMC limit (hole at smallest size), you have zero bonus — program to true position accurately.
- If you deliberately drill slightly larger (within size tolerance), you gain position tolerance — useful when the machine can't hold tight location.
- For inspection: CMM programs must apply MMC bonus tolerance when evaluating position. Measuring at nominal without bonus will over-reject parts.
Quick Decision Guide
| Drawing callout | What 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 C | MMC — if hole is oversize, you get bonus tolerance. Check actual hole size before condemning. |
| ◉ ⌀0.1 Ⓛ A B C | LMC — rare. Used to control minimum wall thickness. Bonus when hole is undersize. |
| ⌈25⌉ in a box | Basic 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.