Shr3Dt

How to price a 3D print

Material, machine time, labour and margin: how to build a price that covers your costs, with a worked example.

← All guides7 min read

Most underpriced prints have the same cause: the price was worked out from the filament and nothing else. On a small part the plastic is often the cheapest thing in the job. The printer's time, the minutes you spend setting up and finishing, and the jobs that fail all cost more.

A price that holds up has four parts: material, machine time, labour and margin. Lead time and quantity then move it up or down.

The formula

For one part, on one machine, in one material:

material = printed volume x density x price per kg x (1 + waste)
machine  = (printed volume / throughput x layer factor
            + number of layers x overhead per layer) x hourly rate
labour   = (setup minutes / quantity + finishing minutes) / 60 x labour rate

cost     = material + machine + labour
price    = cost x (1 + margin) x lead-time multiplier
           then the volume discount, then your minimum line price

This is Shr3Dt's default pricing formula, and it works just as well in a spreadsheet. In Shr3Dt you can change how material, machine time and labour combine into the price under Settings, and test the result against quotes you've already made.

Material: price what you print, not the file

The volume of the file is not the volume you print. An FDM part is a shell of walls around sparse infill. A good estimate takes the surface area times about 1.2 mm of wall, adds the solid top and bottom layers, then adds your infill percentage of what's left inside. The bigger the part, the bigger the gap between its solid volume and the plastic it really uses.

Resin (SLA) and powder (SLS, MJF) parts print solid, so they are priced on their full volume.

Then add supports. Before slicing you can't know exactly how much a part needs, so a percentage of the printed volume stands in: Shr3Dt starts each line at 10%. SLS and MJF parts sit in loose powder while they print and need none.

Multiply the volume by the material's density to get grams, then by your price per kilo. Finally add a waste factor for purge, failed prints and powder you can't reuse. A reliable FDM material might need 5-10%. SLS powder needs around 30%, because every build has to be topped up with fresh powder.

Machine time: volume and layers

Two things take up a printer's time: putting material down, and working through the layers.

  • Throughput is how many cm³ of material your printer actually lays down per hour on a typical job. Not the spec-sheet peak: the real average from a job you've run. Divide the printed volume, supports included, by it to get hours.
  • The layer factor adjusts for layer height. If you measured throughput at 0.2 mm layers, a part printed at 0.1 mm takes twice as long for the same volume.
  • Overhead per layer is the time each layer costs regardless of volume: travel, z-hop, a resin peel or a powder recoat. Multiply it by the number of layers, which is the part height divided by the layer height.

The layer term matters more than it looks. A wide flat part is limited by volume. A tall thin one spends much of its time on layer changes, and a price based on volume alone comes out too low.

Multiply the hours by the printer's hourly rate: what an hour of the machine costs you in depreciation, power and maintenance. Operator time is not in this number; it goes under labour. Calibrate a printer for accurate quotes shows how to measure throughput and work out an hourly rate.

Labour: setup per build, finishing per part

Labour has two parts, and they behave differently.

  • Setup happens once per build: preparing the file, loading material, clearing the plate and starting the job. For resin and powder it also covers washing, curing or depowdering the batch. Divide it by the quantity.
  • Finishing happens for every part: removing supports, sanding, checking dimensions.

Spreading setup across the quantity is the fair way to charge for it, and it is why quantity changes the unit price so much. Charge 10 minutes of setup on every part of a 12-part order and you overcharge. Leave it off a single part and you work for free.

Margin, lead time, discounts and the minimum

  • Margin goes on the total cost, not just on material.
  • Lead time multiplies the price after margin. In Shr3Dt each quote line can be Standard, Priority (+25%), Rush (+50%) or Next day (+100%). A faster job pushes other work back, so it should pay for that.
  • Volume discounts come next, per line, using the highest tier the quantity reaches: for example 5% from 5 parts, 10% from 10, 15% from 25 and 20% from 50.
  • A minimum line price comes last. Tiny parts can price at a couple of euros, which rarely covers the time spent answering the email. A line below your minimum is lifted to it, and Shr3Dt shows a warning on the line so you know.

A worked example

Here is a real part priced by the Shr3Dt engine at a demo shop's rates. Your rates will differ; the shape of the result won't.

The part is a drive gear, 52 x 52 x 10 mm, with a solid volume of 15.6 cm³. It prints in PA-CF (carbon-fibre nylon) on a Bambu Lab X1C.

InputValue
Printer€4.50 an hour, 10 min setup, 18 cm³/h at 0.2 mm, 4 s per layer
MaterialPA-CF at €85 per kg, density 1.16 g/cm³, 10% waste
Print settings0.2 mm layers, 20% infill, 10% supports
Finishing3 min per part
ShopLabour €35 an hour, 45% margin, 10% off from 10 parts

The shell, solid layers and 20% infill come to 12.9 cm³ of printed plastic, plus 1.3 cm³ of supports: 16.4 g in all. Print time is about 51 minutes, of which roughly 3 are layer changes. Here is the price for one gear, and per gear for an order of 12:

1 gear12 gears, per gear
Material€1.54€1.54
Machine time€3.79€3.79
Labour€7.58€2.24
Cost€12.91€7.57
Margin (45%)€5.81€3.40
List price€18.72€10.97
Volume discountNone10%
Price per gear€18.72€9.87
Line total€18.72€118.49

(The line total is worked out before rounding, so it isn't exactly 12 x €9.87.) Three things stand out:

  • Labour is what changes. A single gear carries all 10 minutes of setup plus 3 minutes of finishing: 13 minutes at €35 an hour is €7.58. Across 12 gears, setup is under a minute each and labour drops to €2.24.
  • Material is the smallest cost. Even at €85 a kilo, the plastic comes to €1.54. Print the same single gear in PETG at €26 a kilo and the price only falls from €18.72 to €17.22. On small parts, time is the price.
  • Lead time adds up fast. The same 12 gears on Rush (+50%) list at €16.46 each, €14.81 after the discount, and €177.74 for the line.

An estimate, then a check

A cost model is not a slicer and won't match yours to the cent. Calibrated against jobs you've actually run, it gets close enough to quote on in seconds. When a job is large or the margin is thin, check it: in Shr3Dt, “Verify with real slicer” on an FDM line slices the actual file and prices from the real print time and filament use, with your margin, labour rate and discounts still applied. The line then gets a “sliced” badge.

Tip: run the formula on a job you've already printed and invoiced. If it says you should have charged more, the gap is usually in setup time or the hourly rate, not the filament.

Try it on your own numbers

Want to see the formula at work on your own files? Start free, add your machines and materials, and upload a part. Shr3Dt prices it from your own rates. For the first steps, read Set up your shop in Shr3Dt.