Blog
Guides

Price from the floor up: a margin check for every 3D print sale

Instead of starting from cost plus a markup, work out the lowest price each sale can accept, then check the price you want against it. A step-by-step method with illustrative numbers.

PrintSol team··6 min read

Most advice on pricing 3D prints says: work out your cost, then add a markup. That works until you sell through two channels with different fees, run a 10% discount code, and lose a print in every twelve. The same product then makes money on one sale and loses it on the next.

This post takes a different route. Work out the lowest price each sale can accept, which I will call the floor. Then compare the price you want with the floor, channel by channel. If the price clears the floor, the sale makes money. If it does not, you know before you list it.

Step 1: Split costs into per-unit and per-month

Some costs scale with each item. Others are fixed no matter how much you print. Keep them apart.

Per unit (goes into the floor directly):

  • Filament, including supports, purge and brim
  • Electricity for the print time
  • Packaging
  • Shipping you pay and do not charge for
  • Labour: removing from the plate, cleaning, QC, packing
  • Machine wear: purchase price spread over its likely life, plus maintenance
  • Failure allowance (see step 3)

Per month (spread over expected volume):

  • Software and shop subscriptions
  • Rent, insurance, internet
  • Your own time on admin, support and listing

For the monthly costs, divide by a realistic number of units, not your best month. If overheads are €300 a month and you ship 200 items in a typical month, that adds €1.50 per item. If you ship 100, it adds €3.00.

Step 2: Cost the machine hour honestly

A printer that is busy 40% of the time has to earn its keep in those hours. A simple way to get a machine-hour rate:

  1. Add the printer's cost, divided by the number of years you expect to use it.
  2. Add yearly maintenance and repairs (use what you actually spent last year, not zero).
  3. Add yearly overhead you assign to the printer.
  4. Divide by the hours it actually prints in a year, not the 8,760 hours in a year.

The last step is where people go wrong. Dividing by every hour in the year makes the rate look tiny. Dividing by real print hours gives the number you need.

Step 3: Add a failure allowance

Some prints fail. The material and time are gone, and you still have to deliver the order. Track failures per product for a few weeks, because a flat guess hides the fact that some parts fail far more than others.

The allowance is simple. If one in twenty attempts fails, you need to pay for 20 attempts out of 19 good parts, so add roughly 5% to the print cost of that part. Tall, thin or support-heavy parts may need much more. If you have no data yet, pick a cautious figure and replace it as soon as you have measurements.

Step 4: Add the costs that depend on the channel

Each sales channel takes a different cut, so each gets its own floor. The usual items:

  • Marketplace or shop fee, as a percentage of the sale
  • Payment processing fee, usually a percentage plus a fixed amount
  • Shipping you absorb
  • Discount codes and promotions
  • Returns and replacements

Percentage fees are charged on the whole price, so you cannot simply add them to cost. The formula is:

Floor price = (unit cost + fixed fees) ÷ (1 − percentage fees − target margin)

Leave the target margin at zero to get the break-even floor, then put your margin back in to get the price you want.

A worked example (illustrative numbers)

These figures are invented round numbers to show the method. Use your own.

Item € per unit
Filament (incl. supports, purge) 1.80
Electricity 0.20
Machine time (3 h at €0.60/h) 1.80
Labour (6 min at €18/h) 1.80
Packaging 0.70
Failure allowance (5% of print cost) 0.25
Overhead share 1.50
Unit cost 8.05

Assume the shop channel charges 3% plus €0.30 in payment fees, and a marketplace channel (via your shop) adds 10% on top of that, so 13% plus €0.30. Say you also offer 10% off to returning customers and want a 25% margin.

Break-even floor, shop: (8.05 + 0.30) ÷ (1 − 0.03) = about €8.61

Price for 25% margin, shop: (8.05 + 0.30) ÷ (1 − 0.03 − 0.25) = about €11.60

Price for 25% margin, marketplace: (8.05 + 0.30) ÷ (1 − 0.13 − 0.25) = about €13.47

The discount is the part people forget. A 10% code on a €11.60 list price brings the sale to €10.44. Check that against the 25% target: the fees and costs on €10.44 leave a margin of roughly 20%, not 25%. If you run codes regularly, build the discount into the list price. Divide the price you need by 0.9 (here, €11.60 ÷ 0.9 ≈ €12.89) so the discounted price still hits the target.

The same product therefore has three sensible prices, depending on where and how it sells. One price for everything means you either overcharge in one place or lose money in another.

Step 5: Check the price against the market

Now compare. Look at what similar items sell for, but be careful about what "similar" means. A cheap listing from someone who ignores machine time and failures is not a benchmark you must match. It is someone else's slow loss.

If the market price is below your floor, you have four options:

  • Raise the price and sell fewer
  • Cut real cost: a faster profile, less support, a better plate layout, cheaper packaging
  • Move the product to a channel with lower fees
  • Drop it

Dropping a product that cannot clear its floor is a legitimate result, and often the best one.

Step 6: Price shipping and small orders separately

Two leaks show up often:

  • Free shipping built into nothing. If you offer it, put the actual postage into the price. Weigh a packed parcel and check the carrier's rate for the heaviest zone you sell to, not the cheapest.
  • Single-item orders. Packing time and shipping do not shrink with the item. A €5 part costs almost as much to pack as a €30 one. Set a minimum order value or bundle small items.

Step 7: Review on a schedule

Costs drift. Filament prices change, a nozzle wears, a failure rate climbs when a new colour is loaded. Once a quarter:

  1. Update filament price per kg and electricity price.
  2. Re-check failure rates on your top five sellers.
  3. Recompute floors for each channel.
  4. Look at actual margin on recent orders, not only the planned one.

Step four is the honest test. If actual margins are consistently below plan, one of your inputs is wrong, and it is usually failures or labour.

What goes wrong

  • Using slicer filament weight only. It leaves out purge and failed attempts.
  • Zero for your own time. If the work is real, it belongs in the cost, even if you do not pay yourself yet.
  • One markup for every channel. Fees differ, so margins differ.
  • Forgetting discounts and returns. They come off the price, not the cost.
  • Optimistic volume. Overhead per item grows when sales fall short.

How PrintSol helps

PrintSol works out the true cost of each order and product from filament, machine time, electricity, labour, packaging, shipping, channel and payment fees, and a failure surcharge from each part's measured failure rate. Every cost line is marked measured or estimated. The Free plan lets you test it on your own numbers.

pricingmarginsprint farmselling

Find out which of your products is losing money.

Connect one shop and one printer. The first finished job tells you its real cost.

Start freeNo card. Read-only to start. Nothing changes on your printers.