Guide · Updated October 2026

CNC machining tolerances: chart and how to specify them

A practical reference for CNC machining tolerances: the ISO 2768 standard tolerance chart, what tolerance milling and turning can typically hold by feature, fits, surface roughness, and how to call out tolerances so parts come out right first time without paying for precision you do not need.

Contents

What a CNC machining tolerance is

A tolerance is the permitted variation of a dimension. A shaft drawn as 20.00 ±0.03 mm is acceptable anywhere from 19.97 to 20.03 mm. Every machined dimension has a tolerance, whether you write it next to the number or not. If you do not, the general tolerance note in the title block applies. If there is no note either, the shop has to guess, and that is where disputes start.

Tolerances come in three forms:

  • Bilateral: 20.00 ±0.03. Variation allowed in both directions.
  • Unilateral or limit: 20.00 +0.00/−0.05, or written as limits 19.95–20.00. Useful when only one direction is safe, for example a shaft that must never be oversize.
  • Fit designations: Ø12 H7. A code from ISO 286 that defines both the size band and its position relative to nominal.

On top of size tolerances, geometric tolerances (GD&T) control form, orientation and location: how flat a face is, how square a bore is to a face, where a hole sits relative to datums. Size tolerance alone does not control any of those.

For reference, our standard tolerance on machined features is ±0.03 mm. Tighter values on critical features are possible when called out on the drawing and confirmed in the quote.

Standard CNC machining tolerance chart (ISO 2768-1)

ISO 2768-1 is the most widely used general tolerance standard for machined parts. It defines four classes for linear dimensions that carry no individual tolerance: f (fine), m (medium), c (coarse) and v (very coarse). Values are ± in millimetres.

Nominal size (mm)f (fine)m (medium)c (coarse)v (very coarse)
0.5 – 3±0.05±0.1±0.2—
over 3 – 6±0.05±0.1±0.3±0.5
over 6 – 30±0.1±0.2±0.5±1.0
over 30 – 120±0.15±0.3±0.8±1.5
over 120 – 400±0.2±0.5±1.2±2.5
over 400 – 1000±0.3±0.8±2.0±4.0
over 1000 – 2000±0.5±1.2±3.0±6.0

ISO 2768-1 also covers external radii and chamfer heights (±0.2 mm up to 3 mm, ±0.5 mm over 3–6 mm, ±1 mm over 6 mm for classes f and m) and angular dimensions (±1° for the shorter leg up to 10 mm in classes f and m, tightening as the leg gets longer).

Most CNC drawings use ISO 2768-mK or ISO 2768-fH. Class m is comfortable for any CNC shop; class f is still routine on modern machines. Note that even class f is looser than ±0.03 mm on most sizes. If a dimension really needs ±0.03 mm or better, tolerance it individually.

In the US, the equivalent is usually a title-block default such as "X.X ±0.2 / X.XX ±0.05 / X.XXX ±0.01" (or in inches, ".XX ±.01 / .XXX ±.005"). It works the same way, but tying tolerance to the number of decimal places causes mistakes when CAD rounds a value. Prefer an explicit standard.

General geometric tolerances (ISO 2768-2)

The second letter in "ISO 2768-mK" refers to ISO 2768-2, which sets default geometric tolerances for features without individual GD&T. Classes are H (finest), K and L. Straightness and flatness values, in mm:

Nominal length (mm)HKL
up to 100.020.050.1
over 10 – 300.050.10.2
over 30 – 1000.10.20.4
over 100 – 3000.20.40.8
over 300 – 10000.30.61.2
over 1000 – 30000.40.81.6

ISO 2768-2 also defines general perpendicularity, symmetry and circular run-out. For anything that seals, slides or locates another part, do not rely on these defaults. Put an explicit geometric tolerance on the feature.

Typical CNC machining tolerances by feature and process

What a shop can hold depends on the feature, its size, the material and how the part is fixtured. The table below shows what is routine on a well-maintained machine versus what is achievable with extra care (and extra cost). These are typical industry values for metal parts of moderate size, not guarantees for every geometry.

FeatureRoutineAchievable with careNotes
Milled length, width, step±0.05 mm±0.01–0.02 mmSame-setup features hold tighter than features cut in different setups.
Milled pocket depth±0.05 mm±0.02 mmDeep pockets need long tools that deflect.
Turned outside diameter±0.02–0.03 mm±0.005–0.01 mmTurning is usually the most accurate way to make a diameter.
Drilled hole diameter+0.1/−0 mm±0.05 mmDrills cut slightly oversize. Do not use a drilled hole as a fit.
Reamed or bored holeH7H6Ø10 H7 = +0.015/0 mm. Reamers come in standard sizes.
Hole position (same setup)±0.05 mm±0.01–0.02 mmPosition between setups depends on re-fixturing accuracy.
Flatness, small face (<100 mm)0.05 mm0.01–0.02 mmThin plates warp after unclamping; stress relief helps.
Threads6H / 6g—Standard thread class for metric threads; checked with go/no-go gauges.

