← Fit Calculator Home / Guides / Hole compensation

FIT-CALC · ISO 286 · FDM PROCESS · MM · REV 2026.09

Hole size compensation for FDM

A printed hole comes out smaller than you drew it, by roughly 0.27 to 0.39 mm on a 0.4 mm nozzle. That loss barely changes with diameter, so it is 0.53% of a 50 mm bore and 19.5% of a 2 mm one. Nothing is wrong with your printer. Small holes are simply a different problem, and the fix is to draw them bigger.

Updated 2026-09-10

Every FDM user meets this eventually: a 5 mm hole that a 5 mm rod will not enter. The usual advice is to add "about 0.2 mm" and move on, which works often enough to survive as folklore and fails in the two cases where you most need it — very small holes and precise fits.

The reason is geometric rather than mechanical. An extruded bead has width. As the nozzle walks the inside of a bore, that width sits partly where the hole was supposed to be, and the tighter the curve the more of it ends up on the wrong side. The lost material is set by extrusion width, not by the size of your feature, which is why the same absolute error is trivial at 50 mm and catastrophic at 2 mm.

How much to add, by diameter

Every figure below comes from the same solver behind the calculator, at the stock calibration (holeK 0.5, shaftK 0.2). The last column is what you draw in CAD for the hole to finish on nominal.

HOLE UNDERSIZE, 0.4 MM NOZZLE, 0.2 MM LAYER
Nominal Undersize As % of dia Model this
2 mm0.39019.50%2.39
3 mm0.39013.00%3.39
4 mm0.3689.19%4.37
5 mm0.3456.90%5.34
6 mm0.3305.50%6.33
8 mm0.3113.89%8.31
10 mm0.3003.00%10.30
12 mm0.2922.44%12.29
16 mm0.2831.77%16.28
20 mm0.2781.39%20.28
25 mm0.2731.09%25.27
30 mm0.2700.90%30.27
40 mm0.2660.67%40.27
50 mm0.2640.53%50.26

Read the middle column rather than the first. In millimetres the correction only moves from 0.390 down to 0.264 across the whole range — a factor of 1.5 — while as a fraction of the feature it varies by nearly forty times. That single fact explains most "my printer is inaccurate" complaints. The printer is equally inaccurate at both ends; the part is not equally forgiving.

Worth knowing

This is also why a flat "add 0.2 mm" rule behaves the way it does in practice. It is roughly right around 20 mm, slightly tight everywhere, and badly short below 5 mm, which is exactly where people report that the rule "stopped working".

The model stops discriminating below 3.33 mm

The curvature term is capped, deliberately. Below about 3.33 mm it holds flat and the reported correction sits at 0.390 mm for a 3 mm hole, a 2 mm hole and a 1 mm hole alike.

That is a limitation, and it is better to say so than to publish four decimal places nobody can hit. Uncapped, the term would keep climbing and produce confident-looking numbers for 1 mm holes that no 0.4 mm nozzle can hold anyway — at that point the bead is wider than the wall it is drawing. Treat anything under 3 mm as needing a test print, not a table.

This will bite

Below roughly 1.5 mm on a 0.4 mm nozzle the correction approaches the diameter itself, and no CAD number rescues it. Drill it, or fit a finer nozzle. The same wall shows up in heat-set insert holes, where M2 turns out to be impossible at 0.4 mm because the required allowance exceeds the knurl depth it has to fit inside.

Nozzle matters, layer height mostly does not

Since the error is driven by extrusion width, nozzle diameter is the dominant variable. Doubling it nearly doubles the correction.

5 MM HOLE, 0.2 MM LAYER, BY NOZZLE
NozzleExtrusion widthUndersizeModel this
0.2 mm0.2250.1885.19
0.25 mm0.2810.2275.23
0.4 mm0.4500.3455.34
0.6 mm0.6750.5025.50
0.8 mm0.9000.6605.66

Layer height is a minor term by comparison. Across the entire practical range, 0.1 mm to 0.32 mm, the correction moves by just 0.033 mm — less than the ±0.080 mm the machine varies by anyway at 0.2 mm layers.

5 MM HOLE, 0.4 MM NOZZLE, BY LAYER HEIGHT
LayerUndersizeRepeatability
0.10 mm0.330±0.060
0.15 mm0.338±0.070
0.20 mm0.345±0.080
0.28 mm0.357±0.096
0.32 mm0.363±0.104

So printing finer to fix a hole size is close to pointless: you move the correction by hundredths while the noise moves with you. Change the nozzle, or change the model.

