Last reviewed: 2026-11-11
How print cost is estimated
Direct answer: Prefer filament used (g) from your slicer—few people know solid volume. Cost uses that mass × price/kg, plus machine depreciation from your printer type, electricity, and optional operator labor, inflates for scrap, then divides by (1 − target margin) for a suggested sell price. Profit = suggested price − cost after scrap. Use the home calculator (turn on Advanced Mode for file load, machine type, and labor) or /tools/print-cost.
Estimates only. Slicer mass, real power draw, and shop wages will differ.
Formulas
- Mass (g) — preferred: enter filament used from the slicer (or load a
.3mfin Advanced). Else: solid volume × (infill % ÷ 100) × density. Bounding-box mode uses L×W×H in mm ÷ 1000 as a coarse solid volume. - Material = (mass ÷ 1000) × price per kg (in your currency).
- Machine depreciation rate = purchase price ÷ (useful life years × annual utilization hours). Utilization is how many hours/year the printer runs—not operator time. Machine cost = print hours × that rate (or a manual override rate).
- Energy = print hours × average power (kW) × price per kWh.
- Labor = operator hours on this job (setup / remove / pack) × wage per hour. Separate from print hours and from utilization.
- Postage (Advanced, optional) = what you expect to spend on outbound shipping / packaging for this job. Manual entry—no carrier API.
- Base cost = material + machine + energy + labor + postage.
- Ship weight hint = filament grams + packaging grams (mailer/box presets). For your carrier calculator—not a live label quote.
- After scrap = base cost ÷ (1 − scrap %). Scrap is clamped 0–100%.
- Seller net needed = after scrap ÷ (1 − margin %). Margin is clamped 0–95%.
- Suggested list price = seller net ÷ (1 − marketplace fee %). Fee is clamped 0–95%. When fee is 0, list price equals seller net.
- Profit = seller net − after scrap (after fees, if any).
Locale defaults
On first visit (no saved scenario), the tool picks from your browser locale:
- Currency (e.g. EUR, USD, GBP).
- Energy — coarse residential averages (Eurostat / EIA / Ofgem-class public figures as a starting point).
- Labor wage / hour — indicative operator burden for setup work—not a payroll quote.
- Machine — typeahead presets with indicative street purchase prices (EUR base, coarse FX into your currency). Edit purchase, life, and annual hours; depreciation rate follows. Override hourly rate if you prefer.
A scenario saved in this browser wins over locale defaults. Energy / wage / FX bands can also
refresh from /data/locale-defaults-latest.json without a code deploy.
Material price index
Advanced Mode can show a market median €/kg-class for the selected material
family (from /data/material-index-latest.json) and a short
your price vs market line. The file is refreshed from public Shopify
products.json catalogs via FastETL (source: live when current). Always
prefer what you pay on your invoice. The index is opaque differentiation vs
hardcoded blog calculators—not official MSRP.
CSV and browser memory
Inputs autosave in localStorage on this device. Export/import CSV for spreadsheet
round-trip. No account; clearing site data clears the save.
Advanced Mode and 3MF
Home starts Simple (filament g + margin). Turn on Advanced Mode to choose
Load from file or Input manually, set machine type, labor, scrap,
marketplace fee presets (Etsy/Shopify-class), energy, and CSV. A .3mf opens entirely
in the browser (never uploaded). The tool reads mesh volume and print-time hints from common
slicer metadata when present. It is not a slicer replacement.
Marketplace fees
Advanced Mode can apply an indicative take-rate (None / Etsy-class ~10% / Shopify payments-class ~3% / eBay-class ~13% / custom). List price is raised so your target margin still lands on what you keep after fees. Presets are ballpark all-in percentages—not exact platform fee schedules.
Worked example
Inputs: PLA at €25/kg; 20 g filament; 4 h print; printer purchased €900, 3-year life, 1 500 h/year → €0.20/h depreciation; 0.15 kW at €0.30/kWh; 0.25 h labor at €18/h; 10% scrap; 40% target margin.
Results (no marketplace fee):
- Material €0.50 · machine €0.80 · energy €0.18 · labor €4.50 · base €5.98
- After scrap €6.64 · suggested list = seller net ≈ €11.07 · profit ≈ €4.43
Same job with 10% marketplace fee (Etsy-class):
- Seller net still ≈ €11.07 (margin on what you keep)
- List price ≈ €12.30 (= seller net ÷ (1 − 0.10))
- Profit still ≈ €4.43
The fee raises the list price so your target margin still lands on seller net.
Try: /tools/pla-print-price, /tools/price-after-fees, /tools/printer-depreciation, /tools/print-cost. Sibling: /guides/margin-vs-markup-fees.
What this does not do
- No server-side file upload; 3MF stays on your device.
- No live bureau quote or marketplace checkout.
- Live carrier postage APIs and QC are outside this formula (manual postage + packaging mass are optional Advanced fields; fees are optional presets).
- Shop draft listing connectors are a later, demand-gated step—not this tool.