Two points engineers often miss. First, dimensions between features machined in the same setup are more accurate than dimensions across setups, because re-clamping adds error. A 5-axis machine can cut more faces in one clamping, which is one reason 5-axis CNC milling helps on parts with related features on several sides. Second, round features made on a lathe hold diameter and concentricity better than circular interpolation on a mill. If your part is mostly round, see CNC turning and mill-turn.

ISO fits: H7/g6, H7/h6, H7/p6

For mating holes and shafts, ISO 286 fits are clearer than ± numbers. The capital letter is the hole, lower case is the shaft, and the number is the IT grade (smaller = tighter). H holes have their lower limit at nominal, so H7 always means "nominal to slightly oversize". Values for a nominal Ø12 mm (10–18 mm band):

FitHole Ø12Shaft Ø12ResultTypical use
H7/g6 sliding+0.018 / 0−0.006 / −0.0170.006–0.035 clearancePrecision sliding pins, guides, rotating parts with small play
H7/h6 locational clearance+0.018 / 00 / −0.0110–0.029 clearanceParts that locate accurately but can be assembled by hand
H7/p6 press (interference)+0.018 / 0+0.029 / +0.0180–0.029 interferenceDowel pins, bushings and bearings pressed in permanently

For bought-in dowels and bearings, you only control the hole. Dowel pins are commonly made to m6, so an H7 hole gives a light press fit. Check the bearing manufacturer's recommendation for housing bores: it depends on load direction and is not always H7.

Surface roughness (Ra) chart

Surface finish is a separate requirement from dimensional tolerance, but the two are linked: you cannot hold ±0.005 mm on a surface that is Ra 6.3 µm rough. Common values:

Ra (µm)Ra (µin)What it looks likeWhen to specify
6.3250Visible tool marksNon-functional faces, hidden internal surfaces
3.2125Standard as-machined, light marksDefault for most parts; our typical as-machined finish
1.663Fine machined, marks barely visibleSealing faces for gaskets, sliding fits, cosmetic faces
0.832Very smooth, near-mirror on some alloysBearing journals, O-ring grooves for dynamic seals

Each step down roughly requires slower finishing passes or an extra operation, so apply finer Ra only to the surfaces that need it. Bead blasting and anodizing change texture too; see surface finishes for how each finish looks and what it does to Ra.

How tolerance drives cost

Cost does not rise linearly as tolerance tightens. It follows a curve that is nearly flat through the comfortable range and then climbs steeply:

  • ±0.1 mm and looser: essentially free. Any machine, normal feeds, minimal inspection.
  • ±0.05 to ±0.03 mm: standard CNC work. Small premium, if any.
  • ±0.02 to ±0.01 mm: finishing passes, tool wear compensation, temperature-stable measurement, often in-process checks. Noticeable cost increase.
  • Below ±0.01 mm: may need grinding, honing, lapping, a temperature-controlled room, or 100% inspection with higher-grade instruments. Cost can multiply and scrap rate rises.

The mistake is not tight tolerances on critical features. It is tight tolerances everywhere, usually because a CAD template defaults to three decimal places. A part with ten ±0.01 mm callouts that only needs two will be quoted, machined and inspected as a ten-callout part. Our CNC machining cost guide covers this and eleven other cost drivers.

How to call out tolerances on a drawing

A good drawing makes the shop's job unambiguous and puts precision where function needs it. A checklist:

  1. Add a general tolerance note. For example: "Unless otherwise specified: ISO 2768-mK. Break sharp edges 0.2–0.5 mm. Surface finish Ra 3.2 µm." This covers every dimension you do not tolerance individually.
  2. Tolerance only critical dimensions individually. Mating diameters, bearing bores, sealing faces, datum features, hole patterns that bolt to other parts. Typically a handful per part.
  3. Use fits for holes and shafts. "Ø8 H7" is shorter and clearer than "Ø8 +0.015/0".
  4. Dimension from datums, not chains. Chain dimensioning stacks tolerances: five ±0.05 steps in a chain can add up to ±0.25 mm at the end.
  5. Specify threads fully. "M6×1.0 – 6H, depth 12" rather than "M6 tapped". State thread inserts if needed.
  6. State the finish and whether dimensions apply before or after it. See the anodizing section below.
  7. Send the 3D model with the drawing. The model gives geometry; the drawing gives tolerances, finish and notes. See how to prepare CAD files for a quote.

If your drawing has no tolerances at all, a shop has to apply its own default. Ours is ±0.03 mm on machined features, but you should not leave function-critical fits to any shop's default. Tell us which features matter and we will confirm them in the quote.

GD&T basics: flatness, position, perpendicularity

