LayerCalc

Shrinkage Compensation Calculator

Measure a test print and get the number to type in — but the right one for your slicer. OrcaSlicer and Bambu Studio want the measured percentage; PrusaSlicer and Cura want the scale factor. They are reciprocals, and entering one where the other belongs doubles the error instead of fixing it.

Outer dimensions
mm
mm
mm
mm
mm
mm
Holes (optional)
mm
mm

Measure after the XY scale is applied, so you are not correcting the same error twice.

Which slicer?
Enter this
—
Hole compensation
—
All the numbers
XY scale factor
—
for a scale box
Measured percentage
—
for Orca / Bambu shrinkage
X
—
Y
—
Z
—

The mistake this page exists to prevent

There are two numbers, they are reciprocals of each other, and different slicers want different ones. Entering the wrong one does not do nothing — it moves the part the wrong way and roughly doubles your error.

scale factor = designed ÷ measured → 100 ÷ 99.4 = 100.60%
measured percent = measured ÷ designed → 99.4 ÷ 100 = 99.40%

OrcaSlicer and Bambu Studio want the measured percentage. Their field asks what the material does, and the documentation is explicit: "Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm). The part will be scaled in XY to compensate." You give it 99.4 and it does the rest.

PrusaSlicer, SuperSlicer and Cura want the scale factor, because none of them has a filament shrinkage field. You scale the model to 100.60% and they print it larger.

Pick your slicer above and the page gives you the one number for the one field. Both are shown lower down for reference.

Worked example

A 100 mm ASA square measures 99.4 mm in X and 99.5 mm in Y. Its 10 mm hole measures 9.6 mm.

  • XY average scale: 100 ÷ 99.45 = 100.55%
  • Measured percentage: 99.45 ÷ 100 = 99.45%
  • In OrcaSlicer, Shrinkage (XY) = 99.45
  • In PrusaSlicer, scale the object to 100.55%
  • Hole: (10 − 9.6) ÷ 2 = 0.2 mm per side of hole compensation

Reprint and measure again. Second-pass results are typically within 0.05 mm on a 100 mm part.

Which field, in which slicer

SlicerShrinkage fieldTakesHole-only compensation
OrcaSlicerFilament → Advanced → Shrinkage (XY)Measured % (99.45)Yes — XY hole compensation, on the radius
Bambu StudioFilament shrinkageMeasured %Yes — XY hole compensation
PrusaSlicerNone — scale the objectScale % (100.55)No — XY size compensation moves every contour
SuperSlicerNone — scale the objectScale %Yes — separate hole and contour compensation
CuraNone — scale the objectScale %Yes — Hole Horizontal Expansion

Shrinkage and hole error are different problems

It is worth being clear about why these need two separate corrections, because it explains why fixing one never fixes the other.

Shrinkage is proportional. The polymer contracts as it cools by a percentage of its size, so a 200 mm part loses twice as many millimetres as a 100 mm one. Two holes 100 mm apart end up 99.4 mm apart. The fix is a scale.

Hole error is roughly constant. The extruded bead bulges toward the centre on a concave curve, the slicer approximates a circle as a polygon that sits inside the true circle, and first-layer squish spreads inward. Those errors are measured in millimetres, not percentages — a 3 mm hole and a 30 mm hole both lose something like 0.2–0.4 mm of diameter. The fix is a fixed offset applied only to holes.

This is why you measure the hole after applying the scale. Otherwise the scale has already changed the hole a little and you correct the same error twice.

A note on PrusaSlicer

PrusaSlicer's XY size compensation is often suggested for holes, and it does work — but it offsets every contour in the layer, not just holes. A negative value large enough to open your holes up will shrink the outer dimensions by exactly the same amount per side. If only the holes matter, that is fine. If both matter on the same part, your options are to model the holes oversize in CAD, or use SuperSlicer or OrcaSlicer, which separate the two.

Printing a useful test part

Bigger is better, because you are measuring a percentage with an absolute instrument. A 20 mm cube shrinking 0.5% is 0.1 mm — inside caliper noise. A 100 mm part makes it 0.5 mm, which is unmistakable.

  • A 100 × 100 × 10 mm plate with a 10 mm and a 20 mm hole, or Orca's built-in tolerance test.
  • A 150 mm bar if the bed allows — longer is more precise.
  • For Z, a 50 mm tower measured with the calipers' depth rod rather than the jaws.

