A Bavarian automation builder came to us with a 260 x 160 x 20 mm aluminum manifold plate that two shops had already tried and one had already failed. It carried eight Ø6.5 clearance holes that had to drop over M6 shoulder pins on the mating valve block. Every plate they received passed their incoming check: each hole centre sat inside ±0.10 mm of nominal on both X and Y, measured from the two datum edges. Roughly one plate in six still would not drop onto the pins.
We did not touch the program, the fixture or the machine. With the customer's agreement, we replaced the coordinate dimensions with a Ø0.25 position tolerance at MMC against a three-plane datum reference frame, and the plates started assembling at 100%. The parts did not get more accurate. The drawing stopped accepting the parts that never should have passed.
*(Composite example; details changed.)*
That is what a position tolerance does. The trade still calls it GD&T true position, which is what ASME Y14.5 named it before the 2009 edition, and it is the single most misunderstood line on a machine drawing. It is not a tighter version of ±0.10. It is a different shape of tolerance zone, a different question about the part, and when you add the material condition modifier it becomes a tolerance that grows as the part gets easier to assemble. We are going to walk through the whole thing the way we actually use it on the floor: what the zone is, what MMC and bonus tolerance really hand you, how virtual condition decides whether your assembly fits, why most position arguments are really datum arguments, and how we measure the number on a CMM so that two shops stop reporting two different answers.
What true position actually controls
True position is a geometric tolerance that defines a zone around the theoretically exact location of a feature. That exact location comes from basic dimensions: the numbers in boxes on the drawing, which carry no tolerance of their own. The tolerance lives entirely in the feature control frame.
For a hole, the zone is a cylinder of diameter *t*, centred on true position, perpendicular to the datum reference frame. The axis of the produced hole has to fall entirely inside that cylinder. Not the centre point at the top face, not the centre point at the bottom. The whole axis.
Three things follow from that, and each one matters more than it looks:
- The zone is round, not square. Every direction gets the same allowance, so a round pin in a round hole gets a fair test.
- The zone follows the axis, so a tilted hole consumes it even when the visible centre is dead on nominal.
- The zone is located from datums, not from the edge you happened to dimension. This is where most disputes start, and we come back to it below.
A complete position callout carries the geometric characteristic symbol (a crosshair in a circle), a tolerance value with a diameter symbol in front of it, and then whatever the function actually needs: a material condition modifier, and datum references in order of precedence. "Ø0.25 (M) A B C" reads as: the axis must sit inside a cylinder of 0.25 mm diameter, at maximum material condition, located from A then B then C. The modifier and the datums are optional in the sense that a legal callout can omit them, and both get omitted wrongly far more often than they get applied. Drop the diameter symbol and you have specified a 0.25 mm wide zone between two parallel planes rather than a cylinder, which is a genuine error we see on incoming drawings roughly once a month.
Coordinate tolerancing versus true position: the square zone nobody budgets for
Here is the comparison that converts most engineers.
A coordinate dimension of ±0.10 in X and ±0.10 in Y produces a square tolerance zone, 0.20 mm on a side. Its area is 0.20 x 0.20 = 0.040 mm². Now consider the corner of that square: dx = 0.10, dy = 0.10. The radial displacement from the true position is sqrt(0.10² + 0.10²) = 0.141 mm. Both coordinates are in tolerance, so the part passes, but the hole centre is 0.141 mm away from where the pin is waiting, which is 41% further out than the ±0.10 the designer had in mind.
The smallest round zone that contains that square has a diameter of 2 x 0.1414 = 0.283 mm, and its area is π x 0.1414² = 0.0628 mm². That is 57% more area than the square, for the same worst-case corner. This is the origin of the number everyone quotes, and it is real.
| Coordinate ±0.10 | True position Ø0.283 | True position Ø0.25 | |
|---|---|---|---|
| Zone shape | Square, 0.20 x 0.20 | Round, Ø0.283 | Round, Ø0.25 |
| Zone area | 0.0400 mm² | 0.0628 mm² | 0.0491 mm² |
| Max radial displacement accepted | 0.141 mm (corner only) | 0.141 mm (any direction) | 0.125 mm (any direction) |
| Accepts a 0.141 mm displaced hole | Yes | Yes | No |
| Constant allowance in every direction | No | Yes | Yes |
Two conclusions, and they are not in conflict. If you convert a coordinate callout to position and want to reject nothing that used to pass, use the circumscribed diameter (0.283 in this example) and you gain 57% of area for free. If instead your assembly was failing, the corner of that square is exactly where the failures were, and a round zone smaller than the circumscribed circle removes them without touching the parts that were genuinely fine. We recommended Ø0.25 on the manifold plate for the second reason, and it cost the customer nothing in scrap, for a reason explained in the next section.
Material condition: MMC, LMC and the bonus tolerance you are giving away
The modifier in the feature control frame decides whether the position tolerance is fixed or whether it grows as the feature is produced away from its worst case.
| Modifier | Name | What it means | Position tolerance behaviour |
|---|---|---|---|
| (M) | Maximum material condition | Feature at its heaviest: smallest hole, largest pin | Grows by the departure from MMC |
| (L) | Least material condition | Feature at its lightest: largest hole, smallest pin | Grows by the departure from LMC |
| none | Regardless of feature size, or material size (RFS before Y14.5-2018, RMS in the current edition) | Applies at every produced size | Fixed, no bonus |
For a hole of Ø6.5 ±0.10, the size range is 6.40 to 6.60 mm. One note for anyone reading ISO drawings alongside ASME ones: what this guide calls virtual condition, the ISO GPS system calls maximum material virtual size. MMC is the smallest hole, 6.40 mm, because that is where the wall has the most material left. Specify position Ø0.25 at MMC and you get this:
| Produced hole size | Departure from MMC (6.40) | Bonus | Effective position tolerance |
|---|---|---|---|
| 6.40 mm (MMC) | 0.00 | 0.00 | Ø0.25 |
| 6.45 mm | 0.05 | 0.05 | Ø0.30 |
| 6.50 mm | 0.10 | 0.10 | Ø0.35 |
| 6.55 mm | 0.15 | 0.15 | Ø0.40 |
| 6.60 mm (LMC) | 0.20 | 0.20 | Ø0.45 |
Bonus tolerance is not a loophole. It is physically correct, and this is the part that finally made sense to that Bavarian customer. A bolt-through hole that comes out 0.15 mm larger than its minimum already gives the fastener 0.15 mm more clearance, so allowing it 0.15 mm more location error costs the assembly nothing. The two are the same slack. Coordinate tolerancing, by contrast, applies the same ±0.10 to a 6.40 hole and a 6.60 hole, which means it is simultaneously too loose on the tight hole and too tight on the loose one.
That is why our scrap fell after we tightened the number to Ø0.25. Take a hole produced at 6.50 with 0.12 mm of radial offset: the position deviation is 2 x 0.12 = Ø0.24, and the old ±0.10 rule rejected it on X. Its Ø0.10 of bonus lifts the allowance to Ø0.35, so it ships. Now take a hole at 6.40 with the same 0.141 mm radial offset, or Ø0.283 of position: the old rule passed it, the assembly jammed on it, and under Ø0.25 it fails, which is correct, because the smallest hole sitting at the largest offset is exactly the combination that does not fit.
When do we argue against the modifier? On features where fit rather than clearance governs the function, and therefore often on press fits. A threaded hole is not automatically RFS either, despite what most guides repeat: we choose from the assembly rather than from the feature type, and when the fastener envelope and the required assembly clearance justify it, a tapped hole can legitimately carry MMC together with a projected tolerance zone. LMC has its place too, mainly where minimum wall thickness is the governing risk, but it turns up on perhaps one drawing in fifty that crosses our desk.
Virtual condition: the one number that decides whether it assembles
Bonus tolerance is the reason you cannot read a position callout without computing the virtual condition. Virtual condition is the worst-case boundary the feature can never violate, and for an internal feature such as a hole it is:
VC = MMC of the hole - the position tolerance = 6.40 - 0.25 = Ø6.15 mm
That Ø6.15 is the diameter of the largest pin that is guaranteed to pass through the hole when the hole sits at its worst permitted position. It is the number a functional go gauge is built to, and it is the number that tells you whether the assembly works, because it combines size error and location error into one boundary. The position tolerance alone does not tell you that. The size tolerance alone does not tell you that.
On the manifold plate: shoulder pins at Ø6.0. VC of Ø6.15 guarantees 0.15 mm of diametral clearance at the worst possible combination of a small hole and an off-position hole. That is the whole design question, answered in one number, before anyone cuts metal, and on prototype runs it is the difference between one iteration and three. If the customer had needed Ø6.2 pins, the Ø0.25 at MMC callout would have been impossible at 6.40 MMC and we would have had the conversation at the quote stage, which is where it belongs.
Zero positional tolerance at MMC, and when we recommend it
There is a version of the same callout that surprises people the first time they see it: position Ø0 at MMC.
| Callout | Hole at 6.40 (MMC) | Hole at 6.55 | Hole at 6.60 (LMC) | Virtual condition |
|---|---|---|---|---|
| Ø0.25 at MMC | Ø0.25 allowed | Ø0.40 allowed | Ø0.45 allowed | Ø6.15 |
| Ø0 at MMC | Ø0.00 allowed | Ø0.15 allowed | Ø0.20 allowed | Ø6.40 |
Read that carefully. The second row lifts the guaranteed clearance, raising the virtual condition from Ø6.15 to Ø6.40. It pays for that by being stricter everywhere else: at a produced size of 6.60 mm it permits Ø0.20 of position, against Ø0.45 in the first row. Nothing here is free. That trade is exactly right for bolt-through clearance holes on a fixed fastener size, because what you want to maximise is the guaranteed hole, and what you can afford to give up is location precision on the holes that already came out oversized.
We recommend it when the fastener envelope and the required assembly clearance justify moving all of the available location tolerance into bonus tolerance, and we flag it in the DFM review because it looks like a typo to anyone who has not met it before. We do not recommend it when the hole also has to seal, locate a dowel, or carry a thread.
Datums: why most position disputes are really datum disputes
If you take one operational point away from this guide, take this one. When two shops report different true position numbers for the same part, it is almost never the measurement. It is the datum reference frame.
A datum reference frame is a coordinate system built from the actual part, in a fixed order of precedence:
- Primary datum A constrains three degrees of freedom. Usually a flat face, simulated by a surface plate contacting its high points.
- Secondary datum B constrains two more. Usually a long edge or a second face, simulated by a plane perpendicular to A.
- Tertiary datum C constrains the last one. Usually a short edge or a face, arresting the slide along B.
Change the order and you change every number on the report. Choose a datum the part does not actually locate on in service and you have measured something irrelevant. We see drawings where the primary datum is a face that is machined in a later operation than the holes it controls, which means the tolerance is being applied to a relationship that the process cannot see.
There is a second trap: datum feature shift. If a datum reference carries the MMB modifier (maximum material boundary, the datum equivalent of MMC) and the datum feature is produced away from that boundary, the datum simulator no longer fills it and the part is free to move. A datum hole of Ø10 ±0.05 has an MMB of 9.95. Produce it at 10.02 and the simulator leaves 0.07 mm of diametral clearance, so the part is free to move by up to 0.035 mm in any one radial direction, which can surface as up to Ø0.07 in a diametral position result. That is a real, legal, intended effect, and it is also why a report generated with a hard gauge can disagree with a report generated by a CMM that mathematically best-fits the datum.
Projected tolerance zones: the tapped-hole trap
A position tolerance applies to the axis of the feature over its own length. For a tapped hole in a 20 mm plate, that is 20 mm of thread. The screw that goes into it, however, sticks out 35 mm and then has to find a clearance hole in the next part up the stack. Nothing in a standard position callout controls where the screw tip ends up.
The fix is the projected tolerance zone modifier, a P in a circle placed after the tolerance value, followed by the projection height. Specify Ø0.25 projected 25 mm and the tolerance zone extends 25 mm above the surface, which is where the fastener actually lives.
The arithmetic is unkind if you skip it. A tapped hole whose axis leans by 0.5° is perfectly in tolerance over its own 20 mm of thread, but 25 mm above the surface that lean has added 25 x tan(0.5°) = 0.22 mm of lateral offset, on top of whatever the position error already was. Assemblies bind, and nobody can find the out-of-tolerance feature, because no feature is out of tolerance.
We recommend a projected tolerance zone on every drawing where a threaded hole receives a stud, a long screw or a dowel pin. It is one symbol and it prevents a class of failure that looks like a mystery from the assembly line.
Composite position: pattern location versus feature-to-feature
A single-segment position callout does two jobs at once and is often too strict at one of them. It controls where the whole pattern sits relative to the datums, and it controls how the holes sit relative to each other. Composite position splits them into two segments in one frame:
- The upper segment is the pattern-locating tolerance zone framework. It locates the pattern to the datums and is usually the looser of the two, because the pattern's absolute position rarely matters as much as its internal spacing.
- The lower segment is the feature-relating tolerance zone framework. It controls feature-to-feature spacing and orientation inside the pattern, and is usually the tighter number.
For the manifold plate: Ø0.5 to A B C in the upper segment, Ø0.2 in the lower. The eight holes have to sit within 0.5 mm of nominal as a group, and within 0.2 mm of each other. That is the functional requirement stated honestly. The single-segment version would have had to use Ø0.2 for both, and would have rejected plates that assembled perfectly.
One caution worth writing on the drawing: ASME Y14.5 and the ISO GPS system encode multi-level position control differently, and ISO 5458 is the document that actually governs positional tolerancing of hole patterns on the ISO side. They also differ on composite rules, including whether the lower segment may repeat datum references and which edition permits what. Cite the governing standard and its edition in the title block, because the symbol alone does not settle it. Our shop works to whichever standard the drawing block names, and we ask when the block is silent.
How we measure true position, and why two shops report two numbers
Here is our actual procedure on a CMM, and the four places where the number can legitimately move.
- Establish the datum reference frame from the real part. Measure datum A as a plane, B as a plane or line, C as a plane or point, in that order of precedence. We use the high-point (tangent) convention unless the drawing or the customer's own report specifies least squares. On a 260 mm plate with 0.04 mm of flatness, the difference between a tangent-plane datum and a least-squares datum shifts every hole by up to 0.04 mm before anyone measures a hole. That alone explains most "your report disagrees with ours" conversations.
- Measure the feature as an axis, not a point. At least two circles at different depths, constructed into an axis. On a shallow feature this is where uncertainty creeps in: on a 1.5 mm thick sheet-metal hole, a 2° ambiguity in axis direction is 1.5 x tan(2°) = 0.052 mm of reported position that nobody asked for and no gauge would find.
- Apply the material condition. With an MMC modifier, the reported tolerance is the specified value plus the measured departure from MMC of that specific hole. Each hole gets its own bonus. A report that shows one flat tolerance for all eight holes has not applied the modifier.
- Report the actual deviation as a diameter. True position deviation is twice the radial displacement: 2 x sqrt(dx² + dy²). A hole 0.06 off in X and 0.05 off in Y is 0.156 mm of true position, not 0.078. We have seen incoming inspectors compare a radial number against a diametral tolerance and reject good parts, and the reverse.
For the full comparison of the equipment behind those numbers, and what each method is honestly good for, see our CNC inspection methods guide. Whether that equipment can repeat the reading at all is its own question, answered by our gage repeatability and reproducibility study. The tolerance vocabulary itself, including how position interacts with size limits, is covered in the CNC machining tolerance guide.
What true position we can actually hold, by process
The table below is what we commit to in a quotation, not what a machine brochure claims. Everything assumes datums and features produced in the same clamping unless noted.
| Process | Realistic true position (diameter) | What sets the limit |
|---|---|---|
| CNC milling, bored or reamed, datums in the same set-up | Ø0.02 to Ø0.05 mm | Machine volumetric accuracy, tool deflection |
| CNC milling, drilled and reamed across two set-ups | Ø0.05 to Ø0.10 mm | Re-fixturing error, not the machine |
| CNC milling, drilled only, no ream | Ø0.10 to Ø0.20 mm | Drill walk on entry |
| CNC turning, cross features in one chucking | Ø0.03 to Ø0.06 mm | Spindle repeatability, live-tool alignment |
| 5-axis, features on different faces, one clamping | Ø0.02 to Ø0.05 mm | Rotary axis accuracy; our 5-axis envelope reaches 750 x 650 x 500 mm |
| Sheet metal, pierced in a progressive die | Ø0.08 to Ø0.15 mm | Strip pitch accuracy, pilot wear |
| Sheet metal, laser-cut hole, see the sheet metal tolerance guide | Ø0.10 to Ø0.20 mm | Kerf and thermal drift on the contour |
| Casting, as-cast | Ø0.5 to Ø1.5 mm | Pattern and mould variation; use position on as-cast holes and bosses only where the assembly needs it, and profile where the requirement sits on an as-cast surface |
Two rules of thumb follow. Anything under Ø0.05 needs the datums and the holes in one clamping, and above roughly Ø0.15 mm you should ask whether position is the right control at all, or whether a clearance slot would serve the assembly better and cost less. Holding the number once and holding it across a run are different claims, and our control plan and capability study guide covers the part a single report cannot show. Our general capability sits at ±0.01 mm on critical features across 200+ CNC machines, and the five-axis guide explains why one clamping buys you most of this. Material choice moves these bands too: the materials guide shows why 6061-T6 and 17-4PH do not land in the same row.
What buyers actually ask us
Can you just hold ±0.05 on everything? We can, and it will cost you roughly 30 to 60% more per part, because blanket tight tolerances force extra operations and full inspection on features that do not need either. Surface callouts are the same story, and the surface roughness guide covers where Ra earns its cost. Tell us which features mate and which ones only have to look right. We will put the tight number where it pays. The supplier selection guide lists the questions that separate shops that can hold the number from shops that merely say they can.
The last shop said our position tolerance was impossible. Usually the number is fine and the datum scheme is the problem, or the datums are machined after the holes. We rewrite the frame, keep your number, and it becomes machinable. The same review catches datum schemes that fight the milling service or the turning service you actually need. Roughly three times in five, that is the whole fix.
Do you need the 3D model or is the 2D drawing enough? For a position callout, the drawing is the governing document and the model is a convenience. What we do need is the datum scheme marked on the drawing, because the model rarely carries it. Our DFM analysis review is free and returns within 24 hours, and the datum conversation is the first thing in it.
What if our drawing has no datums at all? Then a position callout cannot be evaluated, and two suppliers will each invent one. We will propose a frame based on how the part locates in your assembly, send it back for approval, and quote against it. That is a five-minute conversation compared with a five-week argument later.
On programmes running to IATF 16949 or ISO 13485, the datum scheme and the measurement convention also have to be documented in the first article inspection package, because that is where the two reports get reconciled, and the serial-level record is described in the traceability marking guide. The metrology behind it is summarised by NIST and the National Physical Laboratory in plain language, and Zeiss documents the CMM side.
Frequently asked questions
What is the difference between true position and coordinate tolerancing?
Coordinate tolerancing gives a square zone, true position gives a round one. A square zone of ±0.10 accepts a hole sitting 0.141 mm away from true position at its corner, which is 41% further out than the designer intended, and that is usually where assembly failures live. A round zone gives the same allowance in every direction, and with a material condition modifier it grows as the hole gets larger.
How do you calculate true position from a CMM report?
Take the deviations in X and Y from basic dimensions, compute the radial displacement as sqrt(dx² + dy²), then double it. A hole 0.06 off in X and 0.05 off in Y is 0.156 mm of true position, not 0.078. Compare that doubled number against the tolerance in the feature control frame, plus any bonus from the material condition modifier.
What does MMC mean on a position callout, and should I use it?
MMC is maximum material condition: the smallest hole or the largest pin. With it, the position tolerance grows by however far the produced feature departs from MMC, which is physically correct for bolt-through clearance holes because a bigger hole gives the fastener more room. Use it on clearance features. Avoid it on press-fit and threaded features, where RFS is the honest choice.
Can you hold a 0.05 mm true position on a machined part?
Yes, when the datums and the holes are produced in one clamping and the holes are bored or reamed. Ø0.02 to Ø0.05 mm is our routine band for that case. Across two set-ups the realistic band opens to Ø0.05 to Ø0.10 mm, and drilled-only holes sit at Ø0.10 to Ø0.20 mm because drill walk dominates.
Why does my supplier's CMM report show a different position than my gauge?
In most cases it is the datum convention, not the measurement. A tangent-plane datum and a least-squares datum on a part with 0.04 mm of flatness can differ by that much before a single hole is measured. The second most common cause is comparing a radial deviation against a diametral tolerance. Align the datum convention and the reporting convention first, then compare numbers.
Do I need GD&T on every drawing?
No, and using it everywhere is a cost you pay twice. Apply position where a feature has to mate with something at a known location: hole patterns, dowels, threaded holes. Leave plain size tolerances on features that only have to fit or look right. The return on GD&T is highest exactly where two parts have to come together without hand fitting.
References
- ASME Y14.5, Dimensioning and Tolerancing. ASME
- ISO 1101, Geometrical product specifications (GPS): Geometrical tolerancing, tolerances of orientation, location and run-out.
- ISO 5458, Geometrical product specifications (GPS): Positional tolerancing, and ISO 2692 for the maximum material virtual size convention.
- Metrology and measurement uncertainty. NIST
- Dimensional metrology guidance. National Physical Laboratory
- Coordinate measuring machine technology. Zeiss Metrology
Conclusion
Twenty-three years of machining has convinced us that true position arguments are rarely about accuracy. They are about a drawing that describes a part in one language and an assembly that needs it in another. The round zone, the material condition modifier, the datum order and the virtual condition are the four places where those two languages get reconciled, and all four are far cheaper to settle during the quoting stage than they are after metal has been cut.
Across 23+ years of machining, we have learned to settle the datum scheme and the reporting convention before anyone writes a tool path, because our 200+ CNC machines hold ±0.01 mm on critical features only when the drawing and the inspection method agree about where the measurement starts. Send us the drawing, the mating part if you have one, and the volume. We will come back within 24 hours with a datum proposal, a machinability verdict, a virtual condition calculation and a price, with DFM free, working to IATF 16949, ISO 9001 and ISO 13485. If the honest answer is that your callout is looser than it needs to be, we will say that too. Get in touch with our team.