Size tolerances say nothing about form or location. A plate can be 10.00 ±0.03 mm thick everywhere and still be bowed by 0.2 mm. Geometric dimensioning and tolerancing (ASME Y14.5 or ISO 1101) fills the gap. The three controls most CNC parts need:

  • Flatness (no datum): the whole surface must lie between two parallel planes a set distance apart. Use it on sealing and mounting faces. A flatness of 0.02–0.05 mm on a face up to about 100 mm is a reasonable machined value; large thin plates are harder.
  • Position (with datums): the axis of a hole must fall within a cylindrical zone around its true position. A ±0.05 mm coordinate tolerance gives a square zone whose corners are 0.07 mm from true position; a round position zone of Ø0.14 mm accepts the same worst case in every direction and is about 57% larger in area, so more good parts pass without any risk to assembly. Add the maximum material condition modifier (Ⓜ) on clearance holes to gain bonus tolerance as the hole gets larger.
  • Perpendicularity (with datum): a face or axis must be square to a datum within a zone. Use it for bores that carry shafts and faces that must sit square to a mounting surface.

Other useful controls are parallelism, concentricity/runout (for turned parts) and profile of a surface (for complex 5-axis surfaces). Keep datums simple: a primary flat face (A), a secondary edge or bore (B), and a tertiary feature (C) that match how the part is located in the assembly.

Materials and geometry that will not hold tight tolerances

The machine is rarely the limit. The part usually is.

  • Plastics. Thermal expansion of plastics is several times that of aluminum, and many absorb moisture. Nylon can grow measurably in humid air; POM is much more stable; PEEK is the most stable of common engineering plastics. Plan on ±0.05–0.1 mm for plastic parts unless the feature is small and the material stable. Details on plastic CNC machining.
  • Thin walls and webs. Walls under about 1 mm in metal (about 1.5 mm in plastic) deflect under cutting forces and spring back after unclamping. Long thin walls chatter. Thicken them or relax the tolerance.
  • Large, thin plates. Residual stress in rolled or extruded stock is released as material is removed, so plates warp. Stress-relieved or cast tooling plate helps; flatness tolerances should allow for it.
  • Deep, narrow features. Pockets deeper than about 4× the tool diameter need long tools that deflect, so depth and wall tolerances suffer.
  • Hard or gummy materials. Titanium and some stainless grades work-harden and wear tools, so holding tight tolerances over a batch costs more. See titanium and stainless steel.
  • Temperature. Aluminum grows about 0.023 mm per metre per °C. A 300 mm aluminum part measured 10 °C warmer than reference reads about 0.07 mm long. Tight tolerances on big parts need controlled measurement conditions.

Free-machining and stable alloys such as aluminum 6061-T6, 303 stainless and brass C360 are the easiest to hold close tolerances on.

How anodizing and coatings change dimensions

Anodizing converts the aluminum surface into oxide. Roughly half of the coating grows outward from the original surface and half penetrates inward. Typical thicknesses:

FinishTypical coating thicknessGrowth per surfaceChange on a diameter
Type II anodize5–25 µm≈ 2.5–12.5 µm≈ 0.005–0.025 mm
Type III hard anodize25–75 µm≈ 12–38 µm≈ 0.025–0.075 mm
Powder coating60–120 µm typicalfull thicknessmask any fit

Shafts get larger and holes get smaller. With hard anodize, an H7 bore can be consumed entirely by the coating. Options: machine the feature undersize/oversize to compensate, mask the feature so it stays bare, or ream after coating (which removes the coating locally). Threads also tighten after anodizing; tapped holes are often masked or chased afterward.

Always state on the drawing whether dimensions apply before or after finishing, for example "Dimensions apply after anodizing" or "Mask Ø12 H7 bores". More on Type II and Type III anodizing.

FAQ

CNC machining tolerance questions

What is the standard tolerance for CNC machining?

There is no single industry number. Many shops default to around ±0.1 mm (±0.004 in) or to ISO 2768-m when no tolerance is given. Our standard is ±0.03 mm on machined features, with tighter values on critical features when called out on the drawing and confirmed in the quote.

What does ISO 2768-mK mean on a drawing?

It sets general tolerances for any dimension without its own tolerance: class m (medium) from ISO 2768-1 for linear and angular sizes, and class K from ISO 2768-2 for geometric tolerances such as flatness, straightness and perpendicularity. For example, a 50 mm length under class m may vary by ±0.3 mm.

How tight a tolerance can a CNC mill hold?

A well-maintained CNC mill routinely holds ±0.05 mm and can hold ±0.01–0.02 mm on features cut in one setup in stable material. Below ±0.01 mm usually needs grinding, honing or controlled measurement conditions, and costs considerably more.

What tolerance should I use for a press fit?

For a permanent press fit use an ISO interference fit such as H7/p6. At Ø12 mm that gives 0 to 0.029 mm interference. For dowel pins made to m6, an H7 hole gives a light press fit. Check bearing housing fits against the bearing maker's recommendations.

Does anodizing change part dimensions?

Yes. Type II anodizing adds roughly 2.5–12.5 µm per surface and hard anodizing roughly 12–38 µm per surface, so holes shrink and shafts grow. Mask precision bores or state that dimensions apply after finishing. See our anodizing page.

Can plastic parts hold the same tolerances as metal?

Usually not. Plastics expand more with temperature, can absorb moisture and deflect under cutting forces. Plan on ±0.05–0.1 mm for most plastic features. POM and PEEK are the most stable choices when tight tolerances matter.

Send your drawing. We will confirm every critical tolerance in the quote.

Upload your files