Vacuum Casting
How to price vacuum-cast polyurethane parts by combining one-time mould cost amortisation with per-part casting cost.
Why this process is unique
Vacuum casting produces polyurethane parts from a silicone mould. The mould is made from a master pattern (typically SLA-printed). Cost has two distinct components that behave very differently with quantity:
- Mould cost: a one-time charge (or amortised over the mould's lifespan). Each silicone mould typically lasts 15-25 shots before degrading.
- Casting cost per part: polyurethane material + operator time + mixing, curing, and demoulding.
At low quantities (1-5), mould amortisation dominates. At high quantities (20+), you need a second mould and the per-part cost levels out.
Typical applications: functional prototypes, enclosures, medical devices, over-moulded parts.
Core methodology
Mould cost per part: mouldCost / min(quantity, mouldLifespan)
If quantity > mouldLifespan: additional moulds are needed. Each mouldLifespan parts uses one mould.
Casting cost: material volume × PU cost/litre + fixed operator time per cast
Numerical example
Part: 100 × 60 × 30mm housing, volume = 50,000 mm³
| Parameter | Value |
|---|---|
mouldCost | €600 |
mouldLifespan | 20 shots |
castingCostPerPart | €18 (PU material + labour) |
| Quantity | 5 |
Mould per part: 600 / 5 = €120
Casting cost: €18
Unit price: €138
At qty 20: mould = 600/20 = €30. Unit price = €48.
At qty 40: two moulds needed. Mould = 2 × 600 / 40 = €30. Same unit price. (Correctly handled by the formula below.)
Complete algorithm
const { volume, length, width, height } = specification
const { quantity } = requisition
const mouldCost = material.variables['mouldCost']
const mouldLifespan = material.variables['mouldLifespan'] // shots per mould
const castingCostPerPart = material.variables['castingCostPerPart']
// How many moulds are needed?
const numberOfMoulds = Math.ceil(quantity / mouldLifespan)
const totalMouldCost = numberOfMoulds * mouldCost
const mouldPerPart = round(totalMouldCost / quantity, 2)
const baseCost = mouldPerPart + castingCostPerPart
const unitPrice = variable('unitPrice', round(baseCost, 2))
// Flag parts that need master pattern creation (charged separately as setup)
const largePartFlag = Math.max(length, width, height) > 400
done(unitPrice, 0, largePartFlag)Note: If you charge separately for the master pattern (SLA print), add that as a Level 3 line item or a separate process quote.
Material variables: mouldCost, mouldLifespan, castingCostPerPart
When to use this
Any silicone-moulded polyurethane casting process. Works for single-component and two-component PU. For injection moulding (steel tooling), the same structure applies but mouldCost is €5,000-200,000 and mouldLifespan is 10,000-100,000+.
Last updated on
CNC Machining
How Phasio prices CNC machined parts using stock-block selection, a three-phase milling model (coarse, medium, fine), precision and quantity multipliers, and geometry-based review gates.
Level 2 - Post-Process Deep Dives
Full pricing implementations per post-process type - what the process does physically, how to model it as a Level 2 equation, and what to read from Level 1.