Virtual condition is the fixed, worst-case boundary a feature of size creates when its size limit and its geometric tolerance act together. It applies only when the tolerance carries an MMC or LMC modifier. For an external feature such as a pin at MMC, it equals the MMC size plus the geometric tolerance. For an internal feature such as a hole at MMC, it equals the MMC size minus the geometric tolerance. eFunda gives the same two formulas. This guide shows how to calculate it, how it differs from resultant condition, and where inspection teams most often get it wrong.
TL;DR
- Virtual condition is a constant boundary, the same for every produced size of the feature. It is built from MMC size and the stated geometric tolerance.
- External feature: MMC + tolerance. Internal feature: MMC − tolerance. With an LMC modifier, start from the LMC size instead.
- If a feature is controlled at RFS (no modifier), it has no virtual condition, and any report that shows one is wrong.
- Resultant condition is the opposite extreme: the boundary at the other end of the size range, including all bonus tolerance.
- Verify by function: a functional gage or CMM software checks the boundary, and the bonus tolerance explains why parts that look off-nominal can still pass.
Table of Contents
- What virtual condition means
- The formula for MMC and LMC
- Worked example: a pin and a hole
- Resultant condition: the other boundary
- When no virtual condition exists
- From boundary to functional gage
- Inspecting virtual condition step by step
- Our perspective
- Keeping the numbers traceable in reports
- FAQ
- Sources
What virtual condition means
Think of virtual condition as the envelope that decides whether two parts will assemble in the worst case. A feature's size, its position error and its orientation error all push its surface toward the mating part. Virtual condition collects those effects into one boundary in space. The DatumLab guide describes it as the single boundary that gathers everything a feature does.
The practical consequence is simple. If a pin stays inside the hole's virtual condition boundary, and the hole stays outside the pin's, assembly is assured. You do not need to memorize every size and position combination. You need the boundary.
Two points make the concept easy to apply:
- The boundary is perfectly formed and located relative to its datum reference frame. It is theoretical, not a measured surface.
- It does not change with the produced size of the part. A hole made large and a hole made small both respect the same boundary.
The Quality Magazine GD&T resource states the same idea: under the S or M modifiers, the virtual condition is a fixed in-space boundary produced by the combined effects of size and tolerance.
The formula for MMC and LMC
The formula depends on two things: whether the feature is external or internal, and which material condition modifier the tolerance uses.
| Feature | Modifier | Virtual condition |
|---|---|---|
| External (pin, boss, shaft) | MMC | MMC size + geometric tolerance |
| Internal (hole, slot, bore) | MMC | MMC size − geometric tolerance |
| Internal (hole) | LMC | LMC size + geometric tolerance |
| External (pin, boss) | LMC | LMC size − geometric tolerance |
The first two rows match the eFunda formulas and the GD&T Basics boss and bore example. The LMC rows follow the same logic in reverse. A textbook treatment of LMC on a hole describes the virtual condition as the LMC hole size plus the position tolerance.
A quick memory aid: at MMC, the feature has the most material, so the geometric tolerance eats into clearance. An external feature grows by the tolerance. An internal feature shrinks by it.
Reading the circled M
The circled M in a feature control frame is the MMC modifier. It tells you the stated tolerance applies only when the feature is produced at MMC. As the part departs from MMC toward LMC, it earns bonus tolerance equal to the difference between actual size and MMC size, as GD&T Basics explains. The circled L works the same way from the LMC side.
Worked example: a pin and a hole
The numbers below are illustrative, not from any specific drawing. They show the full calculation in the order an inspector would follow.
The hole is specified as Ø0.500 to Ø0.510, with a position tolerance of Ø0.005 at MMC. The pin is specified as Ø0.480 to Ø0.490, with a position tolerance of Ø0.003 at MMC.
- Find the hole's MMC. For an internal feature, MMC is the smallest size: 0.500.
- Subtract the position tolerance: 0.500 − 0.005 = 0.495. The hole's virtual condition is Ø0.495.
- Find the pin's MMC. For an external feature, MMC is the largest size: 0.490.
- Add the position tolerance: 0.490 + 0.003 = 0.493. The pin's virtual condition is Ø0.493.
- Compare. A 0.493 pin boundary fits inside a 0.495 hole boundary, leaving 0.002 of guaranteed diametral clearance in the worst case.
If the pin boundary had come out at 0.496, the design would fail on paper before a single part was cut. That is the value of the calculation: you find assembly problems at the drawing stage.
Where bonus tolerance enters
Now suppose the produced hole measures Ø0.508. It has departed from MMC by 0.008, so the allowable position tolerance becomes 0.005 + 0.008 = Ø0.013. A hole at that size with a position error of 0.011 would be rejected under a plus and minus mindset but is fully acceptable under the MMC specification, because it still respects the 0.495 boundary.

