PricingDeep DiveLevel 1 - Process Deep Dives

Before You Build - Questions to Ask First

A thinking guide for scoping your pricing equation before you write code: cost drivers, calibration data, minimums, quantity curves, machines, material variables, review gates, overrides, lead times, customer pricing, and post-processes.

Before writing a single line of code, the quality of your equation depends entirely on how well you understand your own cost structure. This page is a thinking guide - not a checklist to tick off, but a set of questions that reveal where your pricing complexity actually lives.

The fastest path is the AI prompt on the Start Here page

It is designed to run exactly this interview for you - paste it into Claude or ChatGPT and it will ask the right questions, propose an equation, and iterate with you until it matches your real prices. Come back here if you want to think things through before that conversation.

1. What are your main cost drivers?

Start here. Most processes have one or two dominant costs - everything else is a rounding error until you get those right.

Cost typeAsk yourself
MaterialDo I sell material by weight, volume, or area? Is scrap/waste significant?
Machine timeDoes a longer or larger part actually take more time on my machine?
Setup / amortisationIs there a fixed cost per job (programming, fixturing, changeover) that I spread across quantity?
LabourIs there significant manual work per part, or is it largely unattended?
ConsumablesResin, powder refresh, solvents, tooling wear - are these a material cost per part?

If you're not sure, look at your last 10 jobs and ask: which line item on my cost sheet varies most part-to-part? That's your primary driver.

2. Do you have historical job data to calibrate against?

An equation built without calibration is a guess. Before going live, you need at least 3-5 real parts with known prices to validate against.

  • Pull your last 10-20 jobs for this process
  • For each: record the part dimensions, quantity, what you charged, and what it actually cost you
  • After writing your equation, run those parts through it and compare - the first mismatch tells you which cost driver you've modelled wrong

If you don't have historical data yet, start with conservative rates and a reviewRequired gate on everything until you've built enough confidence to open up auto-approval.

3. What does your minimum price look like?

  • What's the minimum you'd charge for a single part, regardless of how small it is?
  • Is there a minimum per material, per batch, or per post-process?
  • Is there a minimum order value for the whole cart?

All three can be set - minimum unit price in Level 1, minimum per post-process in Level 2, minimum order value in Level 3.

4. Quantity: do you offer discounts, and what does the curve look like?

  • At what quantity does the unit price start to drop?
  • Does it drop smoothly or in steps? (Steps are easier to communicate, smooth curves better reflect real cost structure)
  • Is there a floor - a point where the discount stops?
  • Does your machine capacity affect this? (A process with 10 machines can take larger orders without surcharging; a single machine may need a lead time premium at high quantities)

5. What machines do you have, and how do you assign jobs to them?

  • List your machines, their build volumes (X × Y × Z mm), and their running cost per hour
  • How do you decide which machine a job goes to? Smallest that fits? Fastest available? Operator decision?
  • What happens when a part is too large for all machines? (This should trigger reviewRequired)

Machine selection logic is straightforward in the equation - but you need to know your machines before you can write it.

6. What material variables will your equation need?

This is the most common reason equations fail to save: the equation references material.variables['someKey'] but that key hasn't been created on the material in Phasio yet. The platform validates this on save - you can't save an equation that reads a variable that doesn't exist.

Plan your material schema before you open the equation editor.

Keep material variables minimal

Only put values on the material that genuinely differ between materials - typically the raw material cost and density. Machine rates, setup costs, speed factors, and business rules should be hardcoded constants in the equation itself. Over-stuffing the material schema is one of the most common mistakes and makes equations hard to maintain.

A useful test: "Would I set this value differently for PA12 vs TPU vs Alumide?" If yes → material variable. If no → hardcode it.

The path in Phasio: Materials → [your material] → Variables → Add variable

What belongs on the material:

KeyWhy it's per-material
materialDensityDetermines part weight - genuinely differs (PA12 ≠ TPU ≠ steel)
materialCostPerKgRaw material price varies per material
resinCostPerLiterResin price varies per resin type
costPerCm3Powder bed cost rate per volume varies per material
rawMaterialCostPerKgCNC stock cost varies by alloy / grade

7. What should trigger manual review?

Not every part should auto-price. Be explicit about your gates before building the equation:

TriggerExamples
SizePart exceeds machine build volume
GeometryOpen mesh (non-watertight), extremely thin walls, very high material removal ratio
MaterialMaterial not set up with the required variables
QuantityUnusually high quantity that might require a dedicated run or custom agreement
DurationEstimated print/machine time exceeds X hours
CustomerNew account, unapproved customer, flagged for manual pricing
PriceCalculated price falls below your cost floor (equation probably wrong)

8. What should operators be able to override per order?

variable() exposes any value in the operator UI so your team can adjust it on a per-order basis without touching the equation. Before building, decide:

  • Which values should be overridable? (support volume, print time, unit price, machine assignment)
  • Which values should be locked? (cost rates, margin - things only you should change)

As a rule: expose the outputs of cost calculations (print time, unit price) so operators can adjust the result. Lock the inputs (material costs) in material.variables where only admins can change them.

9. What lead times do you offer, and do they affect price?

  • What lead time tiers have you configured in Phasio? (Economy, Standard, Express...)
  • Does a faster lead time cost more? Does a slower one offer a discount?
  • Does the lead time surcharge taper at high quantities? (A 100-part rush is easier to absorb than a 1-part rush)

10. Do you have customer-specific pricing?

  • Are there accounts with negotiated rates on specific materials or processes?
  • Should these be visible as discounts, or baked silently into the unit price?

See the Business Logic deep dive for implementation patterns.

11. What post-processes attach to this process?

  • Which post-processes are available for this material/process combination?
  • Are any of them priced as a percentage of the part price, or independently?
  • Do any post-processes have minimum batch costs? (Dyeing, vapor smoothing, anodising often do)

Post-process pricing lives at Level 2 - but if the Level 1 equation needs to expose variables that Level 2 will read (e.g. print time for a UV curing step), decide that now and expose them via variable().

When you're ready

If you can answer most of the above, you have enough to build a working first equation. You don't need all the answers - use reviewRequired as a safety net for anything you're not confident about yet, and open up auto-approval as you gain confidence from real order data.

Go to the Start Here page and copy the AI prompt. Paste it into Claude or ChatGPT, answer its questions, and you'll have a working equation to paste into Phasio. The process deep dive pages are there when you want to understand the methodology behind a specific process in depth.

Last updated on

On this page