GD&T July 3, 2026 9 min read

GD&T bonus tolerance and MMC, explained with worked examples

By Rajadurai R — Founder, 14 years plant-head experience

A supplier once called me convinced our incoming inspection was wrong. His hole was measured at position 0.35 mm off, the drawing allowed only 0.25 mm, yet his own report showed the part as good. Both of us were right — he had bonus tolerance on his side, and neither report had accounted for it clearly. That single misunderstanding held up a shipment for two days.

Bonus tolerance is one of the most useful ideas in GD&T and one of the most misread. Here is exactly what it is, when it applies, and how to inspect it — with real numbers you can follow.

What is maximum material condition (MMC)?

Maximum material condition is the state of a feature when it contains the most material within its size limits. For a hole (an internal feature), MMC is its smallest allowed diameter, because a smaller hole leaves more material. For a pin or shaft (an external feature), MMC is its largest allowed diameter. Least material condition (LMC) is the opposite extreme.

MMC matters because it is the worst case for assembly. If a hole is at its smallest and a mating pin is at its largest, that is the tightest the two parts will ever fit. GD&T uses this worst case to set the geometric control, then rewards you when the real part is not at that worst case.

What is bonus tolerance?

Bonus tolerance is extra position (or orientation) tolerance you earn when a feature departs from MMC toward LMC. The rule is simple:

Bonus tolerance = the difference between the feature's actual mating size and its MMC size. Add that bonus to the geometric tolerance stated in the feature control frame.

The logic is physical, not a loophole. When a hole is made larger than its smallest allowed size, that extra clearance can absorb more position error and the parts still assemble. GD&T lets the tolerance grow by exactly the amount of that extra clearance, so a part that will clearly function is not scrapped on paper.

Reading the feature control frame

Bonus tolerance is only available when the maximum material condition modifier — the circled M — appears after the tolerance value in the feature control frame. A frame reading position, diameter 0.25, circled M, referencing datums A, B, C tells you three things: the characteristic is position, the tolerance zone is a 0.25 mm diameter cylinder at MMC, and because of the circled M, that zone grows as the hole grows. If the frame has no modifier, it defaults to regardless of feature size (RFS) and no bonus is allowed. To go deeper on how these frames are built, see our feature control frame guide and how the datum reference frame locks the part down first.

Worked example: a clearance hole under MMC

Take a mounting hole specified as diameter 10.0 to 10.3 mm, with position diameter 0.25 mm at MMC to datums A, B, C.

Now inspect three real parts and calculate the allowable position for each:

Actual hole sizeDeparture from MMCBonusTotal position allowed
10.00 mm0.000.000.25 mm
10.15 mm0.150.150.40 mm
10.30 mm (LMC)0.300.300.55 mm

This is exactly what tripped up the supplier at the start. His hole measured 10.30 mm and sat 0.35 mm off true position. At MMC the limit is 0.25 mm, so it looks like a reject — but the 0.30 mm departure earns 0.30 mm of bonus, lifting the limit to 0.55 mm. At 0.35 mm actual, the part is comfortably good.

Virtual condition: the boundary that never changes

Bonus tolerance can feel like the tolerance is moving around, but there is one number that stays fixed: the virtual condition. For an internal feature at MMC, virtual condition = MMC size minus the geometric tolerance. In our example that is 10.0 − 0.25 = 9.75 mm. No matter how the hole size and position trade off, a 9.75 mm functional gauge pin will always pass a good part. That is why hard gauging works so well with MMC callouts — a single fixed-size gauge checks size and position together.

When bonus tolerance does and does not apply

Common mistakes engineers make

  1. Claiming bonus with no modifier. No circled M, no bonus. RFS is the default under ASME Y14.5-2018.
  2. Using the size tolerance as the bonus. Bonus is the departure of the actual mating size from MMC, not the full size band.
  3. Adding bonus from the wrong datum. Datum features referenced at MMC can grant a separate datum shift — that is not the same as feature bonus.
  4. Forgetting to record the actual size. Without the measured size on the report, no one can verify the bonus. Size and position must travel together.

How CadNexa keeps bonus tolerance traceable

The reason bonus disputes happen is that the size and the position live in different rows, or different documents. CadNexa's auto-ballooning reads the feature control frame straight off the PDF with Smart Detect and Box+Balloon OCR, so the position callout, its MMC modifier, and the paired diameter are numbered together and exported to one inspection sheet. When the inspector types the actual size, the bonus is obvious on the same line — no more two-day standoffs over a good part.

Balloon your GD&T drawings in minutes

Capture every feature control frame, size and datum in one inspection sheet — free.

Try CadNexa Free →

For more foundational GD&T, start with our plain-English GD&T guide, or browse every tutorial in the CadNexa learning center.

Frequently asked questions

Does bonus tolerance make a part easier or harder to pass?

Easier. Bonus only ever adds tolerance. It never tightens the requirement, so a correctly calculated bonus can rescue a part that fails the stated position value but still assembles and functions.

Can you get bonus tolerance without the MMC symbol?

No. Bonus tolerance requires a material condition modifier — the circled M for MMC or circled L for LMC — on a feature of size. Without it, the control is regardless of feature size and the tolerance stays fixed.

What is the difference between bonus tolerance and datum shift?

Bonus tolerance comes from the toleranced feature departing from MMC. Datum shift comes from a datum feature of size referenced at MMC having clearance in the fixture. They can both be present on one callout and are calculated separately.

How do I inspect an MMC position callout on a CMM?

Measure the actual mating size, compute the bonus as the departure from MMC, add it to the stated tolerance, then compare the measured true-position value against that adjusted limit. Many CMM packages do this automatically once you enter the modifier; a functional gauge at virtual condition checks the same thing in one pass.