Why this matters: tolerances are the silent cost driver.
On a typical CNC-machined part, the choice between ±0.1 mm and ±0.01 mm can change the price by a factor of 3–5. Not because the feature is harder to physically cut — but because of everything that surrounds it: more setup rigidity, finer tooling, in-process measurement, longer cycle times, and higher scrap rates.
Most engineers intuit this. The mistake we see most often is defaulting to tighter tolerances "just to be safe." A block of dimensions all toleranced at ±0.02 mm — when only two of them actually affect fit — quietly doubles the part cost. This guide gives you the reference tables to call out tight tolerances only where they matter.
ISO 2768 general tolerances — the starting point.
ISO 2768 (replacing older DIN 7168) specifies four classes of general tolerance for linear dimensions: fine (f), medium (m), coarse (c), and very coarse (v). Most CNC drawings are called out as ISO 2768-m or ISO 2768-mK. These are the default tolerances for any dimension not otherwise specified on the drawing.
Here is the full table for linear dimensions:
| Nominal size range (mm) | Fine (f) | Medium (m) | Coarse (c) | Very coarse (v) |
|---|---|---|---|---|
| 0.5 – 3 | ±0.05 | ±0.10 | ±0.20 | — |
| 3 – 6 | ±0.05 | ±0.10 | ±0.30 | ±0.50 |
| 6 – 30 | ±0.10 | ±0.20 | ±0.50 | ±1.00 |
| 30 – 120 | ±0.15 | ±0.30 | ±0.80 | ±1.50 |
| 120 – 400 | ±0.20 | ±0.50 | ±1.20 | ±2.50 |
| 400 – 1000 | ±0.30 | ±0.80 | ±2.00 | ±4.00 |
| 1000 – 2000 | ±0.50 | ±1.20 | ±3.00 | ±6.00 |
Every CNC shop can meet ISO 2768-m without thinking about it. 2768-f is where you start to pay attention — it's still routine, but parts will get inspected more carefully. The "K" suffix (as in 2768-mK) adds general geometric tolerances: flatness, straightness, symmetry, and runout.
How fobproto thinks about tolerances: three tiers.
Standards are good for drawing callouts, but for quoting we group everything into three tiers that roughly map to process capability and cost:
Standard
ISO 2768-m / medium. The cheapest tier. All standard 3-axis CNC parts without second-operation inspection. Use for 80% of dimensions on a typical part.
Precision
ISO 2768-f / fine. Requires CMM inspection and finer tooling. Use on critical fits — bearing bores, locating pins, mating faces.
Ultra-precision
Grinding or jig-boring territory. Requires temperature-controlled finishing, slow final cuts, and full GD&T. Call ahead.
Linear dimensions — tolerance chart by tier and size.
Achievable on milled and turned parts in soft metals (aluminum, mild steel, brass):
| Size range (mm) | Standard | Precision | Ultra-precision |
|---|---|---|---|
| Up to 6 | ±0.10 | ±0.05 | ±0.005 |
| 6 – 30 | ±0.20 | ±0.10 | ±0.010 |
| 30 – 120 | ±0.30 | ±0.15 | ±0.015 |
| 120 – 400 | ±0.50 | ±0.20 | ±0.025 |
| 400 – 1000 | ±0.80 | ±0.30 | ±0.050 |
For harder alloys (stainless, Inconel, titanium, tool steel), expect tolerances roughly 1.5× wider at the same tier — or, equivalently, a 30–50% cost premium to hold the softer-metal tolerance.
Hole diameters and hole-to-hole locations.
Holes are where tolerances get tight fast. ISO 286 defines H7/h6/g6 bore fits — here's what CNC can deliver without second-op reaming or boring:
| Feature | Standard (drilled) | Precision (reamed) | Ultra (bored / ground) |
|---|---|---|---|
| Hole diameter <10 mm | +0.1 / −0.0 | H7 (+0.015) | H6 (+0.009) |
| Hole diameter 10–50 mm | +0.2 / −0.0 | H7 (+0.025) | H6 (+0.016) |
| Hole diameter 50–100 mm | +0.3 / −0.0 | H7 (+0.030) | H6 (+0.019) |
| Hole-to-hole location | ±0.15 | ±0.05 | ±0.015 |
| Perpendicularity to face | 0.1 / 100 mm | 0.03 / 100 mm | 0.01 / 100 mm |
| Bore circularity | 0.05 | 0.015 | 0.005 |
Form and position — GD&T on CNC parts.
ASME Y14.5 geometric tolerances map cleanly onto CNC capabilities — but only if you specify datums correctly. Here are typical achievable values per 100 mm of feature size:
| GD&T callout | Standard | Precision | Ultra-precision |
|---|---|---|---|
| Flatness | 0.05 mm | 0.02 mm | 0.005 mm |
| Straightness | 0.05 mm | 0.02 mm | 0.005 mm |
| Parallelism | 0.08 mm | 0.025 mm | 0.008 mm |
| Perpendicularity | 0.08 mm | 0.025 mm | 0.008 mm |
| Position (hole pattern) | Ø0.2 mm | Ø0.05 mm | Ø0.015 mm |
| Circularity (turned OD) | 0.02 mm | 0.008 mm | 0.002 mm |
| Runout (total) | 0.05 mm | 0.015 mm | 0.005 mm |
| Symmetry | 0.1 mm | 0.03 mm | 0.01 mm |
Surface roughness achievable by process.
| Process | Typical Ra (µm) | Best Ra (µm) | Comments |
|---|---|---|---|
| Face milling (rough) | 3.2 | 1.6 | Standard pocketing/facing |
| Face milling (finish) | 1.6 | 0.8 | Finish pass with ground insert |
| End milling (side wall) | 1.6 | 0.8 | Depends on stepover |
| Turning (rough) | 3.2 | 1.6 | — |
| Turning (finish) | 0.8 | 0.4 | CNMG insert, 0.1 mm/rev |
| Drilling | 3.2 | 1.6 | — |
| Reaming | 0.8 | 0.4 | — |
| Grinding (surface) | 0.4 | 0.1 | Standard precision grind |
| Polishing | 0.2 | 0.025 | Manual / mechanical |
| Wire EDM | 1.6 | 0.4 | 4-pass skim for best Ra |
| Bead blast (glass) | 1.6–3.2 | — | Matte cosmetic finish |
What each CNC process can actually hold.
Different processes hit different tolerance ceilings. Know which process is cutting your feature before you specify the tolerance:
| Process | Typical tolerance | Best tolerance | Best use |
|---|---|---|---|
| 3-axis milling | ±0.05 mm | ±0.015 mm | Prismatic parts, pockets |
| 5-axis milling | ±0.05 mm | ±0.010 mm | Complex contours |
| CNC lathe (2-axis) | ±0.03 mm | ±0.008 mm | Turned OD/ID |
| Swiss turning | ±0.015 mm | ±0.005 mm | Small slender parts |
| Wire EDM | ±0.010 mm | ±0.003 mm | Hardened steel detail |
| Sinker EDM | ±0.015 mm | ±0.005 mm | Sharp corners, cavities |
| Jig grinding | ±0.005 mm | ±0.002 mm | Mold inserts, gauge bores |
Five rules for tolerancing a CNC drawing.
1. Default everything to ISO 2768-mK. Tighten only what matters.
ISO 2768-mK in the title block. Now only features that need tighter tolerance get explicit callouts. This single change reduces cost on almost every CNC drawing we see — because it stops the shop from over-inspecting features that don't matter.
2. Tolerance fits, not dimensions.
3. Use datums. Pick them based on function.
4. Surface finish: don't call out Ra 0.4 unless you need it.
5. When in doubt, talk to the shop before you finalize the print.
ISO 2768 — the general-tolerance standard you should actually use
Most drawings don't need explicit tolerances on every dimension. ISO 2768 provides four tolerance classes (f, m, c, v for linear dimensions; H, K, L for geometric) that handle "general" tolerances across the whole drawing via a single block note.
| Class | Name | Linear (for 30-120mm) | Typical use |
|---|---|---|---|
| f | fine | ±0.15 mm | Precision assemblies; rare in general work |
| m | medium | ±0.3 mm | The default for CNC-machined metal parts |
| c | coarse | ±0.5 mm | Weldments, sheet metal fabrication |
| v | very coarse | ±1.0 mm | Forgings, castings, structural |
Call out "ISO 2768-mK" in your drawing's title block and every unspecified dimension gets medium linear (m) + medium geometric (K) tolerances automatically. This is industry standard and every shop worldwide reads it correctly. Use explicit tolerances only on features that truly need tighter than medium — typically 3-8 features per drawing, not the 30-50 we often see.
Calling out "ISO 2768-fH" (fine) as the general tolerance, then adding explicit ±0.05mm callouts throughout the drawing. The tighter general tolerance now applies to every unspecified feature — doubling inspection time. If you need tight tolerances on specific features, use ISO 2768-mK and call out the critical ones explicitly.
IT grades — what they mean and what each costs
The ISO IT (International Tolerance) system defines 20 grades, from IT01 (tightest) to IT18 (loosest). In practice, CNC parts live between IT6 and IT13.
| IT grade | Tolerance at Ø20mm | Typical process | Relative cost per feature |
|---|---|---|---|
| IT5 | ±0.004 mm | Precision grinding + lapping | 15-25× |
| IT6 | ±0.007 mm | Jig boring, precision grinding | 8-12× |
| IT7 | ±0.010 mm | Single-point boring, honing | 5-7× |
| IT8 | ±0.017 mm | Boring, precision reaming | 3-4× |
| IT9 | ±0.026 mm | Drilling + reaming | 1.8× |
| IT10 | ±0.042 mm | Drill + rough ream | 1.4× |
| IT11 | ±0.065 mm | Drilling alone, good tooling | 1.2× |
| IT12 | ±0.105 mm | Drilling, standard | 1.0× (baseline) |
| IT13 | ±0.165 mm | Drilling, rough | 0.9× |
A key practical point: the cost of tightening tolerance is not uniform across grades. Going from IT12 to IT11 is a 20% cost bump. Going from IT9 to IT8 is a 2× cost bump. Going from IT7 to IT6 is a 2× bump. Every step down the grade ladder is more expensive than the previous step.
Process-specific tolerance capabilities
3-axis CNC milling
- Linear dimensions: ±0.05 mm standard, ±0.02 mm achievable with care
- Bore tolerance: ±0.025 mm (reamed), ±0.010 mm (bored)
- Flatness: 0.02 mm/100 mm routinely
- Parallelism: 0.03 mm/100 mm typical
- Position tolerance: ±0.05 mm between features on same setup; ±0.1 mm across setups
CNC turning
- Diameters: IT7 standard, IT6 achievable with Swiss machines or precision lathes
- Lengths: ±0.05 mm
- Concentricity: 0.01 mm (single-setup), 0.02-0.05 mm (chuck re-grip)
- Roundness: 0.005 mm on precision lathes
Wire EDM
- ±0.005 mm routinely
- ±0.002 mm with fine-wire setup
- Surface finish: Ra 0.8-1.6 μm as-cut, Ra 0.2 μm after finish pass
- Best for hardened materials or complex internal geometries
Grinding
- ±0.002-0.005 mm on precision surface grinders
- Ra 0.1-0.4 μm surface finish routine
- Required for IT5 and tighter on hardened materials
Material effects on achievable tolerance
Tolerance capability depends partly on material. Aluminum machines more predictably than stainless steel; stainless more predictably than titanium; all three more predictably than PEEK or UHMW.
| Material | Realistic hole tolerance (drilled+reamed) | Realistic flatness / 100mm |
|---|---|---|
| Aluminum 6061-T6 | ±0.025 mm | 0.02 mm |
| Stainless 304/316 | ±0.030 mm | 0.03 mm |
| Titanium Gr5 | ±0.035 mm | 0.04 mm |
| Inconel 718 | ±0.040 mm | 0.05 mm |
| Delrin / POM | ±0.025 mm | 0.03 mm (temperature sensitive) |
| PEEK | ±0.030 mm | 0.04 mm (stress-relief critical) |
| UHMW-PE | ±0.15 mm | 0.2 mm (rubbery) |
For tighter-than-achievable specs on any material, the shop needs to add operations — grinding, honing, lapping, or post-machining heat treatment. Each operation roughly doubles the cost of that feature.
GD&T vs ±tolerance — when each makes sense
Linear tolerance (±0.05 mm on a dimension) and geometric tolerance (perpendicularity 0.02 mm to datum A) do different jobs. Most drawings need both:
- Use linear ± tolerance when: the feature is simple, the dimension is what matters, and function is well-defined by location. Examples: diameter of a shaft, length of a part, thickness of a plate.
- Use GD&T when: the relationship between features matters more than any single dimension. Examples: the axis of one bore must be parallel to the axis of another bore; a flat face must be perpendicular to the datum axis; a sealing surface must be flat within a tight limit regardless of where it sits in the drawing.
Over-using GD&T is a common source of cost inflation. If a part has 20 features and the drawing calls out position tolerance, perpendicularity, parallelism, and flatness on all 20, inspection time alone can exceed machining time. On the other hand, under-using GD&T — relying only on ± tolerances for a part with critical assembly relationships — can lead to parts that pass inspection but don't assemble correctly.
Five common tolerance mistakes we see on drawings
From our shop's QA team, the patterns that most often cause quote-to-rejection cycles:
Identical tolerance block on every dimension
Title block says "±0.02 mm unless otherwise specified." Every feature becomes IT8-level precision. Machining time doubles, inspection time triples. Fix: use ISO 2768-mK general tolerance and call out specific tighter tolerances only on critical features (typically 3-8 per drawing).
Datum from an unmachined surface
The drawing datums a critical feature from a cast or rough-cut surface. The first operation in machining must create a machined reference — but the drawing doesn't specify one. Result: ambiguous datum, inconsistent parts. Fix: always datum from the first machined surface (usually face A in first-setup terminology).
Position tolerance without material-condition modifier
A position tolerance of ±0.02mm is tighter than necessary in most cases. With MMC modifier (Ⓜ), the part gets bonus tolerance when the hole is at max material condition — effectively giving assembly clearance back. For bolt-hole patterns especially, add the MMC modifier.
Subjective surface finish callouts
"Smooth finish" or "no tool marks" — these are unenforceable. Replace with specific Ra values: Ra 3.2 μm (standard mill finish), Ra 1.6 μm (fine mill), Ra 0.8 μm (ground or hand-polished), Ra 0.4 μm (precision ground). Each step up doubles cost.
Combined tolerance stack-up not accounted
A bore is dimensioned ±0.02mm from surface A, and surface A has ±0.1mm location tolerance. The designer expects ±0.02mm overall — but the manufacturer sees ±0.12mm stack-up. If the final part must be within ±0.02mm of a feature, datum directly from that feature, not through a chain.
Representative tolerance specs by industry
Different industries have unspoken norms for what tolerance is "normal" — drifting from these raises questions and often requires justification:
| Industry | Typical general tolerance | Typical bore / fit tolerance |
|---|---|---|
| Aerospace structural | ±0.1 mm general, ±0.025 critical | IT7 (±0.015 mm at Ø20) |
| Aerospace turbine | ±0.05 mm general, ±0.005 critical | IT5-6 |
| Medical implants | ±0.05 mm general, ±0.01 critical | IT6-7 |
| Automotive production | ±0.2 mm general, ±0.05 critical | IT8-9 |
| Industrial machinery | ±0.3 mm general (ISO 2768-m) | IT9-10 |
| Consumer electronics | ±0.1 mm general, ±0.05 critical | IT7-8 |
| Prototype / general | ±0.2 mm general (ISO 2768-m) | IT9-10 |
If you're specifying aerospace-level tolerances on an industrial-machinery application, you're overpaying. If you're specifying industrial-level tolerances on aerospace work, you'll have assembly problems. Matching tolerance expectations to industry norms is a cheap shortcut.
Measurement uncertainty — the ignored factor
A ±0.02mm tolerance only means something relative to the measurement method used to verify it. Common inspection tools and their realistic accuracy:
- Digital caliper: ±0.02-0.05 mm repeatable. Good for general checking, inadequate for verifying tight tolerances.
- Micrometer: ±0.005 mm on external dimensions. Good for shafts and straight features.
- Bore gauge / plug gauge: ±0.002-0.005 mm on internal diameters. Slow but accurate.
- CMM (coordinate measuring machine): ±0.003-0.01 mm depending on machine. The standard for complex geometry inspection.
- Optical comparator: ±0.01 mm on 2D features. Fast for profiles and contours.
- Laser scanner: ±0.05-0.2 mm. Fast whole-surface capture but less accurate than CMM.
A tolerance band needs to be about 4× larger than the measurement uncertainty for reliable inspection (the 4:1 rule). Spec'ing ±0.005 mm tolerance on a feature that can only be measured with a ±0.003 mm method creates a gray zone where parts might pass or fail based on measurement noise alone. Match your tolerance callouts to the practical measurement capability.