Run your own numbers Enter the nominal size, pick the fit class and the material, and the calculator returns the dimensions to model.

A hole and a peg are not the same error

The temptation, when a shaft will not enter a bore, is to shrink the shaft. That trades away more than it looks like it does, because the two errors are not the same size.

PROCESS ERROR BY FEATURE TYPE, 0.4 MM NOZZLE, 0.2 MM LAYER
NominalHole undersizePeg oversizeRatio
3 mm−0.390+0.1103.55×
5 mm−0.345+0.1103.14×
10 mm−0.300+0.1102.73×
20 mm−0.278+0.1102.52×
40 mm−0.266+0.1102.42×

A peg is a convex path the nozzle tracks from the outside, so the bead lands where it belongs and the error stays roughly constant at 0.110 mm. A bore is concave and the bead leans inward, so the error is two to three and a half times larger and grows as the hole shrinks. The practical rule follows: correct the hole, leave the peg alone. The hole is where nearly all of the error lives, and it is the feature that scales with size.

Calibrate it once, on your machine

The table above uses stock constants. Yours will differ, and one test print settles it. Model a plate with a 20.00 mm through hole and a 20.00 mm peg — both drawn at exactly 20.00, no compensation — and print it with your normal profile.

In PLA, 0.3% shrinkage puts the expected size at 19.940 mm before any process error. Measure both features and the calculator's calibration inputs will back out your own constants:

WORKED COUPON RESULTS, PLA, 0.4 MM NOZZLE, 0.2 MM LAYER
Measured holeMeasured pegYour holeKYour shaftK
19.6320.050.5660.200
19.5520.120.7270.356
19.7219.980.3840.044

Stock is holeK 0.5 and shaftK 0.2, so a machine landing on 19.63 / 20.05 is close to standard and the published table will serve it well. One landing on 19.55 is losing noticeably more material and needs its own numbers.

It is worth the twenty minutes. At a 5 mm hole, the difference between holeK 0.3 and holeK 0.7 is 0.252 mm of correction — 1.6× the machine's entire repeatability band. No amount of slicer tuning recovers a wrongly assumed constant.

This will bite

Measure the bore with pin gauges or a bore gauge, not caliper knife edges. Caliper jaws bridge a curve and read a hole low, which inflates your holeK and then over-corrects every hole you draw afterwards. If the coupon reports a hole larger than 19.940, that is the usual cause.

Is any of this worth it, given the noise?

Fair question, and one worth answering with the numbers rather than enthusiasm. A well-tuned consumer machine repeats to about ±0.080 mm at 0.2 mm layers. Compare that to the correction:

CORRECTION AGAINST MACHINE NOISE
NominalUndersizeBandRatio
3 mm0.390±0.0804.9×
5 mm0.345±0.0804.3×
10 mm0.300±0.0803.8×
20 mm0.278±0.0803.5×
50 mm0.264±0.0803.3×

The correction is always at least three times the noise, so applying it is clearly worth doing — it removes the largest, most predictable part of the error. What it does not do is make the noise disappear. A fit that needs better than ±0.080 mm will not be reliable no matter how carefully you compensate, and that is a design problem rather than a slicer setting. Add a chamfer, split the tolerance, or use a bought bushing.

Frequently asked

Should I use horizontal expansion in the slicer instead?

You can, but it applies to every feature on the part at once, including outside walls that were already correct and pegs that need only a third as much. Correcting in CAD lets each feature get the right number. Slicer compensation is the blunt instrument; use it when you are printing somebody else's model.

Does material change the hole correction?

Barely, and much less than people expect. Shrinkage differs a lot between materials, but shrinkage is a separate term that scales with the whole part, not with the bore — see shrinkage compensation for where it does and does not cancel. The process allowance here is driven by extrusion width, which is a property of the nozzle and the flow, not the polymer.

Why is the correction not simply the extrusion width?

Because only part of the bead ends up inside the hole, and how much depends on the curvature of the path. The model uses half the width as its baseline (holeK 0.5), scaled by a curvature factor that grows as the hole gets smaller, plus a small layer-height term. That is what the coupon calibrates.

My holes print oversize, not undersize. What now?

Check the measurement method first, since calipers read bores low rather than high, so a genuine oversize reading is unusual. If it holds up, you are likely under-extruding, in which case fix flow before compensating — otherwise you are cancelling one error with another and both will drift.

Does this apply to vertical holes only?

The table assumes a hole printed as a vertical bore, which is the common case. A hole printed on its side is a different geometry: it sags at the top and prints elliptical, and no diametral correction fixes that. Reorient the part or ream it.

Related