Tolerances are where most of the money is made or lost on a CNC part. A feature specified at ±0.5mm costs the same to machine as one at ±0.01mm — but the inspection, tooling, scrap rate, and cycle time are completely different. This page explains how to assign tolerances that are tight enough to work, loose enough to afford, and justified for every single feature on your drawing.
The relationship between tolerance and cost is not linear — it is exponential. Each step tighter requires a better machine, a more skilled operator, more frequent inspection, and slower cutting parameters. The cost curve below shows the relative cost multiplier for common CNC tolerance bands. "1×" represents the baseline cost of a part with standard tolerances.
| Tolerance Band | Relative Cost | Typical Process | What You Get |
|---|---|---|---|
| ±0.5 mm | 1.0× | Standard CNC milling / turning | General machining. Suitable for non-critical features, brackets, housings, covers. |
| ±0.1 mm | 1.5× | CNC with standard tooling, normal inspection | Most commercial parts. Good for clearance fits, mounting faces, cosmetic dimensions. |
| ±0.05 mm | 2.5× | CNC with controlled environment, CMM inspection | Precision commercial. Fits, bearing seats, dowel holes, sealing surfaces. |
| ±0.025 mm | 4.0× | Precision CNC, grinding, temperature control | High precision. Precision bearings, gear bores, hydraulic spools, gauge features. |
| ±0.01 mm | 8.0× | Jig boring, precision grinding, CMM | Very high precision. Gauge blocks, precision tooling, optical mounts, mold inserts. |
| ±0.005 mm | 15.0× | Lapping, honing, temperature-controlled lab | Ultra-precision. Metrology standards, optical assemblies, semiconductor fixtures. |
Not every feature on a part needs the same tolerance. The key principle is tolerate the function, not the part. Assign tight tolerances only to features that directly affect assembly, sealing, motion, or safety. Everything else can be loose.
| Feature Type | Tolerance Level | Typical Range | Why |
|---|---|---|---|
| Interference / press fits | Very Tight | ±0.005–0.015 mm | The interference is measured in microns. Too loose = part slips out. Too tight = stress crack during assembly. |
| Transition / locational fits | Tight | ±0.01–0.025 mm | Bearing journals, gear bores, precision dowel holes. Must locate accurately without excessive press force. |
| Dowel pin holes | Tight | ±0.01–0.02 mm (H7) | Dowels locate two parts relative to each other. Positional error directly transfers to assembly alignment. |
| Bearing journals / bores | Tight | ±0.005–0.015 mm | Bearing life depends on fit. Too loose = fretting and vibration. Too tight = preload and overheating. |
| Sealing surfaces (O-ring grooves) | Moderate | ±0.025–0.05 mm | O-ring groove dimensions must be controlled to maintain proper compression. Width is more critical than depth. |
| Sealing faces (flat gasket) | Moderate | ±0.05 mm flatness | The surface must be flat enough for the gasket to seal. Surface finish often matters more than dimensional tolerance. |
| Threaded holes | Moderate | Standard thread class (6H / 6g) | Standard thread classes (6H for nuts, 6g for bolts) are well-defined. Do not re-specify thread tolerances unless you have a reason. |
| Clearance holes (bolt-through) | Loose | ±0.1–0.25 mm | The bolt has clearance by design. As long as the hole is bigger than the bolt, it works. |
| Mounting faces | Moderate | ±0.05–0.1 mm | Must be flat and at the correct position for the mating part to seat properly. |
| Overall dimensions (length, width, height) | Loose | ±0.1–0.5 mm (ISO 2768-mK) | Unless the part fits into a specific envelope, overall dimensions rarely need tight tolerance. |
| Non-critical surfaces | Loose | ±0.5 mm or ISO 2768 | External surfaces, ribs, bosses, cosmetic features. As long as they look right, tolerance does not matter. |
| Weight reduction pockets | Loose | ±0.5 mm or ISO 2768 | These pockets remove material to reduce weight. The pocket shape and size are not functionally critical. |
Assigning tolerances is not guesswork. Follow this systematic approach to ensure every tolerance on your drawing is justified, achievable, and cost-effective.
| Step | Action | Details |
|---|---|---|
| 1 | Identify critical functions | List every function the part performs: bears a load, seals a fluid, locates another part, aligns an optical element, etc. Each function maps to one or more critical features. |
| 2 | Map functions to features | For each function, identify which dimensional feature controls it. Example: "seals hydraulic fluid at 200 bar" maps to O-ring groove width, depth, and surface finish — not the overall part length. |
| 3 | Determine the tolerance needed for each critical feature | Use engineering analysis (tolerance stack-up, FEA, empirical data) to calculate the maximum allowable deviation. Do not default to "tight" — calculate what is actually needed. |
| 4 | Apply ISO 2768 to everything else | Every feature that is not on the critical list gets general tolerances per ISO 2768. Specify the class: -f (fine), -m (medium), -c (coarse), -v (very coarse). Medium (mK) is the most common default. |
| 5 | Document rationale | On the drawing or in a separate tolerance analysis document, note why each tight tolerance is needed. This prevents future engineers from loosening them and prevents the shop from questioning them. |
| 6 | Review with manufacturing | Before finalizing, review the tolerance scheme with your machinist or manufacturing engineer. They can flag tolerances that are tighter than necessary or suggest alternatives that achieve the same function at lower cost. |
ISO 2768 defines general tolerances for dimensions that are not individually toleranced on the drawing. It covers linear dimensions, external radii, chamfer heights, angular dimensions, and geometrical tolerances (straightness, flatness, perpendicularity, symmetry, circular runout).
| ISO 2768 Class | Linear Tolerances (for 6–30mm nominal) | When to Use |
|---|---|---|
| f (fine) | ±0.05–0.1 mm | Precision parts where most features need good control. Still cheaper than individual tolerances on every dimension. |
| m (medium) | ±0.1–0.2 mm | The most common default. Suitable for the majority of commercial CNC parts. Good balance of cost and precision. |
| c (coarse) | ±0.2–0.4 mm | Non-critical parts, structural members, large housings, brackets. Use when fit and function are not sensitive to dimension. |
| v (very coarse) | ±0.4–1.0 mm | Rough structural parts, weldments, bases. Rarely used for precision CNC but appropriate for large structural components. |
GENERAL TOLERANCES PER ISO 2768-mK. The "m" controls linear and angular dimensions. The "K" controls geometrical tolerances (flatness, straightness, perpendicularity, etc.). This single line covers all dimensions that do not have an individual tolerance callout.
A common misconception is that a tight tolerance automatically requires a smooth surface finish, or vice versa. In reality, Ra (surface roughness) and dimensional tolerance are independent specifications. You can have a dimension that is ±0.01mm with a surface finish of Ra 1.6, or a dimension that is ±0.5mm with a surface finish of Ra 0.4. The two are driven by different functional requirements.
| Functional Requirement | Recommended Ra | Typical Process | Tolerance Implication |
|---|---|---|---|
| Sliding / bearing surfaces | Ra 0.2–0.4 μm | Grinding, honing, lapping | Requires tight tolerance (the smooth surface is meaningless if the dimension is off). |
| Static sealing surfaces (gasket) | Ra 0.8–1.6 μm | Fine milling, facing, light grinding | Flatness matters more than Ra. Surface must be flat enough for the gasket to conform. |
| Dynamic sealing (O-ring, lip seal) | Ra 0.4–0.8 μm | Grinding, fine turning | Too rough = seal wears. Too smooth = seal cannot generate lip pressure. Direction of lay also matters. |
| Fits (press, transition, clearance) | Ra 0.8–1.6 μm | Reaming, boring, precision turning | Surface roughness affects the effective fit. Rough surfaces measure smaller on shafts and larger on holes. |
| Cosmetic / visible surfaces | Ra 0.8–1.6 μm | Standard finishing pass | Driven by appearance, not function. Looser dimension is fine as long as it looks good. |
| General machined surfaces | Ra 1.6–3.2 μm | Standard milling, turning | The default CNC finish. No special operations needed. Pairs with ISO 2768-m tolerances. |
| Clearance / non-contact surfaces | Ra 3.2–6.3 μm | Roughing pass only | Internal pockets, weight reduction, non-visible surfaces. Cheapest to produce. |
| Tool marks acceptable (as-machined) | Ra 6.3–12.5 μm | Heavy roughing | Cast surfaces, raw stock, internal features never seen or contacted. Minimum cost. |
GD&T (Geometric Dimensioning and Tolerancing, per ASME Y14.5 / ISO 1101) is a symbolic language that controls the form, orientation, location, and runout of features. Plus-minus (±) tolerancing controls size and, indirectly, some geometric characteristics. Most parts can be fully defined with ± tolerances alone. GD&T is needed only for specific situations.
± tolerances are the default and should be your first choice. They are simpler to understand, cheaper to inspect (calipers, micrometers), and sufficient for the majority of CNC parts.
| Situation | Use ± When... | Why |
|---|---|---|
| Simple prismatic parts | Blocks, plates, brackets with rectangular features | Plus-minus on length, width, height, and hole positions is clear and sufficient. |
| Single-datum features | One face or one edge serves as the reference for all dimensions | No need for datum references when all dimensions originate from the same surface. |
| Clearance fits only | Bolt holes, clearance slots, non-critical positioning | Clearance holes have generous tolerance bands. ± is perfectly adequate. |
| Low-volume production | Prototypes and short runs (< 100 pcs) | GD&T inspection (CMM) adds setup cost that is hard to justify at low volume. |
| Situation | GD&T Feature Control Needed | Why ± Is Not Enough |
|---|---|---|
| Critical datum surfaces | Datum features (A, B, C), flatness, perpendicularity | ± tolerances do not explicitly define which surface is the reference. GD&T datums establish a clear measurement hierarchy. |
| Complex geometry | Profile of a line/surface, position | Irregular shapes, curved surfaces, and non-rectangular features cannot be adequately controlled with ± alone. |
| Pattern of holes | True position (with MMC/LMC modifiers) | True position with bonus tolerance from MMC allows more manufacturing flexibility and can reduce cost while maintaining function. |
| Concentricity / coaxiality | Concentricity, runout, total runout | ± on diameter does not control how centered one feature is relative to another. Runout controls both size and position simultaneously. |
| Cylindrical features with form requirements | Cylindricity, circularity | ± tolerance on diameter allows out-of-roundness within the band. Cylindricity controls the entire surface shape. |
| High-volume production | Any GD&T feature with functional gauges | GD&T allows the use of functional go/no-go gauges for fast, cheap inspection at volume. |
GD&T tolerances require CMM (Coordinate Measuring Machine) inspection for verification. This has a direct cost impact.
| Inspection Method | Typical Tolerance Range | Inspection Cost per Part | Speed |
|---|---|---|---|
| Calipers / micrometers | ±0.05mm and looser | Minimal (included in base price) | 30–60 seconds per feature |
| Go/no-go gauges | Fixed limits (thread gauges, pin gauges) | Low (amortized over volume) | 5–10 seconds per feature |
| Height gauge / surface plate | ±0.01–0.05mm | Moderate (+$5–15 per part) | 2–5 minutes per feature |
| CMM (programming + measurement) | Any GD&T, ±0.005mm and tighter | High (+$20–80 per part) | 5–15 minutes per part (after program) |
| Roundness tester / optical comparator | Form tolerances (roundness, cylindricity) | Very high (+$50–150 per part) | 10–30 minutes per feature |
These tolerance errors appear on a surprising number of engineering drawings. Each one either increases cost unnecessarily or creates ambiguity that leads to disputes, delays, or non-conforming parts.
| # | Mistake | What Happens | Correct Approach |
|---|---|---|---|
| 1 | Same tight tolerance on every dimension | Part costs 3–5× what it should. Every feature is machined, inspected, and documented as if it were critical. Massive waste of time and money. | Assign tight tolerances only to critical features. Apply ISO 2768 to everything else. Use the 80/20 rule: 80% of features loose, 20% tight. |
| 2 | Specifying ±0.01mm without understanding the cost | Quote comes back 8× higher than expected. Engineer is surprised. Project budget is blown. | Before specifying a tolerance tighter than ±0.05mm, consult the tolerance cost curve. Ask yourself: is this tolerance justified by engineering analysis? |
| 3 | No general tolerance note (no ISO 2768) | Every untoleranced dimension is interpreted differently by the shop and the customer. Disputes are inevitable. The shop may default to their own (possibly tighter) standard. | Always include "GENERAL TOLERANCES PER ISO 2768-mK" on the drawing. This is the single most important tolerance note you can add. |
| 4 | Tight tolerance on a non-functional dimension | Money wasted on machining and inspection for a dimension that does not affect part function. Example: ±0.02mm on the overall length of a bracket where only the hole position matters. | For each tolerance, ask: "What happens if this dimension is at the limit of a looser tolerance?" If the answer is "nothing," loosen it. |
| 5 | Confusing Ra with dimensional tolerance | Specifying Ra 0.4 on a feature that only needs Ra 3.2, because the tolerance is tight. Or specifying a tight tolerance because the surface needs to be smooth. These are independent specs. | Specify tolerance based on dimensional function. Specify Ra based on surface function (sealing, sliding, cosmetic). They are independent. |
| 6 | Using GD&T when ± would suffice | Drawing is harder to read. Inspection requires CMM instead of calipers. Cost increases with no functional benefit. The shop may request a drawing revision. | Use ± for simple parts with rectangular geometry and single-datum dimensioning. Reserve GD&T for complex geometry, critical datums, and high-volume production. |
| 7 | Tolerance stack-up not analyzed | Multiple features each within tolerance, but the assembly does not fit because the tolerances stack up. Discovered at assembly — the most expensive time to find problems. | Perform a tolerance stack-up analysis (worst-case or RSS) for any assembly with more than two mating parts. Adjust individual tolerances to meet the assembly requirement. |
| 8 | Tolerances tighter than the process capability | High scrap rate. The shop cannot consistently produce parts within tolerance. They either charge a premium for selective sorting or reject the order. | Know the standard capability of each process. CNC milling achieves ±0.025mm routinely. If you need ±0.005mm, specify grinding. |
| 9 | Not specifying datum references | Inspection measures from a different reference surface than you intended. The part passes inspection but fails assembly. This is especially common with GD&T. | Clearly define datum features on the drawing. Datum A should be the primary mating surface. Datum B should be the secondary alignment surface. |
| 10 | Ignoring material behavior (thermal expansion) | Part measured at 20°C is within tolerance. Part measured at 35°C (on the shop floor or in operation) is out of tolerance. Aluminum expands 0.024mm per 100mm per °C. | For tight tolerances (<±0.025mm), specify measurement temperature (usually 20°C per ISO 1). For parts operating at extreme temperatures, tolerance the dimension at operating temperature. |