This is also how bonus tolerance cuts needless rejections. Manufacturers gain room when parts depart from MMC, and ASME Y14.43 is the standard that covers gages and fixtures verifying these boundaries. For more on how bonus is calculated, and why no modifier means zero bonus, see our guide on bonus tolerance and CMM verification. The vocabulary of material conditions is also covered in a plain-language precision engineering terminology overview.
Resultant condition: the other boundary
Virtual condition is the worst case for assembly. Resultant condition is the worst case in the other direction. It sits at the opposite end of the size range and includes the full geometric tolerance plus all the bonus tolerance available. Engineers Edge describes it as the boundary relevant when features must sit beside a part rather than inside it, such as walls, ribs or neighboring holes.
Continue the hole example. The hole's LMC is 0.510. The maximum bonus is 0.510 − 0.500 = 0.010, so the largest position tolerance is 0.005 + 0.010 = 0.015.
- Virtual condition (inner boundary): 0.500 − 0.005 = Ø0.495.
- Resultant condition (outer boundary): 0.510 + 0.015 = Ø0.525.
A designer uses the resultant boundary to check wall thickness. If a neighboring edge sits 0.020 from the hole's nominal center, the resultant condition tells you whether any wall remains in the worst case.
| Virtual condition | Resultant condition | |
|---|---|---|
| Purpose | Assembly clearance | Remaining wall or edge distance |
| Built from | MMC size and stated tolerance | LMC size, stated tolerance and full bonus |
| Changes with produced size | No | No |
| Typical user | Designer, gage maker | Designer, stress analyst |
People also ask about the difference between the two. The short answer: virtual is the MMC-side boundary, resultant is the LMC-side boundary, and both are fixed once the drawing is released.
When no virtual condition exists
This is the trap most worth knowing. Virtual condition exists only when an MMC or LMC modifier is applied. DatumLab notes that when no material condition is specified, no fixed virtual boundary exists, and that some software reports one anyway. A boundary that tracks the produced size is not a virtual condition.
In ASME Y14.5, RFS is the default for a feature of size tolerance unless a modifier is shown. So when you open a drawing and see a position tolerance with no circled M or L, the right answer on virtual condition is "none". The same discussion appears in the GD&T Basics article on RFS.
Why this matters for inspection:
- A report that lists a virtual condition for an RFS feature may lead a team to accept parts that do not meet the drawing.
- It can equally lead to rejecting good parts against a boundary that was never specified.
- Either error damages traceability, because the report no longer matches the requirement it claims to prove.
From boundary to functional gage
A functional gage is the physical form of a virtual condition boundary. ASME Y14.43 presents the design practices for dimensioning and tolerancing gages and fixtures used to verify MMC envelopes and virtual condition boundaries. Gage tolerance policy leans toward rejecting a marginal part rather than accepting one that violates the boundary.
That has a direct effect on how your team reads results. A part that passes a functional gage has not violated the boundary. A part that fails by a gage's own tolerance may still be good, which is a reason to confirm with a CMM when a decision depends on a few ten-thousandths.
Gage or CMM?
- A gage is fast and gives pass or fail against the boundary. It does not give numbers for trend analysis.
- A CMM gives position error and size, from which bonus tolerance and the boundary check can be derived, and data you can chart over a production run.
- Many shops use both: a gage at the machine for sorting, a CMM for first article and periodic verification.
Datums matter as well, because virtual condition is located relative to the datum reference frame. If the inspection setup does not match the datums on the drawing, the boundary is checked in the wrong place. Our guides on GD&T datums and false rejects, datum reference frames and datum selection for inspection walk through the setup. The research also stresses the distinction between datum feature, datum and datum feature simulator: confusing them, according to the Quality Magazine resource, leads to flawed inspection setups.
Inspecting virtual condition step by step
Here is a sequence that holds up in a first article or routine inspection.
- Read the feature control frame. Confirm whether the tolerance has an M, an L or no modifier.
- If there is no modifier, record that no virtual condition applies and check the tolerance at its stated value.
- Identify the feature as internal or external, and note the MMC or LMC size from the size tolerance.
- Calculate the virtual condition with the table above and record it on the report.
- Measure the produced size and position, relative to the correct datum reference frame.
- Calculate the bonus: the absolute difference between produced size and the controlling material condition size.
- Add the bonus to the stated tolerance and compare it with the measured position error.
- Record the result with the evidence: the measured values, the allowable value and the verdict.
Steps 6 and 7 are where manual spreadsheets break down. A formula copied to the wrong row, or a bonus applied to a feature with no modifier, turns a report into a liability. Position tolerance interpretation is covered in more depth in our position tolerance guide for engineers and inspectors, and the choice between modifiers in MMC vs LMC: choose by function.
Common mistakes
- Applying virtual condition to RFS features.
- Using the wrong sign: adding the tolerance for a hole at MMC instead of subtracting.
- Taking MMC as the nominal size rather than the limit of size.
- Treating virtual condition as an acceptance boundary for position alone. The boundary and the position zone are different things, and a hole can have a position error above the stated value yet remain inside its boundary because of bonus.
- Mixing datum references between drawing and fixture, a problem we describe in why GD&T does not match fixtures.
Our perspective
We build inspection software, so we see where virtual condition goes wrong in practice. It rarely goes wrong in the math. It goes wrong in the handoff between the drawing and the report. A balloon is linked to the wrong characteristic, a modifier is dropped when the callout is retyped, or a bonus is computed for a feature that never had one.
Our view is that the report should carry the requirement and the evidence side by side. That means each ballooned dimension keeps its tolerance and modifier, each measured result is tied to that balloon, and any out-of-tolerance value is flagged against the right limit, not a limit someone remembered. This is the principle behind our measurement wizard and our CMM data import, which we cover in our piece on automated GD&T extraction with traceable evidence.
We also think teams should resist treating virtual condition as a formula to memorize. It is a functional promise: if the boundary is respected, the parts go together. When a report can show that promise was verified, with the datums, the modifiers and the measured values visible, an auditor and an engineer both have what they need.
— Michael Chen
Keeping the numbers traceable in reports
If your team calculates boundaries and bonus by hand, QA-Report can take the repetitive part off the table. You can balloon a drawing, link each dimension to its measured result, import CMM data, and have out-of-tolerance deviations flagged for you, then produce a PDF report for FAI, AS9102 or PPAP submissions. Plans are published on the pricing page: Free at $0 per month, Basic at $49.99 per month and PRO at $149.99 per month, with On-Premise and Enterprise Solutions available for organizations with larger or more sensitive requirements. You can see the full platform on the QA-Report home page.
FAQ
What is virtual condition in GD&T?
It is a constant boundary created by the combined effect of a feature's MMC or LMC size and its geometric tolerance. It represents the worst-case mating condition for the feature. It exists only when a material condition modifier is applied.
What is the difference between virtual and resultant condition?
Virtual condition is the worst-case boundary on the assembly side, built from the MMC size and the stated tolerance. Resultant condition is the worst-case boundary at the opposite extreme, built from LMC size with the full tolerance and bonus added. Designers use the first for fit and the second for wall thickness and edge distance.
Does virtual condition apply at RFS?
No. Without an MMC or LMC modifier there is no fixed boundary tied to a material condition, so no virtual condition exists. If a report shows one for an RFS feature, treat it as an error and check the callout on the drawing.
What does the circled M mean in GD&T?
It is the maximum material condition modifier. The stated geometric tolerance applies when the feature is produced at MMC, and bonus tolerance is added as the feature moves toward LMC.
Do I need a functional gage to check virtual condition?
Not always. A functional gage is the direct physical check of the boundary, and ASME Y14.43 covers how such gages are dimensioned. A CMM can verify size and position, then evaluate the boundary and bonus from the data, which also gives you records for reporting.
Sources
- GDT: 2D Virtual Condition, eFunda
- Virtual condition and resultant condition in GD&T, DatumLab
- Virtual Condition: Does it apply at RFS?, GD&T Basics
- Identical Virtual Conditions for Mating Boss and Bore Features, GD&T Basics
- MMC vs feature size tolerance calculator, Engineers Edge
- Dimensioning and Tolerancing Principles for Gages and Fixtures, ASME Y14.43
- GD&T resource, Quality Magazine
- GD&T: Application and Interpretation, 7th Edition, page 304
