GD&T Tools
True Position Calculator (GD&T)
Compute the true position deviation of a hole, pin, or boss from its basic (theoretically exact) location, check pass/fail against the position tolerance in the feature control frame, add RFS / MMC / LMC bonus tolerance, run batch CMM data, and convert between coordinate tolerances and diametral position tolerances — with a live tolerance-zone diagram.
Diagram: the blue circle is the tolerance zone (diameter = total allowable position tolerance) centred on the basic position; the dot is the measured feature centre; the dashed circle is the actual true-position deviation. Pass = measured point inside the blue zone.
Paste CMM rows, one per line: name, basicX, basicY, measX, measY, tolerance. Commas, semicolons, or tabs all work.
A square ±X/±Y zone has 57% more area than the inscribed circle — converting it to a diametral position tolerance gives you back that usable tolerance for free, which is one reason drawings moved to GD&T.
What true position actually controls
In geometric dimensioning and tolerancing (GD&T), true position is the theoretically exact location of a feature — a hole centre, a pin axis, a boss — defined by basic dimensions (the boxed numbers on the drawing) measured from a datum reference frame. The position symbol (⌖) in the feature control frame then states how far the real feature is allowed to wander from that perfect spot.
The key insight: the tolerance zone is a circle (diametral), not a square. Traditional coordinate tolerancing (±X, ±Y) draws a square box around the true position and rejects any feature whose centre leaves the box. A position tolerance of ⌀0.2 instead draws a circle of diameter 0.2 centred on the true position — and a circle of diameter 0.2 covers 57% more area than the inscribed ±0.1 × ±0.1 square. Same drawing intent, more of your tolerance usable, fewer scrapped parts.
The true position formula
where ΔX = measured X − basic X and ΔY = measured Y − basic Y. The square root gives the radial deviation; the factor of 2 converts it to the diametral value that the ⌀ tolerance in the feature control frame is written in. Forgetting the ×2 is the single most common true-position mistake — it halves every result and makes bad parts look good.
Worked example 1 — RFS pass/fail (the anchor calculation)
A hole has basic dimensions X = 25.000 mm and Y = 30.000 mm from the datum frame. The CMM reports the hole centre at X = 25.050 mm, Y = 30.080 mm. The feature control frame calls for ⌀0.200 mm, RFS (no modifier).
- Deviations: ΔX = 25.050 − 25.000 = 0.050 mm; ΔY = 30.080 − 30.000 = 0.080 mm.
- Radial distance: √(0.050² + 0.080²) = √(0.0025 + 0.0064) = √0.0089 = 0.0943 mm.
- True position: TP = 2 × 0.0943 = 0.1887 ≈ 0.189 mm.
- Verdict: 0.189 < 0.200, so the hole passes with 0.011 mm of margin.
If the tolerance had been ⌀0.150 mm instead, the same hole would fail — it exceeds the tolerance by 0.039 mm (0.189 − 0.150). Note the verdict always compares the computed deviation against the allowable tolerance; never mix the two numbers up.
Datum reference frame, in plain terms
A true position means nothing without datums. The datum reference frame is the coordinate system the basic dimensions are measured from — typically three mutually perpendicular datum planes (A primary, B secondary, C tertiary) that lock down all six degrees of freedom of the part.
| Element | What it is | Example |
|---|---|---|
| Datum A | Primary datum — usually the mounting face; controls orientation | Back face of a flange |
| Datum B | Secondary datum — locates the pattern in one direction | A centre bore or edge |
| Datum C | Tertiary datum — clocks the pattern in the remaining direction | A second edge or hole |
| Basic dimensions | Boxed numbers — theoretically exact, no tolerance of their own | 25 30 |
| Feature control frame | ⌖ | ⌀tolerance | modifier | A | B | C | ⌖ ⌀0.2Ⓜ A|B|C |
Practical consequence: when you measure a hole with a CMM, you must establish the same datum frame the drawing uses — measuring from a different edge gives a different (meaningless) true position. This is why the calculator asks for basic and measured coordinates in the same frame.
RFS, MMC, and LMC — where bonus tolerance comes from
The feature control frame may carry a material-condition modifier after the tolerance value. It changes how much tolerance you are allowed:
| Modifier | Symbol | Meaning | Bonus tolerance? | When it is used |
|---|---|---|---|---|
| RFS — regardless of feature size | Ⓢ | Tolerance applies exactly as stated, whatever the feature size | No | Default when no modifier is shown; alignment-critical features |
| MMC — maximum material condition | Ⓜ | Most material left on the part (smallest hole / largest pin) | Yes — grows as the feature departs from MMC | Clearance holes and fasteners — guarantees assembly |
| LMC — least material condition | Ⓛ | Least material left (largest hole / smallest pin) | Yes — grows as the feature departs from LMC | Wall-thickness or material-coverage concerns |
The logic of bonus tolerance is functional: a hole that came out larger than its smallest allowed size still assembles with its mating pin even if it is slightly off location — so the drawing hands back the extra clearance as additional position tolerance. The bonus equals the departure from the MMC (or LMC) size, added to the stated tolerance.
Worked example 2 — MMC bonus tolerance
A clearance hole is specified ⌀10 ±0.1 with position tolerance ⌀0.2Ⓜ (MMC). Basic position (10.000, 20.000); measured centre (10.060, 20.080); actual hole size 10.050 mm.
- MMC size of the hole: smallest hole = 10.000 − 0.100 = 9.900 mm.
- Departure from MMC: 10.050 − 9.900 = 0.150 mm bonus.
- Total allowable: 0.200 + 0.150 = 0.350 mm.
- True position: ΔX = 0.060, ΔY = 0.080 → TP = 2×√(0.0036+0.0064) = 2×0.100 = 0.200 mm.
- Verdict: 0.200 ≤ 0.350 — passes with 0.150 mm to spare. Under RFS the same hole would also pass (0.200 = 0.200 ≤ 0.200), but with zero margin — the bonus is pure insurance.
Converting coordinate tolerances to true position
Legacy drawings dimension hole locations as ±X / ±Y from edges. To modernise one into a GD&T position callout, convert the square zone to its equivalent diametral tolerance:
Worked example 3 — ±0.1 becomes ⌀0.283
A hole is located ±0.100 mm in both X and Y. The equivalent position tolerance is 2 × √(0.1² + 0.1²) = 2 × √0.02 = 2 × 0.1414 = 0.2828 ≈ ⌀0.283 mm. Going the other way, a ⌀0.283 mm position tolerance is equivalent to about ±0.1000 mm per axis (each axis gets TP ÷ 2√2, the square inscribed in the zone).
Batch inspection — running a CMM report through it
A CMM report lists dozens of features, each with nominal and actual coordinates. Paste the rows into the Batch tab (name, basicX, basicY, measX, measY, tolerance) and the calculator returns a per-feature table with TP, margin, and pass/fail, plus a summary: how many passed, the worst offender, and the average deviation. Example:
| Feature | Basic (X, Y) | Measured (X, Y) | TP | Tolerance | Result |
|---|---|---|---|---|---|
| H1 | 10.000, 10.000 | 10.030, 10.040 | 0.100 | ⌀0.200 | PASS |
| H2 | 50.000, 10.000 | 50.090, 10.020 | 0.184 | ⌀0.200 | PASS |
| H3 | 30.000, 40.000 | 30.120, 39.900 | 0.312 | ⌀0.200 | FAIL |
Summary: 2 of 3 pass, worst feature H3 at 0.312 mm, average deviation 0.199 mm. H3 misses by 0.312 − 0.200 = 0.112 mm diametral — either the setup drifted on that hole or the tolerance needs a second look.
Position vs its neighbours — which control to use
| Control | Symbol | What it controls | Zone shape | Needs datums? |
|---|---|---|---|---|
| Position | ⌖ | Location of a feature centre/axis relative to datums | Circle / cylinder ⌀ | Usually yes |
| Concentricity | ◎ | Median points of a feature relative to a datum axis | Cylinder ⌀ | Yes |
| Symmetry | ⌯ | Median plane of a feature relative to a datum plane | Two parallel planes | Yes |
Rule of thumb: if you are locating holes, pins, or slots relative to datums, position is almost always the right call — it is easier to inspect (one CMM hit per feature) and covers the functional requirement. Concentricity is a specialist tool for rotating balance; symmetry is rarely the best answer on a new drawing.
Typical position tolerances by process
General industry guidance only — your drawing always wins. Values below are what each process can hold comfortably in normal production, gathered from published machining references.
| Process | Typical achievable position tolerance (⌀) | Notes |
|---|---|---|
| CNC milling / drilling (3-axis) | 0.05 – 0.15 mm | Workhorse range for located holes |
| CNC turning (live tooling) | 0.05 – 0.10 mm | Excellent for coaxial features |
| Manual mill / drill press | 0.15 – 0.40 mm | Layout and setup dependent |
| Laser / waterjet cutting | 0.15 – 0.30 mm | Edge quality limits fine work |
| Sheet-metal punching | 0.20 – 0.50 mm | Tool wear widens the spread |
| 3D printing (FDM) | 0.30 – 0.60 mm | Shrinkage and layer shift dominate |
| 3D printing (SLA / SLS) | 0.10 – 0.25 mm | Better, still verify critical holes |
Six mistakes that fail good parts (or pass bad ones)
- Forgetting the ×2. Reporting the radial deviation as the true position halves the number and passes parts that are out of tolerance.
- Measuring from the wrong datum. A true position computed from a different edge than the drawing's datum frame is a different number entirely.
- Treating the tolerance as ±. ⌀0.2 is a diameter, not ±0.2 — the radius of the zone is 0.1.
- Claiming bonus tolerance under RFS. No modifier (or Ⓢ) means no bonus, whatever the feature size.
- Applying the bonus in the wrong direction. Holes gain bonus by getting bigger at MMC; pins gain it by getting smaller. Reversed, you grant tolerance the part did not earn.
- Mixing units. Basic dimensions in mm and CMM output in inches (or vice versa) — a 25.4× error that looks plausible until assembly.
Practical tips
- Read the CMM report correctly: most CMMs can output the diametral deviation directly — look for a column labelled TP, POS, or ⌀ deviation before hand-computing.
- Spot-check the ×2 on any spreadsheet: if a legacy sheet computes SQRT(dx²+dy²) without doubling, every value in it is wrong by half.
- Use MMC on clearance holes: it is free tolerance that reflects real assembly — the most common legitimate way to rescue a marginal process.
- Keep basic dimensions boxed on your own drawings: unboxed numbers carry their own ± tolerance and cannot define a true position.
- Report margin, not just pass/fail: a part passing with 0.005 mm of margin and one passing with 0.150 mm are very different process signals — the batch table shows both.
Frequently asked questions
What is true position in GD&T?
How is true position calculated?
Why is the result multiplied by 2?
What is the difference between true position and positional tolerance?
What does RFS mean for a position tolerance?
How does MMC bonus tolerance work?
How does LMC differ from MMC?
What is a datum reference frame?
How do I convert ± coordinate tolerances to true position?
Can true position be applied to a pattern of holes?
What is the difference between true position and concentricity?
How do I read true position on a CMM report?
Free tool by NRTechStudio