P
3DPrintOps
← Back to blog
3DPrintOps Team

Understanding Profit Margins in 3D Printing (And Why Most Shops Get It Wrong)

businesspricingguide

Here's a question that makes most print shop owners uncomfortable: what's your actual profit margin?

Not your revenue. Not how busy you are. Your margin — the money left over after you account for material, machine time, labor, rent, electricity, failed prints, and all the other costs that eat into every dollar you collect.

If you don't know the number, you're not alone. Most shops track revenue but not true cost-per-job, which means they have no idea which jobs make money and which ones quietly bleed it.

Revenue Is Not Profit (Obviously, But...)

A shop doing $15,000/month in revenue sounds healthy. But if your costs are $14,200, you're making $800/month. That's $4.60/hour if you're working full time. You'd make more at Starbucks, and they'd give you health insurance.

The scary part isn't low margins — it's not knowing your margins. Because if you don't know, you can't fix it.

The Costs Most Shops Forget

Everybody remembers to account for filament. But a roll of PLA is the smallest line item on your P&L. Here's what actually eats your margin:

Machine depreciation. That $4,000 printer has a useful life. Spread the cost over its lifetime hours. If it lasts 12,000 print hours, that's $0.33/hr whether it's running or not. Your five machines are depreciating right now, even while you read this.

Failed prints. Industry averages for FDM failure rates run 5-15% depending on complexity and material. If you're not building failure cost into your quotes, every failed print comes straight out of your margin. On a $200 job with a 10% failure rate, that's $20 you didn't quote for.

Setup and teardown. Bed prep, calibration, file review, slicing, removing prints, cleaning build plates. This is real labor time that often goes untracked. If you spend 30 minutes per job on setup and your time is worth $40/hr, that's $20 per job you're giving away.

Post-processing labor. Support removal on a complex SLA print can take an hour. Sanding and finishing doubles it. If the quote didn't include finishing, you're doing free work. Use the post-processing estimator to price it before you commit.

Consumables. Nozzles, build plates, resin tanks, FEP film, filters, glue sticks, isopropyl alcohol. Small per-unit costs that add up to hundreds per month.

Overhead. Rent, utilities, insurance, software subscriptions, internet, phone. These costs exist whether you print one part or a thousand. They need to be allocated across your jobs.

How to Calculate Your Real Margin

For every job, track:

  1. Material cost — weight × price per gram (include waste and supports)
  2. Machine time cost — hours × your hourly machine rate (depreciation + electricity + rent allocation)
  3. Labor — setup + monitoring + post-processing hours × your labor rate
  4. Consumables — nozzle wear, build plate cycles, tank life
  5. Overhead allocation — monthly overhead ÷ monthly jobs

Gross margin = (Revenue - Direct Costs) ÷ Revenue

Where to be:

| Job Type | Healthy Margin | |---|---| | Standard FDM parts | 40-55% | | SLA/DLP parts | 35-50% | | Production batches | 30-45% | | Design + fabrication | 50-65% | | Rush orders | 55-75% |

If you're below 30% on standard work, either your pricing or your cost structure needs attention.

Where Shops Leak Money

Underquoting post-processing. The biggest one. "Light sanding" turns into two hours of finishing work. Always quote post-processing explicitly.

Not charging setup fees. A one-off part and a 50-piece batch should not have the same per-unit economics. Add a flat setup fee ($15-50) to every job.

Eating reprints. If a print fails due to a file issue the customer provided, that's not your cost. Communicate this upfront. If it fails due to your machine, that's the failure buffer you should've built into the quote.

Slow invoicing. A job that ships Monday and gets invoiced Friday is a job where you carried the customer's cost for a week. Invoice within 24 hours of delivery. Every time.

Discounting without data. "I'll give you a deal on this batch" is fine if you know your true cost and are choosing to accept lower margin for volume. It's not fine if you're guessing.

The Fix

Track costs per job. Not in your head, not roughly, actually. After 30-50 jobs with real data, you'll see exactly which job types, customers, and technologies make you money — and which ones don't.

The cost estimator and batch calculator help you quote with real numbers. If you want to track margins across all your jobs over time, the 3DPrintOps dashboard does it automatically — every quote tied to every job tied to every invoice.

You don't need to raise prices on everything. You need to see the numbers clearly and stop doing the jobs that cost you money.


Running a 3D print shop?

Track jobs, send quotes, and manage your fleet from one dashboard. Start your 7-day free trial.