Print in the material and profile you will actually use, let it cool completely (ABS keeps moving for an hour), and measure each dimension at two points, mid-height, to avoid elephant's foot at the base.

Shrinkage by material

MaterialTypical shrinkageOrca field (measured %)Scale %
PLA0.2 – 0.5%99.7100.3
PETG0.3 – 0.8%99.5100.5
ABS0.8 – 1.5%99.0101.0
ASA0.5 – 0.8%99.4100.6
Nylon (PA6 / PA12)1.0 – 2.0%98.5101.5
Polycarbonate0.6 – 1.0%99.2100.8
PLA-CF / PETG-CF / PA-CF0.1 – 0.4%99.8100.2
Polypropylene1.5 – 2.5%98.0102.0

Starting points only. Chamber temperature, part geometry, infill and cooling all move the real figure, which is the entire reason to measure rather than look it up.

When X and Y disagree

Material shrinkage is the same in both directions. If your X and Y corrections differ by more than about 0.15%, something mechanical is doing it — belt tension, a skewed frame, or a gantry that is not square. The calculator flags this, because compensating for it bakes the skew into every part you print instead of fixing the printer. The belt tension calculator is the place to start.

Sources

  • OrcaSlicer documentation, Material basic information — the shrinkage field's definition and its 94 mm example, which is the source of the measured-versus-scale distinction on this page.
  • OrcaSlicer documentation, Quality settings: precision — XY hole compensation applying to the hole radius, and XY contour compensation being separate.
  • PrusaSlicer documentation for XY size compensation and its whole-contour behaviour.

Frequently asked questions

What value do I enter in OrcaSlicer's shrinkage field?

The measured percentage, not the scale-up factor. Orca's own documentation says: 'Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm).' So a 100 mm part measuring 99.4 mm means you enter 99.4, and Orca scales the model up for you. Entering 100.6 there — the scale factor — would shrink the part further and double your error. Bambu Studio's field behaves the same way.

Why do different slicers want different numbers?

Because they ask different questions. Orca and Bambu ask what the material does ('how much does it shrink?'), so they take the measured percentage and work out the compensation themselves. PrusaSlicer and Cura have no filament shrinkage field, so you scale the model instead and give them the scale factor. The two numbers are reciprocals: 99.4% measured is a 100.60% scale.

How much do 3D prints shrink?

PLA 0.2–0.5%, PETG 0.3–0.8%, ABS 0.8–1.5%, ASA 0.5–0.8%, nylon 1–2%, polypropylene 1.5–2.5%. Carbon-fibre filled versions shrink far less, often under 0.4%, because the fibres restrain the polymer. A 100 mm ABS part typically comes out around 99 mm.

Why are holes still too small after I fix the scaling?

Because holes are wrong for a different reason. Shrinkage is proportional — it scales with size. Hole error is roughly constant in millimetres regardless of diameter, caused by the extruded bead bulging inward on a concave curve and by the slicer approximating a circle as a polygon. A 3 mm and a 30 mm hole both lose about the same 0.2–0.4 mm. That is why slicers have a separate per-side offset that applies only to holes.

Is hole compensation a radius or a diameter?

A radius. OrcaSlicer's XY hole compensation adds or subtracts the value from the radius of each hole, so the diameter changes by twice what you enter. A 10 mm hole measuring 9.6 mm is 0.4 mm short on diameter and 0.2 mm short on radius, so you enter 0.2. The calculator gives both figures so there is no ambiguity.

Can I use PrusaSlicer's XY size compensation to fix holes?

Only with a side effect. PrusaSlicer has no hole-only setting — XY size compensation offsets every contour, so a negative value that enlarges holes also shrinks the outer dimensions by the same amount. If both matter on the same part, model the holes oversize in CAD instead, or use SuperSlicer or OrcaSlicer, which separate hole and contour compensation.

Last reviewed September 8, 2026. Spotted an error or want another calculator? Tell us.