Help centre menu

CNC turning pricing explained

How a CNC turning price is assembled, setting by setting, with a worked example priced by the engine itself.

These are the settings that decide how the work is priced, as opposed to the machine that does it or the material it is made from. They are stored with the configuration.

Every one of them shows up in the breakdown when it affects a price, so if a number surprises you, the answer is on the screen.

A worked example

These numbers were computed by the pricing engine against the shipped CNC turning job shop configuration - the one you get if you start from the template. They are regenerated whenever the engine changes, so they cannot drift away from what your own console would show for the same part.

LineOne partTen parts
Material €1.31 €13.15
Production €172.09 €243.35
Total, incl. shipping and VAT€227.65€326.54

Note how the price per part falls with quantity: a batch shares what is done once - a set-up, a program, a whole build on a powder process, the tool in moulding. That is where the quantity break comes from. It is not a discount you are giving away; it is your cost structure, passed on.

Every setting on this page

These are in the same order as the editor, with the same help text. Each one has an anchor, and the ? beside a field in your console links straight to it - so if you are reading this because you clicked one, the setting you were looking at is highlighted.

Tolerances, finishes and threads

Tolerance classestolerancesbasic

tableDefault: 4 rows to start with

The tolerance classes buyers can choose; the first row is the default. Tick review on any class you will not price without seeing a drawing.

Price: The time factor multiplies finishing time and the extra minutes are added to inspection; a reviewed class sends the line to you (DFM `tolerance_requires_review`).

Typical: ISO 2768-m 1.0 / 2768-f 1.25 / ±0.025 1.6 reviewed / ±0.01 2.2 reviewed.

Ididyou must set this

textDefault: you must set this

Buyer seeslabelyou must set this

translated textDefault: you must set this

What they getnote

translated textDefault: -

Finishing timetime_factoryou must set this

number (x)Default: you must set this

Extra inspectionextra_inspection_min

number (min)Default: -

Engineer reviewsreview

yes / noDefault: -

Surface finishessurface_finishesbasic

tableDefault: 4 rows to start with

The surface roughness levels buyers can choose; the first row is the default.

Price: The time factor multiplies finishing time; a reviewed level sends the line to you.

Typical: Ra 3.2 1.0 / Ra 1.6 1.3 / Ra 0.8 1.8 / Ra 0.4 2.6 reviewed.

Ididyou must set this

textDefault: you must set this

Buyer seeslabelyou must set this

translated textDefault: you must set this

What they getnote

translated textDefault: -

Finishing timetime_factoryou must set this

number (x)Default: you must set this

Engineer reviewsreview

yes / noDefault: -

Threads a buyer may countmax_threads

whole numberDefault: 10

The largest number of threaded holes or threads a buyer may enter. 0 hides the option.

Price: Each thread adds the material's tapping time to the cycle and a feature to programming. Threads are never read from the file: the buyer counts them.

Typical: 40 milled, 10 turned.

Bar, cutting, operations and labour

Turnable abovemin_turned_fractionbasic

number (share)Default: 0.85

The share of a part's surface a lathe must be able to make for it to be quoted as turned.

Price: Below it the line is sent to review with a suggestion to mill it (DFM `not_turnable`).

Typical: 0.85.

Standard bar diametersbar_diameters_mmbasic

list of numbers (mm)Default: 20 rows to start with

The round bar sizes you buy. The part's largest diameter plus the allowance rounds up to the next one; larger than all of them, the bar is bought to size.

Price: A 21 mm part on 25 mm bar pays for 25 mm bar and the roughing of the difference.

Typical: 6, 8, 10, 12, 16, 20, 25, 30 ... 200 mm.

Diameter allowance per sidediameter_allowance_mm

number (mm)Default: 1

Material left on the radius beyond the largest diameter.

Price: A larger allowance can push the part onto the next bar size.

Typical: 0.5-1.5 mm.

Facing allowancefacing_allowance_mm

number (mm)Default: 1

Bar length faced off per part.

Price: Added to the bar length every part consumes.

Typical: 0.5-2 mm.

Parting widthparting_width_mm

number (mm)Default: 3

Width of the parting tool: bar lost between parts.

Price: Added to the bar length every part consumes.

Typical: 2-4 mm.

