PricingDeep DiveLevel 2 - Post-Process Deep Dives

Dyeing

How to model dyeing post-processing in pricing, using a colour lookup for dye cost and an area-based process cost with a colour multiplier.

What this process does

Dyeing immerses parts in a heated dye bath to add colour. Unlike painting, dye penetrates the surface layers rather than forming a coating.

Key process characteristics for pricing:

  • Batch process: a dye bath handles many parts per cycle
  • Dye cost varies significantly by colour (frequently used dye's are usually cheapest; while special colours are cost intensive)
  • Soaking time varies by colour depth (lighter colours need less time)

How to model it

Two components:

  1. Dye cost: depends on colour - use a colour lookup
  2. Process cost: flat per batch, or area-based if you want to reflect how much dye the part absorbs

Level 2 algorithm - area-based with colour multiplier

For larger parts where dye absorption is more significant:

const { area, color } = specification

const COLOR_MULTIPLIERS: Record<string, number> = {
  'Black':  1.0,
  'Grey':   1.2,
  'Blue':   1.4,
  'Red':    1.5,
  'Yellow': 1.8,
}

const colorMultiplier = variable('Colour multiplier', COLOR_MULTIPLIERS[color ?? ''] ?? 1.5)
const BASE_RATE       = variable('Base rate per mm²', 0.0015)
const MIN_CHARGE      = variable('Minimum charge', 6.00)

const areaCost  = round(area * BASE_RATE * colorMultiplier, 2)
const unitPrice = variable('unitPrice', Math.max(MIN_CHARGE, areaCost))
done(unitPrice)

Notes

  • If a colour isn't in your lookup, reviewRequired = true routes it to the operator for manual quoting.

Last updated on

On this page