The formula
Every method scales the value already in your filament settings. The test only tells you by how much.
A measured test wall (calipers):
new flow ratio = current × expected wall thickness / measured average
OrcaSlicer Pass 1 and Pass 2 blocks, and Bambu Studio’s Pass 1 and Pass 2 for third-party printers:
new flow ratio = current × (100 + modifier) / 100
OrcaSlicer YOLO blocks:
new flow ratio = current + modifier
The expected thickness of a one-wall test is the line width. Two walls come out thinner than two line widths in PrusaSlicer and Bambu Studio, because they overlap neighboring lines:
spacing = line width − layer height × (1 − π / 4)
two walls = line width + spacing
Cura places walls one line width apart, so two Cura walls should measure two line widths. So should two OrcaSlicer walls: its Precise wall setting, on by default with the Inner/Outer wall order, removes the overlap between the outer and inner wall. With Precise wall off, OrcaSlicer overlaps like PrusaSlicer.
How do you calculate a new flow rate after calibration?
Multiply your current flow ratio by what the test should have printed, then divide by what it did print. For a measured wall that is current × expected ÷ measured. A 0.45 mm wall that measures 0.47 mm at flow 1.00 gives 0.957. For block tests, apply the smoothest block’s modifier to the current value instead.
Worked example: one wall in vase mode
These are the calculator’s defaults. The cube was sliced with a 0.45 mm line width and printed in vase mode, so the wall is one line thick.
- Four readings from the middle of the walls: 0.47, 0.48, 0.46 and 0.47 mm.
- Average: 1.88 / 4 = 0.47 mm.
- New flow ratio: 1.00 × 0.45 / 0.47 = 0.957.
- Change: −4.3%, so the slicer will push 4.3% less plastic.
Prusa’s version of this test is a 40 mm cube in vase mode (Print Settings → Layers and perimeters → Spiral vase) at your usual layer height. Take three or more measurements in the middle of each wall and average them. Prusa writes the formula as extrusion width ÷ measured average, which is the same thing with a current value of 1. The 0.45 mm width it uses comes from the default PrusaSlicer 0.4 mm nozzle profiles at 0.1 to 0.2 mm layers. With another nozzle or a thicker layer, type the line width your profile uses.
Worked example: two walls
The cube now has two walls at 0.45 mm and 0.2 mm layers, sliced in PrusaSlicer, and the wall measures 0.88 mm.
- Spacing: 0.45 − 0.2 × (1 − π / 4) = 0.407 mm.
- Expected wall: 0.45 + 0.407 = 0.857 mm.
- New flow ratio: 1.00 × 0.857 / 0.88 = 0.974.
Comparing 0.88 mm with two line widths (0.90 mm) gives 1.023 instead, which raises flow when the wall is already too thick. Use the expected thickness the calculator shows, or test with one wall.
| Test | Line width | Layer | Expected wall |
|---|---|---|---|
| One wall, any slicer | 0.45 mm | any | 0.450 mm |
| Two walls, PrusaSlicer, Bambu Studio | 0.45 mm | 0.2 mm | 0.857 mm |
| Two walls, PrusaSlicer, Bambu Studio | 0.42 mm | 0.2 mm | 0.797 mm |
| Two walls, Cura, or OrcaSlicer with Precise wall on | 0.45 mm | any | 0.900 mm |
What is the flow ratio formula?
It depends on the test. OrcaSlicer’s Pass 1 and Pass 2 blocks use new = old × (100 + modifier) / 100. Its YOLO blocks use new = old + modifier. A measured wall uses new = old × expected ÷ measured. Each result replaces the old value in the filament settings, and the next test starts from it.
Pass 1 and Pass 2
Pass 1 prints nine blocks and Pass 2 prints ten. Pick the block with the smoothest top surface and work out the new value. Save the filament preset before you print the next pass.
| Test | Blocks | Modifiers on the blocks |
|---|---|---|
| Pass 1 | 9 | −20, −15, −10, −5, 0, +5, +10, +15, +20 |
| Pass 2 | 10 | −9 to 0 in steps of 1 |
The worked example from the OrcaSlicer and Bambu Lab wikis:
- Pass 1, current 0.98, smoothest block +5: 0.98 × (100 + 5) / 100 = 1.029.
- Save 1.029 and print Pass 2. Smoothest block −6: 1.029 × (100 − 6) / 100 = 0.967.
In the calculator, enter 0.98 as the current value and pick both blocks. It chains the two passes. If you ran Pass 2 straight from your old value, set Pass 1 to 0.
YOLO flow calibration
OrcaSlicer’s YOLO test adds the block’s number to the old value instead of using a percentage. If the old value was 0.98 and the best block reads +0.01, the new value is 0.98 + 0.01 = 0.99. Judge the blocks by the smoothest top surface, no gaps between the arcs, and little or no line between the inner spiral and the outer arcs.
| Version | Modifiers | Step |
|---|---|---|
| YOLO (Recommended) | −0.05 to +0.05 | 0.01 |
| YOLO (perfectionist version) | −0.04 to +0.035 | 0.005 |
On a Bambu Lab printer, the OrcaSlicer wiki says to leave the “Flow calibration” option unticked when sending these tests.
Bambu Studio on a Bambu Lab printer
Bambu Studio’s own wizard (Calibration → Flow Rate → Manual Calibration) does the math for you. Coarse calibration prints blocks at 80% to 120% of the preset’s flow ratio in 5% steps. Fine calibration prints 91% to 100% in 1% steps. You pick the smoothest block, and Studio saves the result to a filament preset. The formula is the same percentage scaling as Pass 1 and Pass 2.
Where to type the new flow ratio
Each slicer stores flow per filament preset, so save the preset after each change.
| Slicer | Setting name | Where it is | Type it as |
|---|---|---|---|
| OrcaSlicer | Flow ratio | Filament settings → Filament → Flow ratio and Pressure Advance (Advanced mode) | 0.957 |
| Bambu Studio | Flow ratio | Filament settings → Filament → Basic information (Advanced mode) | 0.957 |
| PrusaSlicer | Extrusion multiplier | Filament Settings → Filament | 0.957 |
| UltiMaker Cura | Flow | Print settings → Material | 95.7% |
The printer’s own flow setting (M221 in the firmware) multiplies with the slicer’s, which Prusa writes as total flow = M221 × extrusion multiplier. Leave M221 at 100% while you calibrate, or the slicer value will absorb the firmware’s offset.
When the result looks wrong
OrcaSlicer and Bambu Studio describe 0.95 to 1.05 as the recommended range for flow ratio. Prusa says adjusted values usually fall between 0.9 and 1.1. A result well outside that range points to a problem flow ratio should not fix:
- Extruder steps. If the extruder feeds the wrong length, fix that first with the e-steps calculator on Marlin or the rotation distance calculator on Klipper, then calibrate flow.
- A partial clog or a dirty extruder. Bambu Lab warns that these skew flow calibration and suggests cold pulls or a new nozzle before testing.
- Wet filament. Bambu Lab asks for thoroughly dried filament before calibrating.
- The wrong line width typed in. The wall method needs the line width from the profile that sliced the cube.
The best value differs by material, by color and sometimes by spool, so calibrate per filament preset.
Published · Updated · Figures last checked
Sources
- OrcaSlicer wiki, Flow ratio calibration (accessed 2026-10-14)
- OrcaSlicer wiki, Material flow ratio and pressure advance (accessed 2026-10-14)
- OrcaSlicer source, flow calibration models (resources/calib/filament_flow) (accessed 2026-10-14)
- OrcaSlicer source, Flow.cpp (extrusion spacing) (accessed 2026-10-14)
- OrcaSlicer source, PrintConfig.cpp (precise_outer_wall and wall_sequence defaults) (accessed 2026-10-18)
- OrcaSlicer source, PerimeterGenerator.cpp (Precise wall spacing) (accessed 2026-10-18)
- OrcaSlicer source, Tab.cpp (filament settings layout) (accessed 2026-10-14)
- Bambu Lab wiki, Flow rate calibration (accessed 2026-10-14)
- Bambu Lab wiki, Calibration for 3rd party printer (accessed 2026-10-14)
- Bambu Studio source, PrintConfig.cpp (filament_flow_ratio) (accessed 2026-10-14)
- Bambu Studio source, Tab.cpp (filament settings layout) (accessed 2026-10-14)
- Prusa Knowledge Base, Extrusion multiplier calibration (accessed 2026-10-14)
- UltiMaker Cura source, fdmprinter.def.json (material_flow, wall_line_count) (accessed 2026-10-14)