Parting feedparting_feed_mm_min

number (mm/min)Default: 40

How fast the parting tool goes in.

Price: Parting time per part is the bar radius over this feed.

Typical: 30-60 mm/min.

Boring rateboring_rate_pct

percentageDefault: 50

Inside roughing (drilling and boring) as a share of the outside roughing rate.

Price: Lower is slower: bores cost more per cm³ than the outside.

Typical: 40-60 %.

Off-axis area toleratedoff_axis_limit_mm2

number (mm²)Default: 5

Off-axis surface (flats, cross holes, slots) small enough to ignore.

Price: Above it the work is done by live tools or, on a lathe without them, as a second operation.

Typical: 5 mm².

Second operation factorsecond_op_factor

number (x)Default: 1.5

How much longer off-axis work takes as a second operation on a mill than with live tools.

Price: Multiplies the off-axis time; the operation also adds a set-up and loading.

Typical: 1.3-2.

Per cross holehole_overhead_s

number (s)Default: 6

Positioning, approach and retract for one cross hole.

Price: Added to every cross hole recognised in a STEP file.

Typical: 4-8 s.

Deep bore above depth / Ømax_bore_depth_ratio

number (x)Default: 5

Bores deeper than this many diameters need a long boring bar.

Price: No direct price effect: they are reported (DFM `deep_bore`).

Typical: 4-6.

Tools per operationtools_per_op

whole numberDefault: 5

Tools a typical operation uses.

Price: Each is a turret index per part per operation.

Typical: 4-8.

Rapids and air cuttingrapid_overhead_pct

percentageDefault: 10

Time moving between cuts, on top of cutting time.

Price: Multiplies the cutting part of the cycle.

Typical: 5-15 %.

Sawing a blankblank_saw_min

number (min)Default: 0.8

Sawing one blank from bar when the bar is not fed through the spindle.

Price: Charged per part at the operator rate on a lathe without a bar feeder, or when the bar is too large for it.

Typical: 0.5-1.5 min.

Programming: per partprogramming_base_minbasic

number (min)Default: 20

CAM programming and checking that every unique part needs, before counting anything.

Price: Charged once per line at the engineer rate, so it is a large share of a one-off and almost nothing of a hundred.

Typical: 20-45 min.

Programming: per operationprogramming_per_op_min

number (min)Default: 10

Programming minutes for each set-up or operation.

Price: Once per line; parts that need more set-ups cost more to program.

Typical: 10-20 min.

Programming: per featureprogramming_per_feature_min

number (min)Default: 2

Programming minutes per hole, pocket, boss and thread recognised in a STEP file or counted by the buyer.

Price: Once per line. A mesh upload has no recognised features, so only its threads count.

Typical: 1-3 min.

Programming: per complexity levelprogramming_per_level_min

number (min)Default: 5

Programming minutes per step of the part's complexity level (1 to 5).

Price: Once per line; a sculpted part takes longer to program than a bracket.

Typical: 5-15 min.

Set-up per set-upsetup_minbasic

number (min)Default: 40

Fixturing, zeroing and first-part checks for one set-up or operation.

Price: Charged per set-up for every lot at the technician rate; it is why one part costs so much more each than fifty.

Typical: 20-60 min.

Parts per set-uplot_size

whole numberDefault: 100

How many parts you run on one set-up before the fixture comes off.

Price: Set-ups are charged once per lot, so a larger lot spreads them over more parts.

Typical: 25-100.

Load and unload per partload_unload_min

number (min)Default: 0.5

Clamping a part and taking it out again, per hand-loaded set-up or operation.

Price: Charged for every part at the operator rate.

Typical: 0.5-2 min.

Deburring per partdeburr_base_min

number (min)Default: 1

Breaking edges and cleaning a part, whatever its size.

Price: Charged per part at the finisher rate.

Typical: 1-3 min.

Deburring per 100 cm²deburr_min_per_100cm2

number (min)Default: 1

Extra deburring for every 100 cm² of surface.

Price: Bigger parts have more edges; charged per part.

Typical: 0.5-2 min.

Inspection per partinspection_min

number (min)Default: 1.5

The standard check of every part, before the tolerance class adds its own minutes.

Price: Charged per part at the inspector rate.

Typical: 1-3 min.

Where to go next