Trust
Methodology
Every number this site produces is a transparent estimate built from the formulas below, using the inputs you provide. Nothing is a guarantee of print success, dimensional accuracy, strength, safety or delivery time. The current formula version is v1.0.0, stamped into every calculation, and this page was last verified against the implementation on 25 July 2026.
Estimates, not guarantees
The formulas
Material — filament
cost/gram = spool_price ÷ (spool_weight_g × (1 − waste)) material = grams_used × cost/gram
Support / purge material is costed as a separate line when present.
Material — resin
cost/mL = price_per_litre ÷ 1000 resin = mL_used × cost/mL total = resin + IPA + gloves + FEP_wear
Consumables are user-entered lines; no safety defaults are invented.
Energy
energy_kWh = average_watts ÷ 1000 × print_hours energy_cost = energy_kWh × rate_per_kWh
Nameplate watts are a rough input; a measured average is more accurate.
Machine ownership
depreciable = purchase + lifetime_maintenance − residual cost_per_hour = depreciable ÷ useful_print_hours machine_cost = cost_per_hour × print_hours
Useful life is the user's assumption, never a universal fact.
Labour
labour = Σ(minutes_by_task ÷ 60 × hourly_rate)
One-time order setup is kept separate from per-unit work so quantity tiers stay honest.
Failure reserve
reserve = repeatable_cost × p ÷ (1 − p)
An expected-value reserve for a failure probability p, not a guarantee. The user chooses which layers repeat.
Overhead
hourly: job_overhead = (monthly_overhead ÷ billable_hours) × print_hours explicit: per-order and per-unit lines entered directly
The two models are labelled and never combined invisibly.
Price, fees, margin, markup
margin price = (cost + fixed_fee) ÷ (1 − percentage_fee − margin) markup price = (cost × (1 + markup) + fixed_fee) ÷ (1 − percentage_fee) margin = profit ÷ price markup = profit ÷ cost
Inputs where percentage fee + margin ≥ 1 are rejected as impossible rather than returning a bogus number.
Quantity tiers
tier_total = one_time_order_cost + quantity × per_unit_cost tier_unit_cost = tier_total ÷ quantity
One-time costs amortise across the batch, so per-unit cost falls with quantity.
Rounding & currency
Calculations run in plain numbers and round only at the currency boundary, using round-half-up to minor units (cents). This avoids the binary-float drift that makes naive Math.round(x*100)/100 mis-round values like 1.005. The calculators support arbitrary currencies; conversions are yours to supply, since live exchange rates are intentionally out of scope.
File parsing & accuracy
G-code is the truthful source for estimated print time and filament usage; the parser reads the slicer’s own header comments (Cura, PrusaSlicer, OrcaSlicer, Bambu Studio, SuperSlicer), attributes the slicer, and records the exact lines it used. STL files provide geometry only — volume via the divergence theorem and a bounding box — and are labelled a geometry estimate. Non-watertight meshes are detected and flagged because their volume is unreliable. Files are parsed entirely in the browser and never uploaded.
Sources & limitations
- The failure-reserve formula is the standard expected-value result for retries until success (expected attempts = 1 ÷ (1 − p)).
- Marketplace fee presets (e.g. Etsy) are dated and sourced but editable, because rates change and vary by account and region. They are a starting point, never an authority.
- Material densities, default rates and power draws are illustrative. Replace them with measured values for a quote you intend to send.
- This is not tax, legal, structural, medical or accounting advice, and it does not predict whether a part is fit for any purpose.
Change log
| Version | Date | Change |
|---|---|---|
| v1.0.0 | 2026-07-25 | Initial published formula set: material (filament & resin), energy, machine ownership, labour, expected-value failure reserve, overhead, margin/markup pricing with fee solve-back, and quantity tiers. |
Questions about a formula? The pricing guide works through them with numbers, and the privacy page covers how your data is handled.