How to calculate 3D printing cost
Pricing a 3D print accurately means adding up more than just filament. You also need the electricity the printer consumed during the print hours, the wear and tear of the machine itself, your shop's fixed costs, the inevitable failures, and any accessory or packaging included with the part. PrintCalc adds all of these transparently and then calculates a healthy selling price by applying your markup, taxes and payment platform fees.
What PrintCalc calculates
- Filament cost based on weight (g) and material price per kg
- Electricity cost based on print time and printer wattage
- 3D printer amortization — depreciation of the machine per hour of use
- Monthly fixed costs (rent, internet, maintenance) allocated per unit
- Failure percentage to cover prints that don't come out right
- Accessories and packaging with name, quantity and unit cost
- Final price with markup, taxes (included or added on top) and payment fee
- Gross and net profit margins for direct-to-consumer and wholesale pricing
Step by step: how to use PrintCalc
1. Set up the model
Start with the model name and how many units you print per cycle. Add plates (if the model has parts in separate prints) with print time and estimated weight in grams. If you have the G-code file from your slicer, click the upload icon to autofill time and weight.
2. Configure filaments
In the Costs section, define the model's filament library. Each entry has a type (PLA, PETG, TPU etc.), per-kg cost in your currency, an optional name and an optional color. With 2+ filaments in the library, each plate gains a "Plate filaments" list with swatch + dropdown + optional weight per material — perfect for multi-color prints (4 AMS PLAs auto-split the total weight evenly) or multi-material prints (assign explicit weights when prices differ, like PLA+/PLA/TPU on the same print). Multi-color G-code uploads auto-fill the per-filament weights.
3. Set printer and energy
Pick your printer from the dropdown (presets for Bambu A1/P1S/X1/H2D/H2C, Creality Ender and K1, Prusa MK4 and XL, Anycubic Kobra 2, Flashforge Adventurer) or select 'Custom' and type the wattage. Configure cost per kWh — use the location button to estimate from your address.
4. Set markup, taxes and fees
Markup is your profit multiplier (4× means price = cost × 5). Configure sales tax (per your local regime) and the payment-platform fee (Stripe, PayPal, Wise). Toggle 'include in price' if the platform deducts on receipt (marketplaces), leave off for direct invoicing.
5. Save, compare, export
Save each named calculation (Saved button) to load later. Use Compare to put two configurations side by side — useful for simulating a printer swap or a markup bump. Export PDF to send a quote to the client (Client mode hides your margin; Me mode shows everything).
Common use cases
Maker selling on a marketplace
You sell prints on Etsy, eBay or Shopify. The final price has to cover the part's cost, the markup that pays for your time, the sales tax, and the platform fee taken from what you receive. Without summing all of these, what looks like $30 of profit becomes $12 when the payment clears. Toggle 'include tax and fee in price' so PrintCalc inverts the calculation and shows the display price that nets the margin you want after deductions.
Professional or studio at production scale
You run several printers and ship dozens of parts per month. Now fixed costs (rent, internet, maintenance) and machine depreciation become meaningful pieces of per-part cost. Configure monthly costs and an estimate of units per month — PrintCalc spreads them automatically. Save each client as a separate calculation and use Compare to see what changes when you tweak markup or switch filaments.
Hobbyist taking custom orders
You print occasionally for friends or via Instagram. The money has to cover at least filament, energy and the odds of a failed print. Without markup, it's wasted time. Use the '1 filament' or '2 filaments' template as a starting point, adjust weights and times, and charge at least 3× unit cost so you actually get paid for your time.
Reseller of printed parts
You don't print — you flip parts printed by others. Use the Retailer Price field to figure out how much to pay the printer and how much to resell at a margin. PrintCalc defaults to a 2× markup (printer gets half of the final price), but you can adjust. Useful for estimating margins before you partner with a local print shop.
Multi-color setup (AMS, AMS Lite, ACE Pro, IFS)
Printers with color-swap systems (Bambu AMS, Anycubic ACE Pro, Flashforge IFS) discard filament between colors — called purge. For a 4-color part, purge can be 30–60% of the total filament printed. Use the Purge (%) field and the 'AMS 4-color PLA' template to see the impact: a part that looks like it costs $5 in material can cost $8 once purge is counted.
G-code upload for automatic calculation
Instead of typing print time and weight by hand, you can upload a .gcode file produced by your slicer (Cura, PrusaSlicer, Bambu Studio, OrcaSlicer and similar). PrintCalc reads the file metadata and automatically fills in the estimated time and filament weight in grams. The file is processed 100% in your browser — nothing is sent to our servers.
Who PrintCalc is for
- Makers who want to understand the real cost of every part they print
- Shop owners and service providers pricing 3D printing orders
- Hobbyists who sell parts occasionally and want to charge a fair price
- Resellers of 3D-printed parts who need to estimate margins
3D printing glossary
- Markup
- Multiplier applied to cost to reach the pre-tax sale price. Markup 4× means price = cost × 5 (one cost share + four margin shares).
- Amortization
- Per-hour depreciation cost of the printer. Computed as (printer value ÷ useful life in hours) × current print hours. Covers wear on the machine.
- Plate
- One print session with its own time and weight. Large models that don't fit the build plate are split across plates (e.g. base + dome). In PrintCalc each plate can use a different filament.
- G-code
- The .gcode file generated by the slicer with printer instructions. Contains estimated time, filament length and movements. PrintCalc reads those metadata fields to autofill time and weight.
- Purge (purge waste)
- Filament discarded between color swaps in multi-color setups. The printer purges the previous material before printing with the next one. Typically 30–60% of total filament on 4+ color AMS prints.
- AMS / AMS Lite
- Bambu Lab's Automatic Material System. A four-spool carousel that swaps filament automatically. Equivalents: Anycubic ACE Pro, Flashforge IFS, Creality CFS.
- PLA
- Polylactic acid, the most common filament. Prints at 190–220°C, doesn't need an aggressively heated bed, low odor. Doesn't survive heat above ~50°C.
- PETG
- Polyethylene terephthalate glycol-modified. Tougher than PLA, food-safe, holds up to ~75°C. Prints at 230–250°C.
- TPU
- Thermoplastic polyurethane — flexible filament, ideal for parts that need to bend (phone cases, anti-slip feet). Needs a direct-drive extruder to print well.
- CoreXY vs Bedslinger
- CoreXY (Bambu P1S, X1, Voron) moves only the toolhead, bed stays still — faster and more stable. Bedslinger (Ender, Bambu A1) moves the bed back and forth — simpler and cheaper but limits speed.
Frequently asked questions
Is PrintCalc free?
Yes. PrintCalc is 100% free, no signup, no paid tier, no usage limits. We don't sell data — we just show modest ads to cover hosting.
Is my data saved anywhere?
Your settings are saved only in your own browser via localStorage. Nothing is sent to our servers. Clearing your browser wipes everything.
Does it work with any 3D printer?
Yes. You can pick a preset profile (Bambu Lab, Ender, Prusa, etc.) or enter your printer's wattage manually. Calculations are generic and work with any FDM printer.
How does amortization work?
Amortization is your printer's wear-and-tear per hour of use. We take the printer's purchase price and divide by its expected useful life in hours — that gives a depreciation cost per hour, multiplied by your print time.
Why include a failure percentage?
Every production run has failures: warping, detachment, jams. Adding a failure percentage (e.g. 10%) covers the material and time lost on prints that didn't come out — without it, your real margin is smaller than it looks.
What's the difference between Consumer Price and Retailer Price?
Consumer Price is what the end customer pays, including markup, taxes and payment fees. Retailer Price is the suggested wholesale price for someone reselling your prints — usually a lower markup (2x by default) to leave room for the reseller's margin.
How do I pick the right markup?
Markup depends on your market, but 3× to 5× is standard for FDM prints. Below 3× you cover cost but barely pay yourself. Above 5× only works in premium niches (cosplay, custom functional parts, decor). Use Compare to simulate different values and see the impact on net margin.
How do I account for multi-color prints (AMS, AMS Lite)?
Use the Purge (%) field to record filament discarded on color swaps. For 4 colors on AMS, 30–60% is typical. Add multiple filaments to the library (same type, different colors) to mirror the real setup. The 'AMS 4-color PLA' template ships with this configured.
Does the filament cost include purge?
Depends on the 'Plate weight is part-only' toggle. Default off: the weight you type already includes purge (slicers report total). On: you type only the part weight and PrintCalc adds purge on top — useful when you want to break out purge cost from part cost.
How do I configure taxes for my country?
Add your local sales tax rate (VAT, GST, state sales tax) to the Tax field. For marketplace sales where the platform withholds tax, toggle 'include in price' so the displayed price already nets the after-tax margin. For direct invoicing where you charge tax on top, leave the toggle off.
Can I use multiple plates for one large part?
Yes. If the part doesn't fit on the bed at once (e.g. a helmet in 4 sections, a sectioned large sculpture), split it into N plates. Each plate has its own time, weight and (optionally) filament. PrintCalc sums everything for the final part cost.
Which slicers does the G-code upload support?
PrusaSlicer, Bambu Studio, OrcaSlicer, SuperSlicer and Cura. The parser reads estimated print time and filament weight (or length) from the .gcode comments. 100% browser processing — the file never leaves your computer.
Why does energy cost vary so much between printers?
Enclosed CoreXY printers (Bambu X1, Prusa MK4S) typically draw 130–200W. Open bedslingers (Ender 3) sit at 80–150W. Heated beds consume a lot — a printer with a 60°C bed running constantly can double the consumption vs one without an aggressively heated bed. Use the printer preset or measure with a Kill A Watt.